본문 바로가기
DBMS/SQL

[데이터베이스] SQL 치팅시트: DDL, DML, DCL 커맨드 목록

by webcodur 2024. 4. 21.
728x90

목차

     

     

    SQL 명령어를 신속하게 찾고 이해하는 것은 데이터베이스 관리에 있어 필수적이다. 이 포스트에서는 DDL, DML, DCL 각 부분의 핵심 명령어들을 리스트업하여, 필요할 때 쉽게 접근하고 활용할 수 있도록 구성하였다.

     

    1. DDL (Data Definition Language) - 데이터 정의 언어

    DDL은 데이터베이스의 구조를 정의하고 관리하는 명령어들로 구성된다.

    • CREATE
      • 테이블 생성: CREATE TABLE tname (column1 datatype, ...);
      • 뷰 생성: CREATE VIEW vname AS SELECT column1, ... FROM tname WHERE condition;
      • 인덱스 생성: CREATE INDEX iname ON tname (column1);
      • 스키마 생성: CREATE SCHEMA sname;
      • 시퀀스 생성: CREATE SEQUENCE seqname START WITH 1 INCREMENT BY 1;
      • 데이터베이스 생성: CREATE DATABASE dbname;
    • ALTER
      • 테이블 수정: ALTER TABLE tname ADD column_name datatype;
      • 테이블의 컬럼 수정: ALTER TABLE tname ALTER COLUMN column_name datatype;
      • 테이블의 컬럼 삭제: ALTER TABLE tname DROP COLUMN column_name;
    • DROP
      • 테이블 삭제: DROP TABLE tname;
      • 뷰 삭제: DROP VIEW vname;
      • 인덱스 삭제: DROP INDEX iname;
      • 스키마 삭제: DROP SCHEMA sname;
      • 시퀀스 삭제: DROP SEQUENCE seqname;
      • 데이터베이스 삭제: DROP DATABASE dbname;
    • TRUNCATE
      • 테이블 내 데이터 전체 삭제: TRUNCATE TABLE tname;

     

     

    2. DML (Data Manipulation Language) - 데이터 조작 언어

    DML은 데이터를 조작하기 위한 명령어들이다.

    2-1. 기본 DML문

    • INSERT
      • 데이터 삽입: INSERT INTO tname (column1, ...) VALUES (value1, ...);
    • UPDATE
      • 데이터 수정: UPDATE tname SET column1 = value1 WHERE condition;
    • DELETE
      • 데이터 삭제: DELETE FROM tname WHERE condition;
    • SELECT
      • 데이터 조회: SELECT column1, ... FROM tname WHERE condition;

     

    2-2. SELECT 문 확장

    • WHERE
      • 데이터를 조회할 때 특정 조건을 만족하는 레코드만 선택하여 결과에 포함시킨다.
      • 예: SELECT * FROM tname WHERE column1 = 'value';
    • ORDER BY
      • 조회 결과를 특정 컬럼의 값에 따라 정렬한다. 기본적으로 오름차순(ASC)으로 정렬되며, 내림차순(DESC)으로 정렬을 변경할 수 있다.
      • 예: SELECT * FROM tname ORDER BY column1 DESC;
    • GROUP BY
      • 특정 컬럼을 기준으로 데이터를 그룹화한다. 이는 보통 집계 함수와 함께 사용되어 각 그룹의 데이터를 요약하는 데 사용된다.
      • 예: SELECT column1, COUNT(*) FROM tname GROUP BY column1;
    • HAVING
      • GROUP BY와 함께 사용되며, 특정 집계 조건을 만족하는 그룹만을 결과로 반환한다.
      • 예: SELECT column1, COUNT(*) FROM tname GROUP BY column1 HAVING COUNT(*) > 10;
    • 집계 함수(Aggregate Functions)
      • COUNT(): 그룹 내 항목 수를 계산한다.
      • SUM(): 그룹 내 항목의 합을 계산한다.
      • AVG(): 그룹 내 항목의 평균 값을 계산한다.
      • MAX(): 그룹 내 최대 값을 찾는다.
      • MIN(): 그룹 내 최소 값을 찾는다.
      • 예: SELECT MAX(column2) FROM tname;

     

    2-3. JOIN 문

    • 데이터베이스 내 여러 테이블 간의 관계를 활용하여 데이터를 결합할 수 있음.
    • INNER JOIN
      • 두 테이블의 교집합만을 반환한다.
      • 예: SELECT * FROM tname1 INNER JOIN tname2 ON tname1.id = tname2.id;
    • LEFT JOIN
      • 왼쪽 테이블의 모든 레코드와 오른쪽 테이블의 일치하는 레코드를 반환한다. 오른쪽 테이블에 일치하는 레코드가 없으면 NULL을 반환한다.
      • 예: SELECT * FROM tname1 LEFT JOIN tname2 ON tname1.id = tname2.id;
    • RIGHT JOIN
      • 오른쪽 테이블의 모든 레코드와 왼쪽 테이블의 일치하는 레코드를 반환한다. 왼쪽 테이블에 일치하는 레코드가 없으면 NULL을 반환한다.
      • 예: SELECT * FROM tname1 RIGHT JOIN tname2 ON tname1.id = tname2.id;
    • FULL JOIN
      • 두 테이블의 합집합을 반환한다. 일치하지 않는 레코드는 NULL과 함께 반환한다.
      • 예: SELECT * FROM tname1 FULL JOIN tname2 ON tname1.id = tname2.id;
    • CROSS JOIN
      • 두 테이블의 모든 가능한 조합을 생성하는 조인 유형
      • 예: SELECT * FROM tname1 CROSS JOIN tname2;

     

    2-4. DML에서 추가적으로 다룰 수 있는 구문들

    • LIMIT
      • 조회 결과의 레코드 수를 제한. 특히 큰 데이터베이스에서 특정 수의 결과만 빠르게 보고자 할 때 사용.
      • 예: SELECT * FROM tname LIMIT 10;
    • OFFSET
      • 지정된 수의 행을 건너뛰고 데이터를 반환. LIMIT과 함께 페이지네이션 구현에 자주 사용.
      • 예: SELECT * FROM tname LIMIT 10 OFFSET 20;
    • DISTINCT
      • 중복된 결과를 제거하고 유니크한 레코드만 반환. 특정 컬럼에 대한 중복 없는 값들을 조회할 때 유용.
      • 예: SELECT DISTINCT column1 FROM tname;
    • UNION / UNION ALL
      • 두 개 이상의 SELECT 쿼리 결과를 결합. UNION은 중복된 결과를 제거하고, UNION ALL은 모든 결과를 포함.
      • 예: SELECT column1 FROM tname1 UNION SELECT column1 FROM tname2;
    • INTERSECT
      • 두 쿼리의 결과 중 공통적인 레코드만 반환.
      • 예: SELECT column1 FROM tname1 INTERSECT SELECT column1 FROM tname2;
    • EXCEPT
      • 첫 번째 쿼리의 결과에서 두 번째 쿼리의 결과를 제외한 레코드만 반환.
      • 예: SELECT column1 FROM tname1 EXCEPT SELECT column1 FROM tname2;

     

     

    3. DCL (Data Control Language) - 데이터 제어 언어

    DCL은 데이터 접근 및 권한 관리를 위한 명령어들이다.

    • GRANT
      • 권한 부여: GRANT SELECT ON tname TO uname;
    • REVOKE
      • 권한 철회: REVOKE SELECT ON tname FROM uname;