๐Ÿ€ SQL ๊ธฐ๋ณธ

์ ค๋กœยท2023๋…„ 9์›” 3์ผ
1

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค

๋ชฉ๋ก ๋ณด๊ธฐ
3/4
post-thumbnail

โ˜˜๏ธ ๊ด€๊ณ„ํ˜• DB ๊ฐœ์š”

  • DB : ๋ฐ์ดํ„ฐ๋ฅผ ์ผ์ •ํ•œ ํ˜•ํƒœ๋กœ ์ €์žฅํ•ด ๋†“์€ ๊ฒƒ, DBMS๋ฅผ ์ด์šฉํ•˜์—ฌ ํšจ์œจ์ ์ธ ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ์™€ ๋ฐ์ดํ„ฐ ์†์ƒ ๋ณต๊ตฌ ๊ฐ€๋Šฅ

    1. ๊ณ„์ธตํ˜• DB : ํŠธ๋ฆฌ ํ˜•ํƒœ์˜ ์ž๋ฃŒ๊ตฌ์กฐ์— ๋ฐ์ดํ„ฐ ์ €์žฅ, 1:N ๊ด€๊ณ„ ํ‘œํ˜„
    2. ๋„คํŠธ์›Œํฌํ˜• DB : ์˜ค๋„ˆ์™€ ๋ฉค๋ฒ„ ํ˜•ํƒœ๋กœ ๋ฐ์ดํ„ฐ ์ €์žฅ, M:N ๊ด€๊ณ„ ํ‘œํ˜„
    3. ๊ด€๊ณ„ํ˜• DB : ๋ฆด๋ ˆ์ด์…˜ ๋ฐ์ดํ„ฐ ์ €์žฅ, ์ง‘ํ•ฉ ์—ฐ์‚ฐ๊ณผ ๊ด€๊ณ„ ์—ฐ์‚ฐ ๊ฐ€๋Šฅ
  • ๊ด€๊ณ„ํ˜• DB : ์ •๊ทœํ™”๋ฅผ ํ†ตํ•˜์—ฌ ์ด์ƒํ˜„์ƒ ๋ฐ ์ค‘๋ณต ๋ฐ์ดํ„ฐ ์ œ๊ฑฐ, ๋™์‹œ์„ฑ ๊ด€๋ฆฌ์™€ ๋ณ‘ํ–‰ ์ œ์–ด๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ ๋™์‹œ ์กฐ์ž‘ ๊ฐ€๋Šฅ

  1. ์ง‘ํ•ฉ ์—ฐ์‚ฐ

    • ํ•ฉ์ง‘ํ•ฉ
    • ์ฐจ์ง‘ํ•ฉ
    • ๊ต์ง‘ํ•ฉ
    • ๊ณฑ์ง‘ํ•ฉ(๊ฐ ๋ฆด๋ ˆ์ด์…˜์— ์กด์žฌํ•˜๋Š” ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํ•ฉ)
  2. ๊ด€๊ณ„ ์—ฐ์‚ฐ

    • ์„ ํƒ ์—ฐ์‚ฐ : ์กฐ๊ฑด์— ๋งž๋Š” ํ–‰(ํŠœํ”Œ) ์กฐํšŒ
    • ํˆฌ์˜ ์—ฐ์‚ฐ : ์กฐ๊ฑด์— ๋งž๋Š” ์นผ๋Ÿผ(์†์„ฑ) ์กฐํšŒ
    • ๊ฒฐํ•ฉ ์—ฐ์‚ฐ : ๊ณตํ†ต ์†์„ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ƒˆ๋กœ์šด ๋ฆด๋ ˆ์ด์…˜ ์ƒ์„ฑ
    • ๋‚˜๋ˆ„๊ธฐ ์—ฐ์‚ฐ : ๊ณตํ†ต ์š”์†Œ๋ฅผ ์ถ”์ถœํ•˜๊ณ  ๋ถ„๋ชจ ๋ฆด๋ ˆ์ด์…˜์˜ ์†์„ฑ์„ ์‚ญ์ œํ•œ ํ›„ ์ค‘๋ณต๋œ ํ–‰ ์ œ๊ฑฐ
  3. SQL : RDB์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์–ธ์–ด, ๋ฐ์ดํ„ฐ ์กฐํšŒ ๋ฐ ์‹ ๊ทœ ๋ฐ์ดํ„ฐ ์ž…๋ ฅ/์ˆ˜์ •/์‚ญ์ œ ๊ธฐ๋Šฅ ์ œ๊ณต

  • ์ข…๋ฅ˜ :
    • DML : ๋ฐ์ดํ„ฐ ์กฐ์ž‘์–ด (SELECT, INSERT, UPDATE, DELETE)
    • DDL : ๋ฐ์ดํ„ฐ ์ •์˜์–ด (CREATE, ALTER, DROP)
    • DCL : ๋ฐ์ดํ„ฐ ์ œ์–ด์–ด (GRANT, REVOKE)
    • TCL : ํŠธ๋žœ์žญ์…˜ ์ œ์–ด์–ด (COMMIT, ROLLBACK)

