DML
DML์ด๋?
โ Data Manipulation
โ DML์ ํตํด ๋ฐ์ดํฐ ์กฐ์ (CRUD)
โ INSERT, SELECT, UPDATE, DELETE
Simple query
โ SELECT๋ฌธ์ ์ฌ์ฉํ์ฌ ๊ฐ๋จํ๊ฒ ๋จ์ผ ํ ์ด๋ธ์์ ๋ฐ์ดํฐ ์กฐํํ๊ธฐ
SELECT statement
โ 'Query data from a table'
โ ํน์ ํ
์ด๋ธ์์ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ๊ธฐ ์ํด ์ฌ์ฉ
โ ๋ฌธ๋ฒ ๊ท์น
- SELECT์ ์์ ์ปฌ๋ผ ๋๋ ์ผํ๋ก ๊ตฌ๋ถ๋ ์ปฌ๋ผ ๋ชฉ๋ก์ ์ง์
- FROM ์ (clause)์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ฌ ํ ์ด๋ธ์ ์ง์
โ ๋ค์ํ ์ ๊ณผ ํจ๊ป ์ฌ์ฉํ ์ ์์ด ๋งค์ฐ ๋ณต์ก
์์

Sorting rows
โ ORDER BY์ ์ ์ฌ์ฉํ์ฌ ์ฟผ๋ฆฌ์ ๊ฒฐ๊ณผ๋ฅผ ์ ๋ ฌ
โ SELECT๋ฌธ์ ์ถ๊ฐํ์ฌ ๊ฒฐ๊ณผ๋ฅผ ์ ๋ ฌ
โ ORDER์ ๋ค์์ 'ASC' ํน์ 'DESC' ํค์๋ ์ฌ์ฉ
โ ASC: ์ค๋ฆ์ฐจ์ (๊ธฐ๋ณธ ๊ฐ)
โ DESC: ๋ด๋ฆผ์ฐจ์
์์

(์ฐธ๊ณ ) Sorting NULLs
โ SQLite๋ NULL์ ๊ฐ์ฅ ์์ ๊ฐ์ผ๋ก ์ทจ๊ธ
Filtering Data
โ ๋ฐ์ดํฐ๋ฅผ ํํฐ๋งํ์ฌ ์ค๋ณต ์ ๊ฑฐ, ์กฐ๊ฑด ์ค์ ๋ฑ ์ฟผ๋ฆฌ ์ ์ด
โ Clause: SELECT DISTINCT, WHERE, LIMIT
โ Operator: LIKE, IN, BETWEEN
SELECT DISTINCT clause
โ ์กฐํ ๊ฒฐ๊ณผ์์ ์ค๋ณต๋ ํ์ ์ ๊ฑฐ
โ DISTINCT ์ ์ SELECT์์ ์ ํ์ ์ผ๋ก ์ฌ์ฉ ๊ฐ๋ฅ
โ ๋ฌธ๋ฒ ๊ท์น
- DISTINCT ์ ์ SELECT ํค์๋ ๋ฐ๋ก ๋ค์ ๋ํ๋์ผํจ
- DISTINCT ํค์๋ ๋ค์ ์ปฌ๋ผ ๋๋ ์ปฌ๋ผ ๋ชฉ๋ก์ ์์ฑ
์์

(์ฐธ๊ณ ) NULL with DISTINCT
โ SQLite ๋ NULL ๊ฐ์ ์ค๋ณต์ผ๋ก ๊ฐ์ฃผ
WHERE clause
โ ์กฐํ ์ ํน์ ๊ฒ์ ์กฐ๊ฑด์ ์ง์
โ WHERE ์ ์ SELECT ๋ฌธ์์ ์ ํ์ ์ผ๋ก ์ฌ์ฉ ๊ฐ๋ฅ
โ SELECT๋ฌธ ์ธ์๋ UPDATE ๋ฐ DELETE๋ฌธ์์ ์ฌ์ฉ ๊ฐ๋ฅ
์์

