25_ SQL 심화 2

김정연·2023년 7월 22일
0

데이터스쿨

목록 보기
26/30

📌 PRIMARY KEY

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

  • PRIMARY KEY 삭제
ALTER TABLE tablename
DROP PRIMARY KEY;
  • 이미 생성된 테이블에 PRIMARY KEY 생성
ALTER TABLE tablename
ADD PRIMARY KEY (col1, col2, ...) ;

📌 FOREIGN KEY

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

✅ CREATE TABLE 에서 FOREIGN KEY를 지정하는 경우, CONSTRAINT 를 생략할 수 있다.

  • 자동 생성된 CONSTRAINT 를 확인하는 방법
SHOW CREATE TABLE tablename;
  • FOREIGN KEY 삭제
ALTER TABLE tablename
DROP FOREIGN KEY FK_constraint;
  • 생성된 테이블에 FOREIGN KEY 생성
ALTER TABLE tablename
ADD FOREIGN KEY (col) REFERENCES REF_tablename(REF_col);

📌 Aggregate Functions (집계함수)

  • count : 총 갯수를 계산하는 함수
  • sum : 합계
  • avg : 평균
  • min : 가장 작은 값을 찾아주는 함수
  • max : 가장 큰 값을 찾아주는 함수
  • first : 첫번째 결과값을 리턴하는 함수
  • last : 마지막 결과값을 리턴하는 함수
  • group by - 그룹화하여 데이터를 조회
  • having : 조건에 집계함수가 포함되는 경우 WHERE 대신 HAVING 사용
  • count
SELECT COUNT(col)
FROM tablename
WHERE condition;
  • sum
SELECT SUM(col)
FROM tablename
WHERE condition;
  • avg
SELECT AVG(col)
FROM tablename
WHERE condition;
  • min
SELECT MIN(col)
FROM tablename
WHERE condition;
  • max
SELECT MAX(col)
FROM tablename
WHERE condition;
  • group by
SELECT col1, col2, ...
FROM tablename
WHERE condition
GROUP BY col1, co12, ...
ORDER BY col1, col2, ...;
  • having
SELECT col1, col2, ...
FROM tablename
WHERE condition
GROUP BY col1, co12, ...
HAVING condition (Aggregate Functions)
ORDER BY col1, col2, ...;


📌 Scalar Functions

  • UCASE : 영문을 대문자로 변환하는 함수
  • LCASE : 영문을 소문자로 변환하는 함수
  • MID : 문자열 부분을 반환하는 함수
  • LENGTH : 문자열의 길이를 반환하는 함수
  • ROUND : 지정한 자리에서 숫자를 반올림하는 함수
  • NOW : 현재 날짜 및 시간을 반환하는 함수
  • FORMAT : 숫자를 첫단위 콤마가 있는 형식으로 반환하는 함수
  • UCASE
SELECT UCASE(string | col)
  • LCASE
SELECT LCASE(string | col)
  • MID
SELECT MID(string | col, start_position, length)
- string : 원본 문자열
- start : 문자열 반환 시작 위치 (첫글자는 1, 마지막글자는 -1) 
- length : 반환할 문자열 길이

  • LENGTH
SELECT LENGTH(string | col)
- 공백의 경우에도 문자이므로 길이가 1
- NULL 의 경우 길이가 없으므로 NULL
  • ROUND
SELECT ROUND(num, decimals_place)
- number : 반올림할 대상
- decimals : 반올림할 소수점 위치 (Option)
   - 소수점 두번째 자리까지 : 2
   - 일의 자리에서 : -1
   - 십의 자리에서  : -2
  • NOW
SELECT NOW()
  • FORMAT
SELECT FORMAT(number, decimals_place)
- number : 포맷을 적용할 문자 혹은 숫자
- decimals : 표시할 소수점 위치

0개의 댓글