스터디 노트🖊️_Day 36(SQL)

정설령·2023년 4월 20일

SQL

목록 보기
8/9
post-thumbnail

✔️ SQL 심화 5~7

PRIMARY KEY (기본키)

  • 테이블의 각레코드를 식별
  • 중복되지 않은 고유값을 포함
  • NULL 값을 포함 할 수 없음
  • 테이블 당 하나의 기본키를 가짐

기본키 생성

  • 기본 문법
  • 하나의 컬럼 기본키 설정
  • 여러개 컬럼 기본키 설정

기본키 삭제

  • 기본 문법
  • 하나의 컬럼 기본키 삭제
  • 여러개 컬럼 기본키 삭제

기본키 추가

  • 기본 문법
  • 하나의 컬럼 기본키 설정
  • 여러개 컬럼 기본키 설정

FORIEGN KEY (외래키)

  • 한 테이블을 다른 테이블과 연결해주는 역할이며, 참조되는 테이블의 항목은 그 테이블의 기본키 (혹은 단일값)

외래키 생성

  • 기본 문법
  • CREATE TABLE에서 FOREIGN KEY를 지정하는 경우
  • CONSTRAINT 생략 가능
  • 자동생성 된 CONSTRAINT 확인 (외래키 이름 지정 안해서 자동 생성된 모습)

외래키 삭제

  • 기본 문법
  • desc 기록에는 남아있어도 constraint 기록에는 끊어진 모습

외래키 추가

  • 기본 문법
  • CONSTRAINT 생략 가능


예제 적용

police_station 과 crime_status 테이블 사이 관계 (Foreign Key)를 설정해봅시다. AWS RDS(database-1) 의 zerobase 에서 작업합니다.

  • 테이블 구조 확인

  • 두 테이블의 경찰서 표현 방식이 다름
  • 맞게 대응되는지 확인
  • police_station 테이블의 기본키 설정
  • crime_status 테이블에 reference 컬럼 추가
  • crime_status 테이블의 외래키 지정
  • police_station 테이블의 name 컬럼 형식에 맞춰 crime_status테이블의 reference 컬럼 업데이트
  • 확인
  • 두 테이블을 JOIN 하여 address 조회

문제

  1. study_id가 PRIMARY KEY, patient_id가 person 테이블의 pid 와 연결된 FOREIGN KEY 로 지정된 study 테이블을 생성하세요.
  2. 생성한 테이블의 PRIMARY KEY 를 삭제하세요.

  3. 생성한 테이블의 FOREIGN KEY 를 삭제하세요.

  4. study 테이블의 patient_id 를 person 테이블의 pid 와연결된 FOREIGN KEY 로 등록하세요.

  5. study 테이블의 study_id 를 PRIMARY KEY로 등록하세요.

Aggregate Functions (집계함수)

  • COUNT
    • police_station 에서 경찰서는 총 몇개이고, 각각 경찰서 이름은 무엇인지 확인하세요.
    • crime_status 에서 status_type 은 총 몇개이고, 각각 타입은 무엇인지 확인하세요.
  • SUM
    • 종로경찰서와 남대문경찰서의 강도 발생 건수의 합을 구하세요.
    • 폭력 범죄의 검거 건수의 합을 구하세요.
  • AVG
    • 서초경찰서의 범죄별 평균 검거 건수를 검색하고 확인하세요.
  • MIN
    • 광진경찰서에서 가장 낮은 범죄 검거 건수를 검색하고 확인하세요.
  • MAX
    • 영등포경찰서의 가장 높은 범죄 발생 건수를 검색하고 확인하세요.

GROUP BY

  • 그룹화하여 데이터를 조회
  • 기본 문법
  • 경찰서별로 절도 범죄 평균 발생 건수를 가장 많은 건수 순으로 10개 검색
  • 경찰서 별로 가장 많이 검거한 범죄 건수를 가장 적은 건수 순으로 5개 검색

HAVING

  • 조건에 집계함수가 포함되는 경우 WHERE 대신 HAVING 사용
  • 기본 문법
  • 경찰서별로 가장 적게 검거한 건수 중 4건 보다 큰 경우를 건수가 큰 순으로 정렬하여 검색
  • '대문' 으로 끝나는 이름의 경찰서별 범죄 발생 건수의 평균이 500건 이상인 경우를 검색

"이 글은 제로베이스 데이터 취업 스쿨의 강의 자료 일부를 발췌하여 작성되었습니다."

0개의 댓글