โ˜˜๏ธ DDL

1. ๋ฐ์ดํ„ฐ ํƒ€์ž…

  • CHAR(L) : ๊ณ ์ • ๊ธธ์ด ๋ฌธ์ž์—ด, ํ• ๋‹น๋œ ๋ณ€์ˆ˜ ๊ฐ’์˜ ๊ธธ์ด๊ฐ€ L ์ดํ•˜์ผ ๋•Œ ์ฐจ์ด๋Š” ๊ณต๋ฐฑ์œผ๋กœ ์ฑ„์›Œ์ง

  • VARCHAR(L) : ๊ฐ€๋ณ€ ๊ธธ์ด ๋ฌธ์ž์—ด, ํ• ๋‹น๋˜๋Š” ๋ณ€์ˆ˜ ๊ฐ’์˜ ๊ธธ์ด์˜ ์ตœ๋Œ€๊ฐ’์ด L. ๋ฌธ์ž์—ด์€ ๊ฐ€๋Šฅํ•œ ์ตœ๋Œ€ ๊ธธ์ด๋กœ ์„ค์ •

  • NUMBER(L, D) : ์ˆซ์žํ˜• (L์€ ์ „์ฒด ์ž๋ฆฌ ์ˆ˜, D๋Š” ์†Œ์ˆ˜์  ์ž๋ฆฌ ์ˆ˜)

  • DATE, DATETIME : ๋‚ ์งœํ˜•, ๋ฐ์ดํ„ฐ ํฌ๊ธฐ ์ง€์ •์ด ํ•„์š”ํ•˜์ง€ ์•Š์Œ

2. CREATE TABLE

  • ํ…Œ์ด๋ธ” ๋ฐ ์นผ๋Ÿผ ๋ช…๋ช… ๊ทœ์น™

    ยฐ ์•ŒํŒŒ๋ฒณ, ์ˆซ์ž, ์–ธ๋”๋ฐ”, ๋‹ฌ๋Ÿฌ, ์ƒต ์‚ฌ์šฉ
    ยฐ ๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š์Œ
    ยฐ ํ…Œ์ด๋ธ”๋ช…์€ ๋‹จ์ˆ˜ํ˜• ๊ถŒ๊ณ 

  • DESCRIBE ํ…Œ์ด๋ธ”๋ช…, sq_help 'dbo.ํ…Œ์ด๋ธ”๋ช…' : ํ…Œ์ด๋ธ” ๊ตฌ์กฐ ํ™•์ธ

  • ์ œ์•ฝ์กฐ๊ฑด :

    ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ ์œ ์ง€๊ฐ€ ๋ชฉ์ , ๋ณต์ œ ํ…Œ์ด๋ธ”์—๋Š” ์ œ์•ฝ์กฐ๊ฑด ์ค‘ NOT NULL๋งŒ ์ ์šฉ

    ยฐ PRIMARY KEY : ํ…Œ์ด๋ธ” ๋‹น ํ•˜๋‚˜์˜ ๊ธฐ๋ณธํ‚ค๋งŒ ์ •์˜ ๊ฐ€๋Šฅ, ๊ธฐ๋ณธํ‚ค ์ƒ์„ฑ ์‹œ DBMS๊ฐ€ ์ž๋™์œผ๋กœ ์ธ๋ฑ์Šค๋ฅผ ์ƒ์„ฑํ•จ, NULL ๋ถˆ๊ฐ€

    ยฐ FOREIGN KEY : ๋‹ค๋ฅธํ…Œ์ด๋ธ”์˜ ๊ธฐ๋ณธํ‚ค๋ฅผ ์™ธ๋ž˜ํ‚ค๋กœ ์ง€์ •, ์ฐธ์กฐ ๋ฌด๊ฒฐ์„ฑ ์ œ์•ฝ ์กฐ๊ฑด

      ALTER TABLE ํ…Œ์ด๋ธ”๋ช… ADD CONSTRAINT ์ปฌ๋Ÿผ๋ช… FOREIGN KEY (์ปฌ๋Ÿผ๋ช…) REFFERENCES ํ…Œ์ด๋ธ”๋ช…(์ปฌ๋Ÿผ๋ช…)      

    ยฐ UNIQUE KEY : ํ–‰ ๋ฐ์ดํ„ฐ๋ฅผ ์‹๋ณ„ํ•˜๊ธฐ ์œ„ํ•ด ์ƒ์„ฑํ•จ, NULL ๊ฐ€๋Šฅ
    ยฐ DEFAULT : DEFAULT ๊ฐ’์œผ๋กœ ๊ธฐ๋ณธ ๊ฐ’ ์„ค์ •

    ยฐ NULL, NOT NULL : NULL(์•„์ง ์ •์˜๋˜์ง€ ์•Š์€ ๊ฐ’ ๋˜๋Š” ํ˜„์žฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅํ•˜์ง€ ๋ชปํ•˜๋Š” ๊ฐ’), NOT NULL(NULL ํ—ˆ์šฉ X)

    ยฐ CHECK : ์ž…๋ ฅ๊ฐ’์˜ ์ข…๋ฅ˜ ๋ฐ ๋ฒ”์œ„ ์ œํ•œ