SQLITE ๋ ผ๋ฆฌ ์ฐ์ฐ์
โ 1, 0 ๋๋ NULL ๊ฐ์ ๋ฐํ (Boolean ๋ฐ์ดํฐ ํ์
x)
โ ALL, AND, ANY, BETWEEN, IN, LIKE, NOT, OR
LIKE operator
โ ํจํด ์ผ์น๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์กฐํ
โ ๊ธฐ๋ณธ์ ์ผ๋ก ๋์๋ฌธ์ ๊ตฌ๋ถ x
โ ํจํด ๊ตฌ์ฑ์ ์ํ ๋ ๊ฐ์ ์์ผ๋ ์นด๋
- %(percent): 0๊ฐ ์ด์์ ๋ฌธ์๊ฐ ์ฌ ์ ์์์ ์๋ฏธ
- _(underscore): ๋จ์ผ(1๊ฐ) ๋ฌธ์๊ฐ ์์์ ์๋ฏธ
์์

IN operator
โ ๊ฐ์ด ๊ฐ ๋ชฉ๋ก ๊ฒฐ๊ณผ์ ์๋ ๊ฐ๊ณผ ์ผ์นํ๋์ง ํ์ธ
โ True / False ๋ฐํ
โ ๋ถ์ : NOT IN ์ฐ์ฐ์ ์ฌ์ฉ
์์

BETWEEN operator
โ ๊ฐ์ด ๊ฐ ๋ฒ์์ ์๋์ง ํ
์คํธ
โ ๊ฐ์ด ์ง์ ๋ ๋ฒ์์ ์์ผ๋ฉด True ๋ฐํ
โ ๋ถ์ : NOT BETWEEN ์ฐ์ฐ์ ์ฌ์ฉ
์์

LIMIT operator
โ ์ฟผ๋ฆฌ์์ ๋ฐํ๋๋ ํ ์๋ฅผ ์ ํ
โ SELECT๋ฌธ์์ ์ ํ์ ์ผ๋ก ์ฌ์ฉ ๊ฐ๋ฅ
โ row_count๋ ๋ฐํ๋๋ ํ ์๋ฅผ ์ง์ ํ๋ ์์ ์ ์ ์๋ฏธ
์์

OFFSET operator
โ LIMIT์ ๊ณผ ํจ๊ป ์ฌ์ฉํด ํน์ ์ง์ ๋ ์์น์์๋ถํฐ ๋ฐ์ดํฐ ์กฐํ ๊ฐ๋ฅ
์์

Grouping data
GROUP BY clause
โ ํน์ ๊ทธ๋ฃน์ผ๋ก ๋ฌถ์ธ ๊ฒฐ๊ณผ๋ฅผ ์์ฑ
โ ์ ํ๋ ์ปฌ๋ผ ๊ฐ์ ๊ธฐ์ค์ผ๋ก ๋ฐ์ดํฐ(ํ)๋ค์ ๊ณตํต ๊ฐ์ ๋ฌถ์ด์ ๊ฒฐ๊ณผ๋ก ๋ํ๋
โ SELECT๋ฌธ์์ ์ ํ์ ์ผ๋ก ์ฌ์ฉ ๊ฐ๋ฅ
โ SELECT๋ฌธ์์ FROM ์ ๋ค์ ์์ฑ (WHERE์ ์ด ํฌํจ๋ ๊ฒฝ์ฐ WHERE์ ๋ค์ ์์ฑ)
โ aggregate function์ ์ ์ฉํ์ฌ ๊ทธ๋ฃน์ ๋ํ ์ถ๊ฐ์ ์ธ ์ ๋ณด ์ ๊ณต ๊ฐ๋ฅ
Aggregate function
โ ๊ฐ ์งํฉ์ ์ต๋๊ฐ, ์ต์๊ฐ, ํ๊ท , ํฉ๊ณ ๋ฐ ๊ฐ์ ๊ณ์ฐ
โ ๊ฐ ์งํฉ์ ๋ํ ๊ณ์ฐ์ ์ํํ๊ณ ๋จ์ผ ๊ฐ์ ๋ฐํ
โ AVG(), COUNT(), MAX(), MIN(), SUM()
โ ์ปฌ๋ผ์ ๋ฐ์ดํฐ ํ์
์ด ์ซ์(INTEGER)์ผ ๋๋ง ์ฌ์ฉ ๊ฐ๋ฅ
์์

