파트키워드뜻기본 문법 / 예시시험 포인트
SQL 분류DDL데이터베이스 구조 정의CREATE, ALTER, DROP, TRUNCATE테이블 만들기/수정/삭제는 DDL
SQL 분류DML실제 데이터 조작SELECT, INSERT, UPDATE, DELETE조회/삽입/수정/삭제는 DML
SQL 분류DCL권한 제어GRANT, REVOKE권한 주기/회수는 DCL
SQL 분류TCL트랜잭션 제어COMMIT, ROLLBACK작업 확정/취소
DDLCREATE테이블 생성CREATE TABLE student (id INT PRIMARY KEY, name VARCHAR(20));괄호 안에 컬럼명 + 자료형 + 제약조건
DDLALTER테이블 구조 변경ALTER TABLE student ADD phone VARCHAR(20);기존 테이블에 컬럼/조건 추가
DDLALTER ADD컬럼 추가ALTER TABLE student ADD age INT;ADD 컬럼명 자료형
DDLALTER DROP COLUMN컬럼 삭제ALTER TABLE student DROP COLUMN phone;테이블 삭제가 아니라 컬럼 삭제
DDLALTER CHECK조건 추가ALTER TABLE student ADD CONSTRAINT chk_age CHECK (age >= 0);조건은 CHECK (조건식) 안에 씀
DDLDROP테이블 자체 삭제DROP TABLE student;구조 + 데이터 전부 삭제
DDLTRUNCATE테이블 비우기TRUNCATE TABLE student;구조는 남고 데이터만 전체 삭제
DMLSELECT데이터 조회SELECT name, age FROM student;원하는 컬럼 조회
DMLINSERT데이터 삽입INSERT INTO student (id, name) VALUES (1, '철수');앞 괄호는 컬럼명, 뒤 괄호는 값
DMLUPDATE데이터 수정UPDATE student SET age = 18 WHERE name = '철수';WHERE 없으면 전체 수정
DMLDELETE행 삭제DELETE FROM student WHERE id = 1;WHERE 없으면 전체 데이터 삭제
DCLGRANT권한 부여GRANT SELECT ON student TO user1;GRANT 권한 ON 테이블 TO 사용자
DCLREVOKE권한 회수REVOKE SELECT ON student FROM user1;REVOKE 권한 ON 테이블 FROM 사용자
DCLGRANT UPDATE()특정 컬럼 수정 권한GRANT UPDATE(name, age) ON student TO user1;괄호 안에는 컬럼명
DCLALL모든 권한GRANT ALL ON student TO user1;ALL은 전체 권한
SELECTDISTINCT중복 제거SELECT DISTINCT grade FROM student;같은 값은 한 번만 출력
SELECTWHERE일반 조건SELECT * FROM student WHERE age >= 17;그룹 묶기 전 조건
SELECTGROUP BY같은 값끼리 그룹화SELECT dept, COUNT(*) FROM student GROUP BY dept;집계함수랑 자주 같이 나옴
SELECTHAVING그룹 조건HAVING COUNT(*) >= 3그룹 묶은 뒤 조건
SELECTORDER BY정렬ORDER BY age DESC;ASC 오름차순, DESC 내림차순
함수COALESCENULL 아닌 첫 번째 값 반환COALESCE(tlno, 'NONE')NULL이면 다음 값으로 넘어감
함수IFNULLNULL 대체IFNULL(tlno, 'NONE')MySQL에서 자주 씀
함수COUNT개수COUNT(*)행 개수 셈
함수SUM합계SUM(price)숫자 합계
함수AVG평균AVG(price)평균값
함수MAX최댓값MAX(price)가장 큰 값
함수MIN최솟값MIN(price)가장 작은 값
제약조건PRIMARY KEY기본키id INT PRIMARY KEY중복 X, NULL X
제약조건FOREIGN KEY외래키FOREIGN KEY (dept_id) REFERENCES dept(dept_id)다른 테이블의 기본키 참조
제약조건NOT NULLNULL 금지name VARCHAR(20) NOT NULL반드시 값 있어야 함
제약조건UNIQUE중복 금지email VARCHAR(50) UNIQUE중복 X, NULL은 DB마다 다를 수 있음
제약조건CHECK조건 제한CHECK (age >= 0)조건식 만족해야 입력 가능
제약조건DEFAULT기본값grade INT DEFAULT 1값 안 넣으면 기본값 입력
외래키 옵션RESTRICT참조 중이면 삭제/수정 막음ON DELETE RESTRICT“누가 참조 중이면 건드리지 마”
외래키 옵션CASCADE부모 변경/삭제 시 자식도 같이 변경/삭제ON DELETE CASCADE같이 삭제/변경
외래키 옵션SET NULL부모 삭제 시 자식 외래키를 NULL로 변경ON DELETE SET NULL연결 끊고 NULL 처리
비교DELETE vs DROP데이터 삭제 vs 테이블 삭제DELETE FROM student; / DROP TABLE student;DELETE는 DML, DROP은 DDL
비교DELETE vs TRUNCATE조건 삭제 vs 전체 비우기DELETE WHERE 조건 / TRUNCATE TABLETRUNCATE는 구조 유지
비교WHERE vs HAVING일반 조건 vs 그룹 조건WHERE age >= 17 / HAVING COUNT(*) >= 3HAVING은 GROUP BY 뒤
비교DISTINCT vs GROUP BY중복 제거 vs 그룹 집계DISTINCT dept / GROUP BY dept개수/합계 구할 땐 GROUP BY
문법 순서SELECT문 순서조회문 작성 순서SELECT → FROM → WHERE → GROUP BY → HAVING → ORDER BY이 순서로 외우기
문법 순서UPDATE문 순서수정문 작성 순서UPDATE 테이블 SET 컬럼=값 WHERE 조건SET 먼저, 조건은 WHERE
문법 순서DELETE문 순서삭제문 작성 순서DELETE FROM 테이블 WHERE 조건FROM 빠지면 안 됨
문법 순서GRANT문 순서권한 부여 순서GRANT 권한 ON 테이블 TO 사용자부여는 TO
문법 순서REVOKE문 순서권한 회수 순서REVOKE 권한 ON 테이블 FROM 사용자회수는 FROM
발음DISTINCT디스팅트중복 제거문제에서 중복 제거 나오면 DISTINCT
발음RESTRICT리스트릭트제한하다참조 중이면 막는 옵션
발음COALESCE코얼레스NULL 아닌 첫 값NULL 처리 함수

최종 암기 압축

문제 표현정답 키워드
테이블을 생성한다CREATE
테이블 구조를 변경한다ALTER
테이블 자체를 삭제한다DROP
테이블은 남기고 데이터만 전체 삭제한다TRUNCATE
데이터를 조회한다SELECT
데이터를 삽입한다INSERT
데이터를 수정한다UPDATE
데이터를 삭제한다DELETE
권한을 부여한다GRANT
권한을 회수한다REVOKE
중복을 제거한다DISTINCT
NULL이면 다른 값을 출력한다COALESCE
참조 중이면 삭제/수정을 막는다RESTRICT
부모 삭제 시 자식도 같이 삭제한다CASCADE
부모 삭제 시 자식 외래키를 NULL로 바꾼다SET NULL
그룹으로 묶기 전 조건WHERE
그룹으로 묶은 후 조건HAVING
특정 컬럼만 수정 권한을 준다GRANT UPDATE(컬럼명) ON 테이블 TO 사용자
조건 제약을 추가한다ALTER TABLE 테이블 ADD CONSTRAINT 이름 CHECK (조건식)