inblog logo
|
DailyCoding
    RDBMS

    5. DDL & DML

    박은서's avatar
    박은서
    Apr 24, 2026
    5. DDL & DML
    Contents
    1. 데이터 조작 언어(DML, Data Manipulation Language)1️⃣ DML이란?2️⃣ DML의 대표적인 명령어3️⃣ 예시4️⃣ 실습2. 데이터 정의 언어(DDL, Data Definition Language)1️⃣ DDL이란?2️⃣ DDL의 대표적인 명령어3️⃣ 예시4️⃣ 실습

    1. 데이터 조작 언어(DML, Data Manipulation Language)

    1️⃣ DML이란?

    • 데이터를 직접 다루는 SQL 명령어
    • 데이터를 넣고, 바꾸고, 지우고, 조회하는 언어

    2️⃣ DML의 대표적인 명령어

    명령어
    의미
    예시
    SELECT
    데이터 조회
    데이터 보기
    INSERT
    데이터 삽입
    새 행 추가
    UPDATE
    데이터 수정
    기존 값 변경
    DELETE
    데이터 삭제
    행 삭제

    3️⃣ 예시

    -- 데이터 조회 SELECT * FROM users; -- 데이터 추가 INSERT INTO users (id, name) VALUES (1, '민수'); -- 데이터 수정 UPDATE users SET name = '영희' WHERE id = 1; -- 데이터 삭제 DELETE FROM users WHERE id = 1;

    4️⃣ 실습

    1) INSERT문으로 데이터 삽입

    • 기본 형식
      • INSERT INTO 테이블 이름 ([열1, 열2, ...]) VALUES ([값1, 값2, ...]);
    • 실습
      • CREATE TABLE doit_dml ( col_1 INT, col_2 VARCHAR(50), col_3 DATETIME ); INSERT INTO doit_dml (col_1, col_2, col_3) VALUES (1, 'DoItSQL', '2023-01-01');
        notion image
    • 오류 발생 예시
      • 데이터 유형 불일치
      • INSERT INTO doit_dml (col_1) VALUES ('문자 입력');
        notion image
    • 활용 방법
      • 열 이름 생략
        • 단, 열 이름을 생략하려면 테이블의 열 순서와 개수에 맞춰 데이터를 채워야 함
          INSERT INTO doit_dml VALUES (2, '열 이름 생략', '2023-01-02');
          notion image
      • 특정 열에만 데이터를 삽입하려면 다음과 같이 삽입하고자 하는 열만 소괄호 안에 나열
        • INSERT INTO doit_dml (col_1, col_2) VALUES (3, 'col_3 값 생략');
          notion image
      • 데이터의 순서를 바꾸어 나열해도 됨
        • INSERT INTO doit_dml (col_1, col_3, col_2) VALUES (4, '2023-01-03', '열순서 변경');
          notion image
      • 여러 데이터를 한 번에 삽입하고 싶다면 삽입할 값을 소괄호로 묶어 쉼표로 구분
        • INSERT INTO doit_dml (col_1, col_2, col_3) VALUES (5, '데이터 입력5', '2023-01-03'), (6, '데이터 입력6', '2023-01-03'), (7, '데이터 입력7', '2023-01-03');
          notion image

    2) UPDATE문으로 데이터 수정

    기본 형식
    • WHERE절 생략 가능
    • 하지만 WHERE절 조건 누락하면 테이블의 전체 데이터가 수정되기 때문에 항상 주의!
    UPDATE 테이블 이름 SET [열1 = 값1, 열2 = 값2, ...] WHERE [열 = 조건];
    실습
    UPDATE doit_dml SET col_2 = '데이터 수정' WHERE col_1 = 4;
    notion image
    WHERE절 조건 생략
    UPDATE doit_dml SET col_1 = col_1 + 10;
    notion image

    3) DELETE문으로 데이터 삭제

    기본 형식
    • DELETE문에서는 FROM이 반드시 필요
    • WHERE절의 조건이 누락되면 전체 데이터를 삭제하므로 항상 주의!
    DELETE FROM 테이블 이름 WHERE [열 = 조건];
    실습
    DELETE FROM doit_dml WHERE col_1 = 14;
    notion image
    WHERE절 생략(전체 데이터 삭제)
    SELECT * FROM doit_dml;
    notion image

    4) TRUNCATE문으로 전체 데이터 삭제

    대량의 데이터를 삭제할 때 DELETE문을 사용하면 트랜잭션 로그 기록으로 인해 데이터베이스 성능에 많은 문제 발생할 수 있음
    • 단, 롤백 할 수 없음!
    롤백(rollback, 이전 상태로 되돌리는 것)하지 않는다는 가정 하에 테이블이 전체 데이터를 빠르게 삭제하려면 TRUNCATE문을 사용할 수 있음
    TRUNCATE TABLE doit_dml;

    2. 데이터 정의 언어(DDL, Data Definition Language)

    1️⃣ DDL이란?

    데이터베이스의 구조(틀)를 정의하고 변경하는 SQL 명령어
    데이터를 담는 그릇을 만드는 언어

    2️⃣ DDL의 대표적인 명령어

    명령어
    의미
    예시
    CREATE
    객체 생성
    테이블, DB 생성
    ALTER
    구조 변경
    컬럼 추가/수정
    DROP
    객체 삭제
    테이블 삭제
    TRUNCATE
    데이터 전체 삭제
    구조는 유지

    3️⃣ 예시

    -- 테이블 생성 CREATE TABLE users ( id INT PRIMARY KEY, name VARCHAR(50), age INT ); -- 컬럼 추가 ALTER TABLE users ADD email VARCHAR(100); -- 테이블 삭제 DROP TABLE users; -- 데이터 전체 삭제 (롤백 불가) TRUNCATE TABLE users;

    4️⃣ 실습

    1) CREATE문으로 데이터베이스 및 테이블 생성

    ① CREATE문으로 데이터베이스 생성 후 선택
    CREATE DATABASE doitsql; USE doitsql;
    notion image
    ② CREATE문으로 테이블 생성
    기본 형식
    CREATE TABLE 테이블 이름 ( [열 이름1 테이터 유형], [열 이름2 테이터 유형], (...생략...) );
    실습
    CREATE TABLE doit_create_table( col_1 INT, col_2 VARCHAR(50), col_3 DATETIME );
    notion image

    2) DROP문으로 테이블 삭제

    DROP TABLE doit_create_table;
    notion image
     
    Share article
    Contents
    1. 데이터 조작 언어(DML, Data Manipulation Language)1️⃣ DML이란?2️⃣ DML의 대표적인 명령어3️⃣ 예시4️⃣ 실습2. 데이터 정의 언어(DDL, Data Definition Language)1️⃣ DDL이란?2️⃣ DDL의 대표적인 명령어3️⃣ 예시4️⃣ 실습

    DailyCoding

    RSS·Powered by Inblog