Changing data
โ ๋ฐ์ดํฐ๋ฅผ ์ฝ์
, ์์ , ์ญ์ ํ๊ธฐ
โ INSERT, UPDATE, DELETE
INSERT statement

โ ์ ํ์ ํ
์ด๋ธ์ ์ฝ์
โ ๋ฌธ๋ฒ ๊ท์น
- ๋จผ์ INSERT INTO ํค์๋ ๋ค์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ํ ํ ์ด๋ธ์ ์ด๋ฆ ์ง์
- ํ ์ด๋ธ ์ด๋ฆ ๋ค์ ์ผํ๋ก ๊ตฌ๋ถ๋ ๋ชฉ๋ก ์ถ๊ฐ
- VALUES ํค์๋ ๋ค์ ๊ตฌ๋ถ๋ ๊ฐ ๋ชฉ๋ก ์ถ๊ฐ(ํ ์ด๋ธ๊ณผ ์์ ๋์ผ)
์์

UPDATE statement
โ ํ
์ด๋ธ์ ์๋ ๊ธฐ์กด ํ์ ๋ฐ์ดํฐ๋ฅผ ์
๋ฐ์ดํธ ํ๋ค.
โ ๋ฌธ๋ฒ ๊ท์น
- UPDATE ์ ์ดํ์ ์ ๋ฐ์ดํธํ ํ ์ด๋ธ ์ง์
- SET ์ ์์ ํ ์ด๋ธ์ ๊ฐ ์นผ๋ผ์ ๋ํด ์ ๊ฐ์ ์ค์
- WHERE์ ์ ์กฐ๊ฑด์ ์ฌ์ฉํ์ฌ ์ ๋ฐ์ดํธํ ํ์ ์ง์ (๋ฏธ์ ํ ์ ๋ชจ๋ ํ์ ๋ฐ์ดํฐ ์ ๋ฐ์ดํธ)
- ์ ํ์ ์ผ๋ก ORDER BY ๋ฐ LIMIT ์ ์ ์ฌ์ฉํ์ฌ ์ ๋ฐ์ดํธํ ํ ์ ์ง์ ๊ฐ๋ฅ
์์

DELETE statement

โ ํ
์ด๋ธ์์ ํ ์ ๊ฑฐ
โ ํ
์ด๋ธ์ ํ ํ, ์ฌ๋ฌ ํ ๋ฐ ๋ชจ๋ ํ ์ญ์ ๊ฐ๋ฅ
โ ๋ฌธ๋ฒ ๊ท์น
- DELETE FROM ํค์๋ ๋ค์ ํ์ ์ ๊ฑฐํ๋ ค๋ ํ ์ด๋ธ ์ด๋ฆ ์ง์
- WHERE ์ ์ ๊ฒ์ ์กฐ๊ฑด์ ์ถ๊ฐํ์ฌ ์ ๊ฑฐํ ํ ์๋ณ (์๋ฝ ์ ๋ชจ๋ ํ ์ญ์ )
- ์ ํ์ ์ผ๋ก ORDER BY ๋ฐ LIMIT ์ ์ฌ์ฉํ์ฌ ์ญ์ ํ ํ ์ ์ง์ ๊ฐ๋ฅ
์์

'โญ Personal_Study > Database' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
N:1 Relationship (1) | 2022.10.08 |
---|---|
Relational Database (0) | 2022.10.08 |
DDL (Data Definition Language) (0) | 2022.10.07 |
SQL (0) | 2022.10.07 |
Database: Intro (2) | 2022.10.05 |
๋๊ธ