๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
โญ Personal_Study/Database

DML (Data Manipulation Language)

by ํฌ์ŠคํŠธ์‰์ดํฌ 2022. 10. 8.

DML

DML์ด๋ž€?

โœ” Data Manipulation
โœ” DML์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ ์กฐ์ž‘ (CRUD)
โœ” INSERT, SELECT, UPDATE, DELETE

Simple query

โœ” SELECT๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋‹จ์ผ ํ…Œ์ด๋ธ”์—์„œ ๋ฐ์ดํ„ฐ ์กฐํšŒํ•˜๊ธฐ

SELECT statement

โœ” 'Query data from a table'
โœ” ํŠน์ • ํ…Œ์ด๋ธ”์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ
โœ” ๋ฌธ๋ฒ• ๊ทœ์น™

  1. SELECT์ ˆ์—์„œ ์ปฌ๋Ÿผ ๋˜๋Š” ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„๋œ ์ปฌ๋Ÿผ ๋ชฉ๋ก์„ ์ง€์ •
  2. FROM ์ ˆ(clause)์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ฌ ํ…Œ์ด๋ธ”์„ ์ง€์ •

โœ” ๋‹ค์–‘ํ•œ ์ ˆ๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด ๋งค์šฐ ๋ณต์žก

์˜ˆ์‹œ

image

Sorting rows

โœ” ORDER BY์ ˆ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฟผ๋ฆฌ์˜ ๊ฒฐ๊ณผ๋ฅผ ์ •๋ ฌ
โœ” SELECT๋ฌธ์— ์ถ”๊ฐ€ํ•˜์—ฌ ๊ฒฐ๊ณผ๋ฅผ ์ •๋ ฌ
โœ” ORDER์ ˆ ๋‹ค์Œ์— 'ASC' ํ˜น์€ 'DESC' ํ‚ค์›Œ๋“œ ์‚ฌ์šฉ
โœ” ASC: ์˜ค๋ฆ„์ฐจ์ˆœ (๊ธฐ๋ณธ ๊ฐ’)
โœ” DESC: ๋‚ด๋ฆผ์ฐจ์ˆœ

์˜ˆ์‹œ

image

(์ฐธ๊ณ ) Sorting NULLs

โœ” SQLite๋Š” NULL์„ ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’์œผ๋กœ ์ทจ๊ธ‰

Filtering Data

โœ” ๋ฐ์ดํ„ฐ๋ฅผ ํ•„ํ„ฐ๋งํ•˜์—ฌ ์ค‘๋ณต ์ œ๊ฑฐ, ์กฐ๊ฑด ์„ค์ • ๋“ฑ ์ฟผ๋ฆฌ ์ œ์–ด
โœ” Clause: SELECT DISTINCT, WHERE, LIMIT
โœ” Operator: LIKE, IN, BETWEEN

SELECT DISTINCT clause

โœ” ์กฐํšŒ ๊ฒฐ๊ณผ์—์„œ ์ค‘๋ณต๋œ ํ–‰์„ ์ œ๊ฑฐ
โœ” DISTINCT ์ ˆ์€ SELECT์—์„œ ์„ ํƒ์ ์œผ๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
โœ” ๋ฌธ๋ฒ• ๊ทœ์น™

  1. DISTINCT ์ ˆ์€ SELECT ํ‚ค์›Œ๋“œ ๋ฐ”๋กœ ๋’ค์— ๋‚˜ํƒ€๋‚˜์•ผํ•จ
  2. DISTINCT ํ‚ค์›Œ๋“œ ๋’ค์— ์ปฌ๋Ÿผ ๋˜๋Š” ์ปฌ๋Ÿผ ๋ชฉ๋ก์„ ์ž‘์„ฑ

์˜ˆ์‹œ

image

(์ฐธ๊ณ ) NULL with DISTINCT

โœ” SQLite ๋Š” NULL ๊ฐ’์„ ์ค‘๋ณต์œผ๋กœ ๊ฐ„์ฃผ

WHERE clause

โœ” ์กฐํšŒ ์‹œ ํŠน์ • ๊ฒ€์ƒ‰ ์กฐ๊ฑด์„ ์ง€์ •
โœ” WHERE ์ ˆ์€ SELECT ๋ฌธ์—์„œ ์„ ํƒ์ ์œผ๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
โœ” SELECT๋ฌธ ์™ธ์—๋„ UPDATE ๋ฐ DELETE๋ฌธ์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

์˜ˆ์‹œ

image

SQLITE ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž

โœ” 1, 0 ๋˜๋Š” NULL ๊ฐ’์„ ๋ฐ˜ํ™˜ (Boolean ๋ฐ์ดํ„ฐ ํƒ€์ž… x)
โœ” ALL, AND, ANY, BETWEEN, IN, LIKE, NOT, OR