3. ALTER TABLE

  • ์นผ๋Ÿผ ์ถ”๊ฐ€
ALTER TABLE ํ…Œ์ด๋ธ”๋ช… ADD(์ปฌ๋Ÿผ๋ช… ๋ฐ์ดํ„ฐํƒ€์ž…)
  • ์นผ๋Ÿผ ์‚ญ์ œ
ALTER TABLE ํ…Œ์ด๋ธ”๋ช… DROP COLUM
  • ์นผ๋Ÿผ ์„ค์ • ๋ณ€๊ฒฝ
ALTER TABLE ํ…Œ์ด๋ธ”๋ช… MODIF(์ปฌ๋Ÿผ๋ช… ๋ฐ์ดํ„ฐํƒ€์ž… ์ œ์•ฝ์กฐ๊ฑด)
  • ์ œ์•ฝ์กฐ๊ฑด ์ถ”๊ฐ€
ALTER TABLE ํ…Œ์ด๋ธ”๋ช… ADD CONSTRAINT ์ œ์•ฝ์กฐ๊ฑด
  • ์ œ์•ฝ์กฐ๊ฑด ์ œ๊ฑฐ
ALTER TABLE ํ…Œ์ด๋ธ”๋ช… DROP CONSTRAINT ์ œ์•ฝ์กฐ๊ฑด 

4. RENAME TABLE

ALTER TABLE ํ…Œ์ด๋ธ”๋ช… RENAME TO ํ…Œ์ด๋ธ”๋ช…

5. DROP TABLE

  • ํ…Œ์ด๋ธ”์˜ ๋ฐ์ดํ„ฐ์™€ ๊ตฌ์กฐ ์‚ญ์ œ, ๋ณต๊ตฌ ๋ถˆ๊ฐ€

  • CASCADE CONSTRAINT ์˜ต์…˜์œผ๋กœ ๊ด€๋ จ ํ…Œ์ด๋ธ”์˜ ์ฐธ์กฐ ์ œ์•ฝ์กฐ๊ฑด๋„ ์‚ญ์ œํ•˜์—ฌ ์ฐธ์กฐ ๋ฌด๊ฒฐ์„ฑ์„ ์ค€์ˆ˜ ํ•  ์ˆ˜ ์žˆ๋‹ค.

6. TRUNCATE TABLE

  • ํ…Œ์ด๋ธ”์˜ ์ „์ฒด ๋ฐ์ดํ„ฐ ์‚ญ์ œ (DROP TABLE์€ ํ…Œ์ด๋ธ” ์ž์ฒด๋ฅผ ์ œ๊ฑฐ)

  • ๋กœ๊ทธ๋ฅผ ๊ธฐ๋กํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ROLLBACK ๋ถˆ๊ฐ€


โ˜˜๏ธ DML

1. INSERT : ๋ฐ์ดํ„ฐ ์ž…๋ ฅ

INSERT INTO ํ…Œ์ด๋ธ”๋ช…(์ปฌ๋Ÿผ๋ช…, ...) VALUES (ํ•„๋“œ๊ฐ’, ...)
INSERT INTO ํ…Œ์ด๋ธ”๋ช… VALUES (ํ•„๋“œ๊ฐ’, ...)

2. UPDATE : ๋ฐ์ดํ„ฐ ์ˆ˜์ •

UPDATE ํ…Œ์ด๋ธ”๋ช… SET ์ปฌ๋Ÿผ๋ช… = ํ•„๋“œ๊ฐ’ 

3. DELETE : ๋ฐ์ดํ„ฐ ์‚ญ์ œ

DELETE๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•ด๋„ ํ…Œ์ด๋ธ” ์šฉ๋Ÿ‰์€ ์ดˆ๊ธฐํ™” ๋˜์ง€ ์•Š๋Š”๋‹ค.(TRUNCATE๋กœ ์‚ญ์ œํ•˜๋ฉด ์ดˆ๊ธฐํ™”๋จ)

DELETE FROM ํ…Œ์ด๋ธ”๋ช… WHERE ์กฐ๊ฑด์ ˆ

4. SELECT : ๋ฐ์ดํ„ฐ ์กฐํšŒ

  • ์ปฌ๋Ÿผ ๋ณ„ ๋ฐ์ดํ„ฐ ์„ ํƒ
SELECT ์ปฌ๋Ÿผ๋ช… FROM ํ…Œ์ด๋ธ”๋ช…
  • ๋ฐ์ดํ„ฐ ์ค‘๋ณต ์—†์ด ์„ ํƒ
SELECT DISTINCT ์ปค๋Ÿผ๋ช… FROM ํ…Œ์ด๋ธ”๋ช… 
  • ์ „์ฒด ์ปฌ๋Ÿผ์˜ ๋ฐ์ดํ„ฐ ์„ ํƒ
