SQL (5)

MSMoon·2025년 5월 18일
0

데이터 이론 학습

목록 보기
26/27
post-thumbnail

Chapter 14 Primary key, Foreign key

Primary Key(기본키)

  • 테이블의 각 레코드를 식별
  • 중복되지 않은 고유값을 포함
  • NULL 값을 포함할 수 없음
  • 테이블 당 하나의 기본키를 가짐
CREATE TABLE tablename
(
  column1 datatype NOT NULL,
  column2 datatype NOT NULL,
  ...
  CONSTRAINT constraint_name
   PRIMARY KEY (column1, column2, ...)
);
  • Primary key 삭제 문법
ALTER TABLE tablename
DROP PRIMARY KEY;

Foreign Key (외래키)

  • 한 테이블을 다른 테이블과 연결해주는 역할이며, 참조되는 테이블의 항목은 그 테이블의 기본키 (혹은 단일값)
CREATE TABLE tablename
(
  column1 datatype NOT NULL,
  column2 datatype NOT NULL,
  column3 datatype,
  column4 datatype,
  ...
  CONSTRAINT constraint_name
   PRIMARY KEY (column1, column2, ..,),
  CONSTRAINT constraint_name
   FOREIGN KEY (column3, column4, ...) REFERENCES REF_tablename(REF_column)
);
  • 자동 생성된 constraint를 확인하는 방법
SHOW CREATE TABLE tablename;
  • Foreign key 삭제 문법
ALTER TABLE tablename
DROP FOREIGN KEY FK_constraint;

Chapter 15 Aggregate Functions(집계 함수)

  • 여러 칼럼 혹은 테이블 전체 칼럼으로부터 하나의 결과값을 반환하는 함수

Count

  • 총 갯수를 계산해 주는 함수
SELECT COUNT(column)
FROM tablename
WHERE condition;

SUM

  • 숫자 칼럼의 합계를 계산해주는 함수
SELECT SUM(column)
FROM tablename
WHERE condition;

AVG

  • 숫자 칼럼의 평균을 계산해주는 함수
SELECT AVG(column)
FROM tablename
WHERE condition;

MIN

  • 숫자 칼럼 중 가장 작은 값을 찾아주는 함수
SELECT MIN(column)
FROM tablename
WHERE condition;

MAX

  • 숫자 칼럼 중 가장 큰 값을 찾아주는 함수
SELECT MAX(column)
FROM tablename
WHERE condition;

GROUP BY

  • 그룸화하여 데이터를 조회
SELECT column1, column2, ..
FROM table
WHERE condition
GROUP BY column1, column2, ...
ORDER BY column1, column2, ...;

HAVING

  • 조건에 집계함수가 포함되는 경우 WHERE 대신 HAVING 사용
SELECT column1, column2, ..
FROM table
WHERE condition
GROUP BY column1, column2, ...
HAVING condition (Aggregate Functions)
ORDER BY column1, column2, ...;

Chapter 16 Scalar Functions

  • 입력값을 기준으로 단일 값을 변환하는 함수

UCASE

  • 영문을 대문자로 변환하는 함수
SELECT UCASE(string);

LCASE

  • 영문을 소문자로 변환하는 함수
SELECT LCASE(string);

MID

  • 문자열 부분을 반환하는 함수
SELECT MID(string, start_position, lenth);

LENGTH

  • 문자열의 길이를 반환하는 함수
SELECT LENGTH(string);

ROUND

  • 지정한 자리에서 숫자를 반올림하는 함수
SELECT ROUND(number, decimals_place);

NOW

  • 현재 날짜 및 시간을 반환하는 함수
SELECT NOW();

FORMAT

  • 숫자를 천단위 콤마가 있는 형식으로 반환하는 함수
SELECT FORMAT(number, decimal_place);

Chapter 17 SQL Subquery

  • 하나의 SQL문 안에 포함되어 있는 또 다른 SQL문

  • 메인쿼리가 서브쿼리를 포함하는 종속적인 관계
    -> 서브쿼리는 메인쿼리의 칼럼 사용 가능
    -> 메인쿼리는 서브쿼리의 칼럼 사용 불가

  • Subquery사용 시 주의
    -> Subquery는 괄호로 묶어서 사용
    -> 단일 행 혹은 복수 행 비교 연산자와 함께 사용 가능
    -> Subquery에서는 order by를 사용하지 않음

  • Subquery 종류
    -> Scalar Subquery: SELECT 절에 사용
    -> Inline View: FROM 절에 사용
    -> 중첩 서브쿼리: WHERE 절에 사용

스칼라 서브쿼리

  • SELECT 절에서 사용하는 서비쿼리, 결과는 하나의 Column이어야 함
SELECT column1, (SELECT column2 FROM table2 WHERE condition)
FROM table1
WHERE condition;

인라인 뷰

  • FROM 절에 사용되는 서브쿼리로 메인쿼리에서는 인라인 뷰에서 조회한 Column만 사용가능
SELECT a.column, b.column
FROM table1 a, (SELECT column1, column2 FROM table2) b
WHERE condition;

중첩 서브쿼리

  • WHERE 절에서 사용하는 서브쿼리
    -> Single Row: 하나의 열을 검색하는 서브쿼리
    -> Multiple Row: 하나 이상의 열을 검색하는 서브쿼리
    -> Multiple Column: 하나 이상의 행을 검색하는 서브쿼리

  • 서브쿼리가 비교연산자와 사용되는 경우, 서브쿼리의 검색 결과는 한 개의 결과값을 가져야 함

이 글은 제로베이스 강의 자료 일부를 발췌하여 작성되었습니다

0개의 댓글