1절 관계형 데이터베이스 개요
- 데이터베이스(DBMS)
⤷ 효율적인 데이터 관리
⤷ 데이터 손상 방지 및 복구 기능 제공
- 명령어 종류
- SELECT
⤷ DML, 조회 및 검색 (= RETRIEVE)
- INSERT
⤷ DML, 데이터 삽입
- UPDATE
⤷ DML, 데이터 수정
- DELETE
⤷ DML, 데이터 삭제
- CREATE
⤷ DDL, 테이블 등 객체 생성
- ALTER
⤷ DDL, 테이블 등 객체 변경
- DROP
⤷ DDL, 객체 삭제
- RENAME
⤷ DDL, 객체 이름 변경
- GRANT
⤷ DCL, 권한 부여
- REVOKE
⤷ DCL, 권한 회수
- COMMIT
⤷ TCL, 트랜잭션 확정
- ROLLBACK
⤷ TCL, 트랜잭션 취소
- 집합 연산자
⤷ 일반 집합 연산 : UNION, INTERSECTION, DIFFERENCE, PRODUCT(CROSS JOIN)
⤷ 순수 관계 연산 : SELECT, PROJECT, (NATURAL) JOIN, DIVIDE(현재 사용되지 않음)
- 데이터 타입
⤷ CHARACTER(s), VARCHAR(s), NUMERIC, DATETIME
제2절 SELECT문
- 기본 구문
⤷ `SELECT [ALL/DISTINCT/(*)] 칼럼명1, 칼럼명2 … FROM 테이블명`
- ALIAS 사용
⤷ 칼럼명 뒤에 위치
⤷ `AS` 키워드 사용 가능
⤷ 공백, 특수문자, 대소문자 구분 시 이중 인용부호 사용
- 합성연산자
⤷ 수직 바 `||` (Oracle)
⤷ 플러스 `+` (SQL Server)
⤷ `CONCAT(string1, string2)`
⤷ 예시 : `SELECT first_name || last_name AS full_name FROM employees;`
- 실행 순서
⤷ FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY
제3절 함수
- 문자형 함수
⤷ CONCAT, UPPER, LOWER, SUBSTR, LENGTH, TRIM, REPLACE, INSTR, LEFT, RIGHT, MID 등
- 숫자형 함수
⤷ ROUND, ABS, POWER, CEIL, FLOOR, MOD, SIGN, SQRT, EXP, LOG 등
⤷ SIGN : 숫자 양/음/0 확인
⤷ CEIL(숫자) : 크거나 같은 최소 정수
⤷ FLOOR(숫자) : 작거나 같은 최대 정수
⤷ TRUNC(숫자,[m]) : m자리에서 반올림, 생략 시 0
⤷ EXP : 지수, POWER : 거듭제곱, SQRT : 제곱근, LN : 자연 로그
- 날짜형 함수
⤷ DATEADD, DATEDIFF, YEAR, MONTH, DAY, HOUR, MINUTE, SECOND, DATEPART, GETDATE 등
- 변환형 함수
⤷ CAST, CONVERT, TO_CHAR, TO_NUMBER, TO_DATE, NUMTOYMINTERVAL, TO_TIMESTAMP
- NULL 관련 함수
⤷ NVL(expr1, expr2) : expr1 NULL → expr2
⤷ NVL2(expr1, expr2, expr3) : expr1 NULL → expr3, 아니면 expr2
⤷ NULLIF(expr1, expr2) : expr1=expr2 → NULL, 아니면 expr1
⤷ COALESCE(expr1, expr2…) : NULL이 아닌 최소값 반환
제4절 WHERE 절
- 조건식 구성
⤷ (1) 칼럼명, (2) 비교 연산자, (3) 값/표현식, (4) 비교 칼럼명(JOIN 시)
- 비교 연산자
⤷ =, >, >=, <, <=, BETWEEN a AND b, IN(list), LIKE, IS NULL
- 논리/부정 연산자
⤷ AND, OR, NOT, !=, ^=, <>, NOT=, NOT BETWEEN, NOT IN, IS NOT NULL
- 검색 CASE 표현식
⤷ 개별 조건 확인 후 값 반환
⤷ 단순 CASE 표현식 : 값 기준 조건 확인
⤷ DECODE : 여러 조건 비교 후 일치 결과 반환
제5절 GROUP BY, HAVING 절
- 기능
⤷ 소그룹 기준 집계 수행
⤷ 테이블 전체가 하나일 경우 단독 사용 가능
- 집계 함수
⤷ COUNT(*), COUNT, SUM, AVG, MAX, MIN, STDDEV, COVAR/VAR 등
- 특성
⤷ GROUP BY → 소그룹 기준
⤷ SELECT와 달리 ALIAS 사용 불가
⤷ HAVING → 소그룹 조건 지정
제6절 ORDER BY 절
- 정렬
⤷ 기본 오름차순(ASC)
⤷ Oracle : NULL 최댓값, SQL : NULL 최솟값
⤷ SELECT절에 한 번만 사용 가능
제7절 조인
- 조인 기본
⤷ PK와 FK 연관성에 의해 성립, 논리적 연관만으로도 가능
⤷ 옵티마이저는 FROM절 데이터 2개씩 처리
- 조인 종류
⤷ INNER JOIN : 동일 값만 반환, 디폴트
⤷ NATURAL JOIN : 동일 이름 칼럼 기준
⤷ USING / ON : 조건 칼럼 지정
⤷ CROSS JOIN : 카테시안 조합
⤷ OUTER JOIN : (+) 표기
'Hello World > SQLD' 카테고리의 다른 글
[2-3 SQL 관리 구문] (0) | 2025.10.15 |
---|---|
[2-2 SQL 활용] (0) | 2025.10.15 |
[1-2] 데이터 모델과 SQL (0) | 2025.10.11 |
[1-1] 데이터 모델링의 이해 (6) | 2025.01.07 |