저번 글에는 1과목 정리를 마쳤고 오늘 글부터는 2과목에 대한 정리를 할까 한다.
2과목은 내용이 많으니 나눠서 정리해보려고 한다.
SQL 기본 및 활용
SQL 기본
관계형 데이터베이스의 개요
관계형 데이터베이스는 관계형 데이터 모델에 기초를 둔 데이터베이스이다.
관계형 데이터베이스에서의 설계는 모든 데이터를 2차원 테이블 형태로 표현한 뒤 각 테이블 간의 관계를 정의하는 것으로 시작된다.
테이블은 데이터모델에서 인스턴스에 해당하는 로우와 속성에 해당하는 컬럼으로 이루어진다.
SELECT문
- 저장되어 있는 데이터를 조회하고자 할 때 사용하는 명령어
SELECT 컬럼1, 컬럼2, ... FROM 테이블 WHERE 조건;
산술연산자 우선순위
() -> * , / -> +, -
함수 (암기)
(1) 문자함수
- CHR(ASCII 코드) : ASCII 코드를 인수로 입력했을 때 매핑되는 문자 알려줌
- LOWER(문자열) : 문자열을 소문자로 변환해주는 함수
- UPPER(문자열) : 문자열을 대문자로 변환해주는 함수
- LTRIM(문자열 [, 특정문자]) : 문자열을 왼쪽부터 한 글자씩 특정 문자와 비교하여 포함되어 있으면 제거, 아니면 멈춤
(문자열 없으면 왼쪽 공백제거)
- RTRIM(문자열 [, 특정문자]) : 문자열을 오른쪽부터 한 글자씩 특정 문자와 비교하여 포함되어 있으면 제거, 아니면 멈춤]
(문자열 없으면 오른쪽 공백제거)
- TRIM([위치] [특정문자] [FROM] 문자열) : 옵션이 하나도 없을 경우 문자열의 왼쪽과 오른쪽 공백 제거, 옵션 있을 경우 문자열을 위치로 지정된 곳부터 한 글자씩 특정 문자와 비교하여 같으면 제거하고 같지 않으면 멈춤
- LENGTH(문자열) : 문자열의 길이 반환
- SUBSTR(문자열, 시작점 [, 길이]) : 문자열의 원하는 부분만 잘라서 반환
- REPLACE(문자열, 변경 전 문자열 [, 변경 후 문자열]) : 문자열에서 변경 전 문자열을 찾아 변경 후 문자열로 바꿔줌
(2) 숫자함수
- ABS(수) : 수의 절대값 반환
- SIGN(수) : 수의 부호를 반환
- ROUND(수 [, 자릿수]) : 수를 지정된 소수점 자릿수까지 반올림하여 반환
- TRUNC(수 [, 자릿수]) : 수를 지정된 소수점 자릿수까지 버림하여 반환
- CEIL(수) : 소수점 이하의 수를 올림한 정수 반환
- FLOOR(수) :소수점 이하의 수를 버림한 정수를 반환
- MOD(수1, 수2) : 수1을 수2로 나눈 나머지를 반환
(3) 날짜 함수
- SYSDATE (= GETDATE())
: 현재의 연, 월, 일, 시, 분, 초를 반환
- EXTRACT(특정단위 FROM 날짜 데이터)
= DATEPART(특정단위, 날짜 데이터)
: 날짜 데이터에서 특정 단위만을 출력해서 반환
- ADD_MONTHS(날짜 데이터, 특정 개월 수)
= DATEADD(MONTH, 특정 개월 수, 날짜 데이터)
: 날짜 데이터에서 특정 개월 수를 더한 날짜를 반환
(4) 변환 함수
- TO_NUMBER(문자열) : 문자열을 숫자형으로 변환
- TO_CHAR(수 or 날짜 [, 포맷]) : 수나 날짜형의 데이터를 포맷 형식의 문자형으로 변환
- TO_DATE(문자열, 포맷) : 포맷 형식의 문자형의 데이터를 날짜형으로 변환
(5) NULL 관련 함수
- NVL(인수2, 인수2)
: 인수1의 값이 NULL일 경우 인수2를 반환하고 NULL이 아닐 경우 인수1을 반환
- NULLIF(인수1, 인수2)
: 인수1과 인수2가 같으면 NULL을 반환하고 같지 않으면 인수1을 반환
- COALESCE(인수1, 인수2, 인수3, ...)
: NULL이 아닌 최초의 인수를 반환
WHERE 절
DML문을 수행할 때 원하는 데이터만 골라 수행할 수 있도록 해주는 구문
(1) 비교 연산자
- = : 같음
- < : 작음
- <= : 작거나 같음
- > : 큼
- >= : 크거나 같음
(2) 부정 비교 연산자
- != : 같지 않음
- ^= : 같지 않음
- <> : 같지 않음
- not 컬럼명 = : 같지 않음
- not 컬럼명 > : 크지 않음
(3) SQL 연산자
- BETWEEN A AND B : A와 B의 사이(A,B 포함)
- LIKE '비교 문자열' : 비교 문자열을 포함
- IN (LIST) : LIST 중 하나와 일치
- IS NULL : NULL 값
(4) 논리 연산자
- AND : 모든 조건이 TRUE여야 함
- OR : 하나 이상의 조건이 TRUE여야 함
- NOT : TRUE면 FALSE이고 FALSE이면 TRUE
논리 연산자 처리 순서
() -> NOT -> AND -> OR
GROUP BY, HAVING 절
(1) GROUP BY
: 데이터를 그룹별로 묶을 수 있도록 해주는 절
(2) 집계 함수
- COUNT(*) : 전체 row를 count하여 반환
- COUNT(컬럼) : 컬럼값이 Null인 row를 제외하고 count하여 반환
- COUNT(DISTINCT 컬럼) : 컬럼값이 Null이 아닌 row에서 중복을 제거한 count를 반환
- SUM(컬럼) : 컬럼값들의 합계를 반환
- AVG(컬럼) : 컬럼값들의 평균을 반환
- MIN(컬럼) : 컬럼값들의 최소값을 반환
- MAX(컬럼) : 컬럼값들의 최대값을 반환
ORDER BY 절
- SELECT 문에서 논리적으로 맨 마지막에 수행됨
FROM -> WHERE -> GROUP BY -> HAVING -> SELECT -> ORDER BY
JOIN
- EQUI JOIN : Equal 조건으로 JOIN 하는 것
- Non EQUI JOIN : Equal 조건이 아닌 다른 조건으로 JOIN하는 방식
STANDARD JOIN
(1) INNER JOIN : JOIN 조건에 충족하는 데이터만 출력되는 방식
(2) OUTER JOIN
- LEFT OUTER JOIN : 왼쪽에 표기된 테이블의 데이터는 무조건 출력되는 JOIN
- RIGHT OUTER JOIN : 오른쪽에 표기된 테이블의 데이터는 무조건 출력
- FULL OUTER JOIN : 왼쪽, 오른쪽 테이블의 데이터가 모두 출력 (중복값은 제거)
JOIN되는 데이터가 없는 Row들은 NULL로 출력됨
(3) NATURAL JOIN
두 테이블에서 같은 이름을 가진 컬럼들이 모두 동일한 데이터를 가지고 있을 경우 JOIN
(4) CROSS JOIN
테이블 사이에 JOIN 조건이 없는 경우 조합할 수 있는 모든 경우를 출력
여기까지 SQL 기본에 관한 내용 정리였다.
다음에는 SQL 활용에 관한 내용을 다뤄볼까 한다. 망망!
'학습' 카테고리의 다른 글
SQLD 자격증 따기5 - 관리 구문 및 후기 (0) | 2023.07.13 |
---|---|
SQLD 자격증 따기4 - SQL 활용 (0) | 2023.07.12 |
SQLD 자격증 따기 2 - 데이터 모델링의 이해 (0) | 2023.07.06 |
SQLD 자격증 따기 1 - 책 소개 (0) | 2023.07.05 |
트랜잭션이란? (0) | 2023.07.03 |