LIKE operator

โœ” ํŒจํ„ด ์ผ์น˜๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์กฐํšŒ
โœ” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„ x
โœ” ํŒจํ„ด ๊ตฌ์„ฑ์„ ์œ„ํ•œ ๋‘ ๊ฐœ์˜ ์™€์ผ๋“œ ์นด๋“œ

  1. %(percent): 0๊ฐœ ์ด์ƒ์˜ ๋ฌธ์ž๊ฐ€ ์˜ฌ ์ˆ˜ ์žˆ์Œ์„ ์˜๋ฏธ
  2. _(underscore): ๋‹จ์ผ(1๊ฐœ) ๋ฌธ์ž๊ฐ€ ์žˆ์Œ์„ ์˜๋ฏธ

์˜ˆ์‹œ

image

IN operator

โœ” ๊ฐ’์ด ๊ฐ’ ๋ชฉ๋ก ๊ฒฐ๊ณผ์— ์žˆ๋Š” ๊ฐ’๊ณผ ์ผ์น˜ํ•˜๋Š”์ง€ ํ™•์ธ
โœ” True / False ๋ฐ˜ํ™˜
โœ” ๋ถ€์ •: NOT IN ์—ฐ์‚ฐ์ž ์‚ฌ์šฉ

์˜ˆ์‹œ

image

BETWEEN operator

โœ” ๊ฐ’์ด ๊ฐ’ ๋ฒ”์œ„์— ์žˆ๋Š”์ง€ ํ…Œ์ŠคํŠธ
โœ” ๊ฐ’์ด ์ง€์ •๋œ ๋ฒ”์œ„์— ์žˆ์œผ๋ฉด True ๋ฐ˜ํ™˜
โœ” ๋ถ€์ •: NOT BETWEEN ์—ฐ์‚ฐ์ž ์‚ฌ์šฉ

์˜ˆ์‹œ

image

LIMIT operator

โœ” ์ฟผ๋ฆฌ์—์„œ ๋ฐ˜ํ™˜๋˜๋Š” ํ–‰ ์ˆ˜๋ฅผ ์ œํ•œ
โœ” SELECT๋ฌธ์—์„œ ์„ ํƒ์ ์œผ๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
โœ” row_count๋Š” ๋ฐ˜ํ™˜๋˜๋Š” ํ–‰ ์ˆ˜๋ฅผ ์ง€์ •ํ•˜๋Š” ์–‘์˜ ์ •์ˆ˜ ์˜๋ฏธ

์˜ˆ์‹œ

image

OFFSET operator

โœ” LIMIT์ ˆ๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•ด ํŠน์ • ์ง€์ •๋œ ์œ„์น˜์—์„œ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ ์กฐํšŒ ๊ฐ€๋Šฅ

์˜ˆ์‹œ

image

Grouping data

GROUP BY clause

โœ” ํŠน์ • ๊ทธ๋ฃน์œผ๋กœ ๋ฌถ์ธ ๊ฒฐ๊ณผ๋ฅผ ์ƒ์„ฑ
โœ” ์„ ํƒ๋œ ์ปฌ๋Ÿผ ๊ฐ’์„ ๊ธฐ์ค€์œผ๋กœ ๋ฐ์ดํ„ฐ(ํ–‰)๋“ค์˜ ๊ณตํ†ต ๊ฐ’์„ ๋ฌถ์–ด์„œ ๊ฒฐ๊ณผ๋กœ ๋‚˜ํƒ€๋ƒ„
โœ” SELECT๋ฌธ์—์„œ ์„ ํƒ์ ์œผ๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
โœ” SELECT๋ฌธ์—์„œ FROM ์ ˆ ๋’ค์— ์ž‘์„ฑ (WHERE์ ˆ์ด ํฌํ•จ๋œ ๊ฒฝ์šฐ WHERE์ ˆ ๋’ค์— ์ž‘์„ฑ)
โœ” aggregate function์„ ์ ์šฉํ•˜์—ฌ ๊ทธ๋ฃน์— ๋Œ€ํ•œ ์ถ”๊ฐ€์ ์ธ ์ •๋ณด ์ œ๊ณต ๊ฐ€๋Šฅ

Aggregate function

โœ” ๊ฐ ์ง‘ํ•ฉ์˜ ์ตœ๋Œ€๊ฐ’, ์ตœ์†Œ๊ฐ’, ํ‰๊ท , ํ•ฉ๊ณ„ ๋ฐ ๊ฐœ์ˆ˜ ๊ณ„์‚ฐ
โœ” ๊ฐ’ ์ง‘ํ•ฉ์— ๋Œ€ํ•œ ๊ณ„์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ๋‹จ์ผ ๊ฐ’์„ ๋ฐ˜ํ™˜
โœ” AVG(), COUNT(), MAX(), MIN(), SUM()
โœ” ์ปฌ๋Ÿผ์˜ ๋ฐ์ดํ„ฐ ํƒ€์ž…์ด ์ˆซ์ž(INTEGER)์ผ ๋•Œ๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