SELECT * FROM ํ…Œ์ด๋ธ”๋ช…
  • AS (ALIAS) : ์ถœ๋ ฅ ๋˜๋Š” ์ปฌ๋Ÿผ๋ช… ์„ค์ •, ์ฟผ๋ฆฌ ๋‚ด์—์„œ ์‚ฌ์šฉํ•  ํ…Œ์ด๋ธ”๋ช… ์„ค์ •, ์ปฌ๋Ÿผ๋ช…์ด ์ค‘๋ณต๋  ๊ฒฝ์šฐ SELECT์ ˆ์—์„œ ALIAS ํ•„์ˆ˜
SELECT ์ปฌ๋Ÿผ๋ช… AS ๋ณ„๋ช… FROM ํ…Œ์ด๋ธ”๋ช…

โ˜˜๏ธ TCL

ํŠธ๋žœ์žญ์…˜

DB์˜ ๋…ผ๋ฆฌ์  ์—ฐ์‚ฐ ๋‹จ์œ„, ํ•˜๋‚˜ ์ด์ƒ์˜ SQL๋ฌธ์„ ํฌํ•จ

  • ํŠน์„ฑ ACID

    ยฐ ์›์ž์„ฑ(Atomicity) : ์ „๋ถ€ ์‹คํ–‰๋˜๊ฑฐ๋‚˜ ์ „ํ˜€ ์‹คํ–‰๋˜์ง€ ์•Š์Œ
    ยฐ ์ผ๊ด€์„ฑ(Consistency) : ํŠธ๋žœ์žญ์…˜์œผ๋กœ ์ธํ•œ DB ์ƒํƒœ์˜ ๋ชจ์ˆœ์ด ์—†์Œ
    ยฐ ๊ณ ๋ฆฝ์„ฑ(Isoliaton) : ๋ถ€๋ถ„์ ์ธ ์‹คํ–‰ ๊ฒฐ๊ณผ์— ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์ด ์ ‘๊ทผํ•  ์ˆ˜ ์—†์Œ
    ยฐ ์˜์†์„ฑ(Durability) : ํŠธ๋žœ์žญ์…˜์˜ ๊ฒฐ๊ณผ๋Š” ์˜๊ตฌ์ ์œผ๋กœ ์ €์žฅ๋จ

TCL

๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ ๋ณด์žฅ์„ ๋ชฉ์ ์œผ๋กœ ํ•จ, ์˜๊ตฌ ๋ณ€๊ฒฝ์ „ ํ™•์ธ๊ณผ ์—ฐ๊ด€ ์ž‘์—… ๋™์‹œ ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅ

  • Oracle์€ SQL๋ฌธ์žฅ์„ ์‹คํ–‰ํ•˜๋ฉด ํŠธ๋žœ์žญ์…˜์ด ์‹œ์ž‘๋˜๊ณ  TCL์„ ์‹คํ–‰ํ•˜๋ฉด ํŠธ๋žœ์žญ์…˜์ด ์ข…๋ฃŒ๋จ

  • DDL์„ ์‹คํ–‰ํ•˜๋ฉด ์ž๋™ ์ปค๋ฐ‹

  • DB๋ฅผ ์ •์ƒ์ ์œผ๋กœ ์ข…๋ฃŒํ•˜๋ฉด ์ž๋™ ์ปค๋ฐ‹, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋“ฑ์˜ ์ด์ƒ์œผ๋กœ DB ์ ‘์†์ด ๋‹จ์ ˆ๋˜๋ฉด ์ž๋™ ๋กค๋ฐฑ

COMMIT

๋ฐ์ดํ„ฐ๋ฅผ DB์— ์˜๊ตฌ์ ์œผ๋กœ ๋ฐ˜์˜ํ•˜๋Š” ๋ช…๋ น์–ด, ์ปค๋ฐ‹ ์‹œ ํŠธ๋žœ์žญ์…˜์ด ์™„๋ฃŒ๋˜์–ด LOCKING์ด ํ•ด์ œ๋จ, SQL SERVER ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์ž๋™ ์ปค๋ฐ‹

  • COMMIT ์ „

    ยฐ ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ์ด ๋ฉ”๋ชจ๋ฆฌ ๋ฒ„ํผ์—๋งŒ ์˜ํ–ฅ์„ ๋ฐ›์•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ณต๊ตฌ ๊ฐ€๋Šฅ.
    ยฐ ์‚ฌ์šฉ์ž๋Š” SELECT์ ˆ๋กœ ๊ฒฐ๊ณผ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์œผ๋‚˜ ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๋Š” ํ˜„์žฌ ๊ฒฐ๊ณผ๋ฅผ ๋ณผ ์ˆ˜ ์—†์Œ.
    ยฐ ๋ณ€๊ฒฝ๋œ ํ–‰์— LOCKING์ด ์„ค์ •๋˜์–ด ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๊ฐ€ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†์Œ.

  • COMMIT ํ›„

    ยฐ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด DB์— ๋ฐ˜์˜๋˜๊ณ  ์ด์ „ ๋ฐ์ดํ„ฐ๋Š” ๋ณต๊ตฌ ๋ถˆ๊ฐ€
    ยฐ ๋ชจ๋“  ์‚ฌ์šฉ์ž๊ฐ€ ๊ฒฐ๊ณผ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Œ
    ยฐ LOCKING์ด ํ•ด์ œ๋˜์–ด ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๊ฐ€ ํ–‰์„ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ์Œ

