데이터베이스 내의 데이터를 조작하는 데 사용되는 SQL구문의 하나이다.
SELECT first_name, last_name, salary FROM employees;
INSERT INTO employees (employee_id, first_name, last_name, email, hire_date)
VALUES (1, 'John', 'Doe', 'john.doe@example.com', TO_DATE('2023-05-01', 'YYYY-MM-DD'));
UPDATE employees
SET salary = salary * 1.1
WHERE employee_id = 1;
DELETE FROM employees
WHERE employee_id = 1;
단일 행 삽입: 한 번에 하나의 행을 삽입
INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);
INSERT INTO employees (employee_id, first_name, last_name, email, hire_date)`
`VALUES (1, 'John', 'Doe', 'john.doe@example.com', TO_DATE('2023-05-01', 'YYYY-MM-DD'));
다중 행 삽입 : 한 번에 여러 행을 삽입
INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...), (value4, value5, value6, ...), (value7, value8, value9, ...), ...;
INSERT INTO employees (employee_id, first_name, last_name, email, hire_date)
VALUES (1, 'John', 'Doe', 'john.doe@example.com', TO_DATE('2023-05-01', 'YYYY-MM-DD')),
(2, 'Jane', 'Doe', 'jane.doe@example.com', TO_DATE('2023-05-02', 'YYYY-MM-DD')),
(3, 'Jim', 'Smith', 'jim.smith@example.com', TO_DATE('2023-05-03', 'YYYY-MM-DD'));
INSERT INTO SELECT : 다른 테이블에서 선택한 데이터를 기반으로 행을 삽입
INSERT INTO table_name1 (column1, column2, column3, ...)
SELECT column1, column2, column3, ...
FROM table_name2
WHERE condition;
INSERT INTO new_employees (employee_id, first_name, last_name, email, hire_date)
SELECT employee_id, first_name, last_name, email, hire_date
FROM employees
WHERE hire_date >= TO_DATE('2023-01-01', 'YYYY-MM-DD');
hire_date
가 '2023-01-01' 이후인 모든 직원의 데이터가 new_employees
테이블에 삽입 UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;
UPDATE employees
SET email = 'johndoe@example.com', hire_date = TO_DATE('2023-05-01', 'YYYY-MM-DD')
WHERE employee_id = 1;
employee_id
가 1인 행의 email
과 hire_date
값 수정UPDATE employees
SET salary = salary + 1000, last_name = CONCAT(last_name, ' (Updated)')
WHERE employee_id = 1;
employee_id
가 1인 행의 salary
값 1000만큼 증가, last_name
에 '(Updated)' 문자열 추가DELETE FROM table_name
WHERE condition;
DELETE FROM | TRUNCATE TABLE | |
---|---|---|
작동방식 | 모든 행 하나씩 삭제 로그 기록, 트리거 발생 | 한 번에 삭제 초기 상태로 재설정 |
성능 | 느림 | 빠름 |
사용 사례 | 특정 조건을 만족하는 행을 삭제할 때 | 테스트 데이터 삭제, 임시 테이블 데이터 초기화 |
SELECT column_name1, column_name2, ... FROM table_name;
SELECT DISTINCT column_name FROM table_name;
SELECT column_name AS alias_name FROM table_name;