์˜ˆ์‹œ

image

Changing data

โœ” ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฝ์ž…, ์ˆ˜์ •, ์‚ญ์ œํ•˜๊ธฐ
โœ” INSERT, UPDATE, DELETE

INSERT statement

image

โœ” ์ƒˆ ํ–‰์„ ํ…Œ์ด๋ธ”์— ์‚ฝ์ž…
โœ” ๋ฌธ๋ฒ• ๊ทœ์น™

  1. ๋จผ์ € INSERT INTO ํ‚ค์›Œ๋“œ ๋’ค์— ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฝ์ž…ํ•  ํ…Œ์ด๋ธ”์˜ ์ด๋ฆ„ ์ง€์ •
  2. ํ…Œ์ด๋ธ” ์ด๋ฆ„ ๋’ค์— ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„๋œ ๋ชฉ๋ก ์ถ”๊ฐ€
  3. VALUES ํ‚ค์›Œ๋“œ ๋’ค์— ๊ตฌ๋ถ„๋œ ๊ฐ’ ๋ชฉ๋ก ์ถ”๊ฐ€(ํ…Œ์ด๋ธ”๊ณผ ์ˆœ์„œ ๋™์ผ)

์˜ˆ์‹œ

image

UPDATE statement

โœ” ํ…Œ์ด๋ธ”์— ์žˆ๋Š” ๊ธฐ์กด ํ–‰์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์—…๋ฐ์ดํŠธ ํ•œ๋‹ค.
โœ” ๋ฌธ๋ฒ• ๊ทœ์น™

  1. UPDATE ์ ˆ ์ดํ›„์— ์—…๋ฐ์ดํŠธํ•  ํ…Œ์ด๋ธ” ์ง€์ •
  2. SET ์ ˆ์—์„œ ํ…Œ์ด๋ธ”์˜ ๊ฐ ์นผ๋Ÿผ์— ๋Œ€ํ•ด ์ƒˆ ๊ฐ’์„ ์„ค์ •
  3. WHERE์ ˆ์˜ ์กฐ๊ฑด์„ ์‚ฌ์šฉํ•˜์—ฌ ์—…๋ฐ์ดํŠธํ•  ํ–‰์„ ์ง€์ •(๋ฏธ์„ ํƒ ์‹œ ๋ชจ๋“  ํ–‰์˜ ๋ฐ์ดํ„ฐ ์—…๋ฐ์ดํŠธ)
  4. ์„ ํƒ์ ์œผ๋กœ ORDER BY ๋ฐ LIMIT ์ ˆ์„ ์‚ฌ์šฉํ•˜์—ฌ ์—…๋ฐ์ดํŠธํ•  ํ–‰ ์ˆ˜ ์ง€์ • ๊ฐ€๋Šฅ

์˜ˆ์‹œ

image

DELETE statement

image

โœ” ํ…Œ์ด๋ธ”์—์„œ ํ–‰ ์ œ๊ฑฐ
โœ” ํ…Œ์ด๋ธ”์˜ ํ•œ ํ–‰, ์—ฌ๋Ÿฌ ํ–‰ ๋ฐ ๋ชจ๋“  ํ–‰ ์‚ญ์ œ ๊ฐ€๋Šฅ
โœ” ๋ฌธ๋ฒ• ๊ทœ์น™

  1. DELETE FROM ํ‚ค์›Œ๋“œ ๋’ค์— ํ–‰์„ ์ œ๊ฑฐํ•˜๋ ค๋Š” ํ…Œ์ด๋ธ” ์ด๋ฆ„ ์ง€์ •
  2. WHERE ์ ˆ์— ๊ฒ€์ƒ‰ ์กฐ๊ฑด์„ ์ถ”๊ฐ€ํ•˜์—ฌ ์ œ๊ฑฐํ•  ํ–‰ ์‹๋ณ„ (์ƒ๋ฝ ์‹œ ๋ชจ๋“  ํ–‰ ์‚ญ์ œ)
  3. ์„ ํƒ์ ์œผ๋กœ ORDER BY ๋ฐ LIMIT ์ ˆ ์‚ฌ์šฉํ•˜์—ฌ ์‚ญ์ œํ•  ํ–‰ ์ˆ˜ ์ง€์ • ๊ฐ€๋Šฅ

์˜ˆ์‹œ

image

'โญ 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

๋Œ“๊ธ€