ROLLBACK

ํŠธ๋žœ์žญ์…˜ ์‹œ์ž‘ ์ด์ „์˜ ์ƒํƒœ๋กœ ๋˜๋Œ๋ฆฌ๋Š” ๋ช…๋ น์–ด, COMMIT ์ด์ „ ์ƒํƒœ๋กœ ๋Œ๋ ค์คŒ, ROLLBACK ์‹œ LOCKING์ด ํ•ด์ œ ๋จ

  • SAVE POINT : ํŠธ๋žœ์žญ์…˜ ์ผ๋ถ€๋งŒ ๋กค๋ฐธ ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ค‘๊ฐ„์ƒํƒœ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ช…๋ น์–ด, ๋™์ผํ•œ ์ €์žฅ์ ๋ช…์ด ์žˆ์œผ๋ฉด ๋‚˜์ค‘์— ์ €์žฅ์ ์ด ์œ ํšจํ•จ
ROLLBACK TO ์ €์žฅ์ ๋ช…
  • SQL SERVER์—์„œ๋Š” 'BEGIN TRAN'์œผ๋กœ ๋ช…์‹œํ•ด์•ผ ๊ฐ€๋Šฅํ•จ

โ˜˜๏ธ WHERE ์ ˆ

1. ์—ฐ์‚ฐ์ž

์ข…๋ฅ˜:

  • ๋น„๊ต ์—ฐ์‚ฐ์ž : ๋น„๊ต ๋Œ€์ƒ ๋ฐ์ดํ„ฐ ํƒ€์ž…์— ๋”ฐ๋ผ ์ž๋™์œผ๋กœ ํ˜• ๋ณ€ํ™˜๋˜๋Š” ๊ฒฝ์šฐ๋„ ์žˆ์Œ

    	> =, > , >=, <, <=
  • ๋ถ€์ • ๋น„๊ต ์—ฐ์‚ฐ์ž : NOT ์ปฌ๋Ÿผ๋ช… ๋น„๊ต์—ฐ์‚ฐ์ž์™€ ๋™์ผ

    	> !=, ^=, <> 
  • SQL ์—ฐ์‚ฐ์ž ์ž…๋ ฅ๊ฐ’์„ ๋น„๊ตํ•˜์—ฌ ๋…ผ๋ฆฌ๊ฐ’ ์ถœ๋ ฅ

    ยฐ IN(๋ฆฌ์ŠคํŠธ) : ๋ฆฌ์ŠคํŠธ ๋‚ด์˜ ๊ฐ’

    ยฐ LIKE '๋ฌธ์ž์—ด' : ๋ฌธ์ž์—ด์˜ ํ˜•ํƒœ์™€ ์ผ์น˜ํ•˜๋Š” ๊ฐ’
    -> ์™€์ผ๋“œ ์นด๋“œ : % ๋Š” 0๊ฐœ์ด์ƒ์˜ ๋ฌธ์ž, _ ๋Š” 1๊ฐœ์˜ ๋‹จ์ผ ๋ฌธ์ž

    ยฐ IS NULL : NULL์€ ๋“ฑํ˜ธ๋กœ ํŒ๋‹จ ๋ถˆ๊ฐ€

    ยฐ NOT BERWEEN 'A' AND 'B', NOT IN (๋ฆฌ์ŠคํŠธ), IS NOT NULL

์šฐ์„ ์ˆœ์œ„ : ๋ถ€์ • ์—ฐ์‚ฐ์ž > ๋น„๊ต ์—ฐ์‚ฐ์ž > ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž

  • () ๊ด„ํ˜ธ
  • NOT
  • ๋น„๊ต ์—ฐ์‚ฐ์ž ๋ฐ SQL ์—ฐ์‚ฐ์ž
  • AND
  • OR

๋ฌธ์ž์—ด ๋น„๊ต๋ฐฉ๋ฒ•

  • CHAR vs CHAR :

์ฒซ ์„œ๋กœ ๋‹ค๋ฅธ ๋ฌธ์ž์—ด ๊ฐ’์œผ๋กœ ๋น„๊ต(๋’ค ์ˆœ์„œ๊ฐ€ ๋” ํฐ ๊ฐ’), ๊ธธ์ด๊ฐ€ ๋‹ค๋ฅผ ๋•Œ ๊ณต๋ฐฑ์„ ์ถ”๊ฐ€ํ•˜์—ฌ ๊ธธ์ด ๋งž์ถค(๊ณต๋ฐฑ์ˆ˜๋งŒ ๋‹ค๋ฅด๋ฉด ๊ฐ™์€ ๊ฐ’)

  • CHAR VS VARCHAR :

