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');
- 오류 발생 예시
- 데이터 유형 불일치
INSERT INTO doit_dml (col_1) VALUES ('문자 입력');
- 활용 방법
- 열 이름 생략
단, 열 이름을 생략하려면 테이블의 열 순서와 개수에 맞춰 데이터를 채워야 함
INSERT INTO doit_dml VALUES (2, '열 이름 생략', '2023-01-02');
INSERT INTO doit_dml (col_1, col_2) VALUES (3, 'col_3 값 생략');
INSERT INTO doit_dml (col_1, col_3, col_2) VALUES (4, '2023-01-03', '열순서 변경');
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');
2) UPDATE문으로 데이터 수정
기본 형식
WHERE절 생략 가능
- 하지만
WHERE절 조건 누락하면 테이블의 전체 데이터가 수정되기 때문에 항상 주의!
UPDATE 테이블 이름 SET [열1 = 값1, 열2 = 값2, ...]
WHERE [열 = 조건];실습
UPDATE doit_dml SET col_2 = '데이터 수정'
WHERE col_1 = 4;
WHERE절 조건 생략UPDATE doit_dml SET col_1 = col_1 + 10;
3) DELETE문으로 데이터 삭제
기본 형식
DELETE문에서는FROM이 반드시 필요
WHERE절의 조건이 누락되면 전체 데이터를 삭제하므로 항상 주의!
DELETE FROM 테이블 이름 WHERE [열 = 조건];실습
DELETE FROM doit_dml WHERE col_1 = 14;
WHERE절 생략(전체 데이터 삭제)SELECT * FROM doit_dml;
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;
②
CREATE문으로 테이블 생성기본 형식
CREATE TABLE 테이블 이름 (
[열 이름1 테이터 유형],
[열 이름2 테이터 유형],
(...생략...)
);실습
CREATE TABLE doit_create_table(
col_1 INT,
col_2 VARCHAR(50),
col_3 DATETIME
);
2) DROP문으로 테이블 삭제
DROP TABLE doit_create_table;
Share article