Hello World/SQLD

[2-1 SQL 기본 및 활용]

혼복필 2025. 10. 11. 17:20
728x90
SMALL

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 : (+) 표기  

728x90
LIST

'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