์ฒซ ์„œ๋กœ ๋‹ค๋ฅธ ๋ฌธ์ž์—ด ๊ฐ’์œผ๋กœ ๋น„๊ต, ๊ธธ์ด๊ฐ€ ๋‹ค๋ฅด๋ฉด ๊ธธ์ด๊ฐ€ ๊ธด ๊ฐ’์ด ํฌ๋‹ค๊ณ  ํŒ๋‹จ, VARCHAR์˜ ๊ณต๋ฐฑ๋„ ๋ฌธ์ž๋กœ ํŒ๋‹จ, TRIM ํ•จ์ˆ˜๋กœ VARCHAR์˜ ๊ณต๋ฐฑ ์ œ๊ฑฐํ•˜๊ณ  ํŒ๋‹จํ•  ์ˆ˜ ์žˆ์Œ

  • CHAR VS ์ƒ์ˆ˜ :

์ƒ์ˆ˜๋ฅผ ๋ณ€์ˆ˜ ํƒ€์ž…์œผ๋กœ ๋ฐ”๊ฟ” ๋น„๊ต

2. ๋ถ€๋ถ„ ๋ฒ”์œ„ ์ฒ˜๋ฆฌ

  • ROWNUM : SQL ์ฒ˜๋ฆฌ ๊ฒฐ๊ณผ ์ง‘ํ•ฉ์˜ ๊ฐ ํ–‰์— ์ž„์‹œ๋กœ ๋ถ€์—ฌ๋˜๋Š” ๋ฒˆํ˜ธ, ์กฐ๊ฑด์ ˆ ๋‚ด์—์„œ ํ–‰์˜ ๊ฐœ์ˆ˜๋ฅผ ์ œํ•œํ•˜๋Š” ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉํ•จ

  • TOP : ์ถœ๋ ฅ ํ–‰์˜ ์ˆ˜ ์ œํ•œ ํ•จ์ˆ˜, 'TOP (N)'๋กœ N๊ฐœ ํ–‰ ์ถœ๋ ฅ, ๊ฐœ์ˆ˜ ๋Œ€์‹  ๋น„์œจ๋กœ๋„ ์ œํ•œ ๊ฐ€๋Šฅ

    • ORDER BY์ ˆ์ด ์—†์œผ๋ฉด ROWNUM๊ณผ TOP์˜ ๊ธฐ๋Šฅ์ด ๊ฐ™์Œ

โ˜˜๏ธ ํ•จ์ˆ˜

1. ๋‹จ์ผ ํ–‰ ํ•จ์ˆ˜

SELECT์ ˆ, WHERE์ ˆ, ORDER BY ์ ˆ์— ์‚ฌ์šฉ ๊ฐ€๋Šฅ, ๊ฐ ํ–‰์— ๊ฐœ๋ณ„์ ์œผ๋กœ ์ž‘์šฉ, ์—ฌ๋Ÿฌ ์ธ์ž๋ฅผ ์ž…๋ ฅํ•ด๋„ ๋‹จ ํ•˜๋‚˜์˜ ๊ฒฐ๊ณผ๋งŒ ์ถœ๋ ฅ

  • ๋ฌธ์žํ˜• ํ•จ์ˆ˜ : ๋ฌธ์ž์—ด ์ž…๋ ฅ ์‹œ ๋ฌธ์ž์—ด์ด๋‚˜ ์ˆซ์ž ๋ฐ˜ํ™˜

    ยฐ LOWER, UPPER, LENGTH

    ยฐ CONCAT : ๋ฌธ์ž์—ด ๊ฒฐํ•ฉ

    ยฐ SUBSTR : ๋ฌธ์ž์—ด ๋ถ€๋ถ„ ์ถ”์ถœ

    ยฐ LTRIM, RTRIM, TRIM : ์™ผ์ชฝ ๊ณต๋ฐฑ ์ œ๊ฑฐ, ์˜ค๋ฅธ์ชฝ ๊ณต๋ฐฑ ์ œ๊ฑฐ, ์–‘์ชฝ ๊ณต๋ฐฑ ์ œ๊ฑฐ

    ยฐ ASCII : ์•„์Šคํ‚ค ์ฝ”๋“œ ๊ฐ’ ์ถœ๋ ฅ

  • ์ˆซ์žํ˜• ํ•จ์ˆ˜

    ยฐ ABS, SIGN : ์ ˆ๋Œ€๊ฐ’, ๋ถ€ํ˜ธ (1, 0, -1 ์ค‘ ์ถœ๋ ฅ)

    ยฐ MOD : ๋‚˜๋จธ์ง€, ์—ฐ์‚ฐ์ž %๋กœ ๋Œ€์ฒด ๊ฐ€๋Šฅ

    ยฐ ROUND, CEIL, FLOOR : ๋ฐ˜์˜ฌ๋ฆผ, ์˜ฌ๋ฆผ, ๋ฒ„๋ฆผ
    ํ•จ์ˆ˜(E,N)์œผ๋กœ ์†Œ์ˆ˜์  ์ดํ›„ N๋ฒˆ์งธ ์ž๋ฆฌ๊นŒ์ง€ ์ถœ๋ ฅ

    ยฐ TRUNC : ์ˆซ์žํ˜• ๋ถ€๋ถ„ ์ถ”์ถœ

  • ๋‚ ์งœํ˜• ํ•จ์ˆ˜

    ยฐ SYSDATE : ํ˜„์žฌ ์‹œ๊ฐ ์ถœ๋ ฅ (๋…„, ์›”, ์ผ, ์‹œ, ๋ถ„, ์ดˆ)

    ยฐ EXTRACT : ๋‚ ์งœํ˜• ๋ถ€๋ถ„ ์ถ”์ถœ

    ยฐ ยฑ์ˆซ์ž, ยฑ์ˆซ์ž/24 : ์ผ์ž ์—ฐ์‚ฐ, ์‹œ๊ฐ„ ์—ฐ์‚ฐ

    ยฐ NEXT_DAY : ์ง€์ •๋œ ์š”์ผ ์ฒซ ๋‚ ์งœ ์ถœ๋ ฅ

  • ๋ณ€ํ™˜ํ˜• ํ•จ์ˆ˜ : ๋ฐ์ดํ„ฐ ํƒ€์ž… ๋ณ€ํ™˜, ๋ช…์‹œ์  ํ˜• ๋ณ€ํ™˜ ๋ฐฉ์‹

    ยฐ TO_NUMBER, TO_CHAR, TO_DATe : ๋ฌธ์ž์—ด์„ ์ˆซ์ž๋กœ, ์ˆซ์ž๋‚˜ ๋‚ ์งœ๋ฅผ ๋ฌธ์ž์—ด๋กœ, ๋ฌธ์ž์—ด์„ ๋‚ ์งœ๋กœ

    ยฐ CAST, CONVERT

  • NULL ๊ด€๋ จ ํ•จ์ˆ˜

    ยฐ NVL (์ปฌ๋Ÿผ, ๊ฐ’) : NULL ๊ฐ’ ๋ณ€ํ™˜

    ยฐ NVL2(์ปฌ๋Ÿฌ๋ฏ€ ๊ฐ‘์Šค ๊ฐ’) : NULL์ด๋ฉด ์•ž์˜ ๊ฐ’ ์•„๋‹ˆ๋ฉด ๋’ค์˜ ๊ฐ’ ์ถœ๋ ฅ

    ยฐ NULLIF(๊ฐ’, ๊ฐ’, ...) : ๊ฐ™์œผ๋ฉด NULL ๋‹ค๋ฅด๋ฉด ์ฒซ ๊ฐ’ ์ถœ๋ ฅ

    ยฐ COALESCE(๊ฐ’, ๊ฐ’, ...) : NULL์ด ์•„๋‹Œ ์ฒซ ๊ฐ’ ์ถœ๋ ฅ

    ยฐ ISNULL(์ปฌ๋Ÿผ, ๊ฐ’) : NULL์ด๋ฉด ๊ฐ’์œผ๋กœ ๋Œ€์น˜ ์•„๋‹ˆ๋ฉด ์ปฌ๋Ÿผ ๊ฐ’ ์ถœ๋ ฅ

2. ๋ฐ์ดํ„ฐ ๋ณ€ํ™˜

  • ๋ช…์‹œ์  ํ˜• ๋ณ€ํ™˜ : ๋ณ€ํ™˜ํ˜• ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ ํƒ€์ž… ๋ณ€ํ™˜

  • ์•”์‹œ์  ํ˜• ๋ณ€ํ™˜ : DBMS๊ฐ€ ์ž๋™์œผ๋กœ ๋ฐ์ดํ„ฐ ํƒ€์ž… ๋ณ€ํ™˜

**3. ์กฐ๊ฑด๋ฌธ (IF - THEN - ELSE)

CASE WHEN ์กฐ๊ฑด์ ˆ1 THEN ์ถœ๋ ฅ๊ฐ’ 1 ... ELSE ๊ธฐ๋ณธ๊ฐ’ END

- ELSE ์ƒ๋žต ์‹œ NULL ์ถœ๋ ฅ 
DECODE(์ปฌ๋Ÿผ, ๊ธฐ์ค€๊ฐ’1, ์ถœ๋ ฅ๊ฐ’1, ..., ๊ธฐ๋ณธ๊ฐ’) 

- Oracle ํ•จ์ˆ˜, ๊ธฐ์ค€๊ฐ’ n ์ด๋ฉด ์ถœ๋ ฅ๊ฐ’ n ์ถœ๋ ฅ 

โ˜˜๏ธ GROUP BY, HAVING ์ ˆ

  1. ์ง‘๊ณ„ ํ•จ์ˆ˜

๊ทธ๋ฃน๋ณ„ ๊ฒฐ๊ณผ ์ถœ๋ ฅ, ๋‹ค์ค‘ ํ–‰ ํ•จ์ˆ˜ ์ค‘ ํ•˜๋‚˜, GROUP BY์ ˆ์ด ์—†์œผ๋ฉด ๊ทธ๋ฃนํ•‘ ๋Œ€์ƒ์ด ์กด์žฌํ•˜์ง€ ์•Š์•„ ์—๋Ÿฌ ๋ฐœ์ƒ, WHERE ์ ˆ์— ์‚ฌ์šฉ ๋ถˆ๊ฐ€, ๊ณต์ง‘ํ•ฉ์—์„œ๋„ ์—ฐ์‚ฐ ์ˆ˜ํ–‰

  • ALL, DISTINCT : ์ „์ฒด ์ถœ๋ ฅ, ์ค‘๋ณต ์ œ์™ธ ์ถœ๋ ฅ

  • SUM, AVG, MAX, MIN, VARIAN, STDDEV : NULL ์ œ์™ธํ•˜๊ณ  ์—ฐ์‚ฐ

  • COUNT : ํ–‰ ์ˆ˜ ์ถœ๋ ฅ

  1. GROUP BY : ๊ทธ๋ฃนํ•‘ ๊ธฐ์ค€ ์„ค์ •, ์•จ๋ฆฌ์–ด์Šค ์‚ฌ์šฉ ๋ถˆ๊ฐ€

  2. HAVING : GROUP BY์ ˆ์— ์˜ํ•œ ์ง‘๊ณ„ ๋ฐ์ดํ„ฐ์— ์ถœ๋ ฅ ์กฐ๊ฑด์„ ๊ฒ€, ์ผ๋ฐ˜์ ์œผ๋กœ GROUP BY ๋’ค์— ์œ„์น˜.


โ˜˜๏ธ ORDER BY

  1. ORDER BY : ํŠน์ • ์นผ๋Ÿผ์„ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌ, ๊ธฐ๋ณธ ์ •๋ ฌ ๊ธฐ์ค€์€ ์˜ค๋ฆ„์ฐจ์ˆœ
  • ์ปฌ๋Ÿผ๋ช…, ์•จ๋ฆฌ์–ด์Šค, ์ปฌ๋Ÿผ์˜ select์ ˆ์—์„œ ์ˆœ์„œ๋กœ ์ปฌ๋Ÿผ ์ง€์ • ๊ฐ€๋Šฅ, select์ ˆ์— ์—†๋Š” ์ปฌ๋Ÿผ๋„ ์ง€์ • ๊ฐ€๋Šฅ, GROUP BY์ ˆ์ด ์žˆ์œผ๋ฉด GROUP BY ๋Œ€์ƒ ์ปฌ๋Ÿผ๋งŒ ์ง€์ • ๊ฐ€๋Šฅ

  • Oracle์€ NULL์„ ์ตœ๋Œ€๊ฐ’์œผ๋กœ ํŒ๋‹จํ•จ, SQL Server๋Š” ์ตœ์†Œ๊ฐ’์œผ๋กœ ํŒ๋‹จํ•จ

  1. SELECT๋ฌธ ์‹คํ–‰ ์ˆœ์„œ
  • ํ…Œ์ด๋ธ”์—์„œ ์ถœ๋ ฅ ๋Œ€์ƒ์ด ์•„๋‹Œ ๊ฒƒ์€ ์ œ๊ฑฐํ•˜๊ณ  ๊ทธ๋ฃนํ•‘ํ•ด์„œ ๊ทธ๋ฃนํ•‘๋œ ๊ฐ’์ด ์กฐ๊ฑด์— ๋งž๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๊ณ„์‚ฐ ๋ฐ ์ถœ๋ ฅํ•˜๊ณ  ์ •๋ ฌํ•จ

โ˜˜๏ธ ์กฐ์ธ

  1. ์กฐ์ธ : ์—ฌ๋Ÿฌ ํ…Œ์ด๋ธ”์„ ์—ฐ๊ฒฐ ๋˜๋Š” ๊ฒฐํ•ฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ๊ฒƒ. ์ผ๋ฐ˜์ ์œผ๋กœ PK๋‚˜ FK์˜ ์—ฐ๊ด€์„ฑ์— ์˜ํ•ด ์„ฑ๋ฆฝ

  2. ๋“ฑ๊ฐ€ ์กฐ์ธ : ๋‘ ํ…Œ์ด๋ธ”์˜ ์ปฌ๋Ÿผ ๊ฐ’์ด ์ •ํ™•ํžˆ ์ผ์น˜ํ•˜๋Š” ๊ฒฝ์šฐ, ๋Œ€๋ถ€๋ถ„ PK์™€ FK ๊ด€๊ณ„๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•จ

SELECT ์ปฌ๋Ÿผ FROM ํ…Œ์ด๋ธ”1 A, ํ…Œ์ด๋ธ”2 B WHERE A.์ปฌ๋Ÿผ๋ช… = B.์ปฌ๋Ÿผ๋ช…
  1. ๋น„๋“ฑ๊ฐ€ ์กฐ์ธ : ๋‘ ํ…Œ์ด๋ธ”์˜ ์ปฌ๋Ÿผ ๊ฐ’์ด ์ •ํ™•ํ•˜๊ฒŒ ์ผ์น˜ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ, ๋ถ€๋“ฑํ˜ธ๋‚˜ BETWEEN ์—ฐ์‚ฐ์ž๋ฅผ ํ†ตํ•ด ์กฐ์ธ
profile
Back-End Developer ๐Ÿ๐ŸŽ

0๊ฐœ์˜ ๋Œ“๊ธ€

๊ด€๋ จ ์ฑ„์šฉ ์ •๋ณด