Everybody wants some! ๐ŸŒŠ
[Braze] ๐Ÿ””ํ‘ธ์‹œ ์•Œ๋ฆผ์œผ๋กœ ํ”„๋กœ๋ชจ์…˜ ํ™๋ณดํ•˜๊ธฐ +์บ”๋ฒ„์Šค ๊ธฐํš์•ˆ ์˜ˆ์‹œ ์ž์„ธํžˆ๋ณด๊ธฐ

๊ณต๋ถ€๐Ÿ“š๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป

[SQLD] SQL ์ž๊ฒฉ๊ฒ€์ • ์‹ค์ „๋ฌธ์ œ(๋…ธ๋žญ์ด) 1~20๋ฒˆ ํ•ต์‹ฌ ์ •๋ฆฌ

์—๋ธ”๋ฆฐ 2023. 5. 20. 17:08
  • SQL ๋ฌธ์žฅ๋“ค์˜ ์ข…๋ฅ˜
๋ช…๋ น์–ด์˜ ์ข…๋ฅ˜ ๋ช…๋ น์–ด ์„ค๋ช…
๋ฐ์ดํ„ฐ ์กฐ์ž‘์–ด
(DML: Data Manipulation Langauge)
SELECT ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋“ค์–ด์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๊ฑฐ๋‚˜, ๊ฒ€์ƒ‰ํ•˜๊ธฐ ์œ„ํ•œ ๋ช…๋ น์–ด๋ฅผ ๋งํ•˜๋Š” ๊ฒƒ์œผ๋กœ, RETRIEVE ๋ผ๊ณ ๋„ ํ•œ๋‹ค.
INSERT
UPDATE
DELETE
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ํ…Œ์ด๋ธ”์— ๋“ค์–ด์žˆ๋Š” ๋ฐ์ดํ„ฐ์— ๋ณ€ํ˜•์„ ๊ฐ€ํ•˜๋Š” ์ข…๋ฅ˜์˜ ๋ช…๋ น์–ด๋ฅผ ๋งํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋ฐ์ดํ„ฐ๋ฅผ ํ…Œ์ด๋ธ”์˜ ์ƒˆ๋กœ์šด ํ–‰์— ์ง‘์–ด๋„ฃ๊ฑฐ๋‚˜, ์›ํ•˜์ง€ ์•Š๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•˜๊ฑฐ๋‚˜ ์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ๋“ค์˜ ๋ช…๋ น์–ด๋“ค์„ DML์ด๋ผ๊ณ  ํ•œ๋‹ค.
๋ฐ์ดํ„ฐ ์ •์˜์–ด
(DDL: Data Definition Language)
CREATE
ALTER
DROP
RENAME
ํ…Œ์ด๋ธ”๊ณผ ๊ฐ™์€ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ์ •์˜ํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๋ช…๋ น์–ด๋“ค๋กœ, ๊ทธ๋Ÿฌํ•œ ๊ตฌ์กฐ๋ฅผ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ๋ณ€๊ฒฝํ•˜๊ฑฐ๋‚˜ ์‚ญ์ œํ•˜๊ฑฐ๋‚˜ ์ด๋ฆ„์„ ๋ฐ”๊พธ๋Š” ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์™€ ๊ด€๋ จ๋œ ๋ช…๋ น์–ด๋“ค์„ DDL์ด๋ผ๊ณ  ํ•œ๋‹ค.
๋ฐ์ดํ„ฐ ์ œ์–ด์–ด
(DCL: Data Control Language)
GRANT
REVOKE
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ‘๊ทผํ•˜๊ณ  ๊ฐ์ฒด๋“ค์„ ์‚ฌ์šฉํ•˜๋„๋ก ๊ถŒํ•œ์„ ์ฃผ๊ณ , ํšŒ์ˆ˜ํ•˜๋Š” ๋ช…๋ น์–ด๋ฅผ DCL์ด๋ผ๊ณ  ํ•œ๋‹ค.
ํŠธ๋žœ์žญ์…˜ ์ œ์–ด์–ด
(TCL: Transaction Control Language)
COMMIT
ROLLBACK
๋…ผ๋ฆฌ์ ์ธ ์ž‘์—…์˜ ๋‹จ์œ„๋ฅผ ๋ฌถ์–ด์„œ DML์— ์˜ํ•ด ์กฐ์ž‘๋œ ๊ฒฐ๊ณผ๋ฅผ ์ž‘์—…๋‹จ์œ„(ํŠธ๋žœ์žญ์…˜) ๋ณ„๋กœ ์ œ์–ดํ•˜๋Š” ๋ช…๋ น์–ด๋ฅผ ๋งํ•œ๋‹ค.
  • Oracle์—์„œ์˜ alter ์‚ฌ์šฉ
ALTER TABLE PRODUCT ADD CONSTRAINT PRODUCT_PK PRIMARY KEY (PROD_ID)
  • Oracle์—์„œ ์ œ์•ฝ ์กฐ๊ฑด ์ถ”๊ฐ€ํ•  ๋•Œ
CREATE TABLE PRODUCT
( ...
, ...
, ...
,CONSTRAINT PRODUCT_PK PRIMARY KEY (PROD_ID));
  • MSSQL(SQL Server)์—์„œ๋Š” ALTER๋กœ ์นผ๋Ÿผ ๋™์‹œ ๋ณ€ํ™˜ ๋ถˆ๊ฐ€๋Šฅ, ์นผ๋Ÿผ๋ช… ์ ์„ ๋•Œ ๊ด„ํ˜ธ๋„ ์“ฐ์ง€ ์•Š์Œ 
-- ํ‹€๋ฆฐ ์˜ˆ์‹œ
ALTER TABLE ๊ธฐ๊ด€๋ถ„๋ฅ˜ ALTER COLUMN (๋ถ„๋ฅ˜๋ช…, VARCHER(30), ๋“ฑ๋ก์ผ์ž IS NOT NULL);
-- ์•Œ๋งž์€ ์˜ˆ์‹œ
ALTER TABLE ๊ธฐ๊ด€๋ถ„๋ฅ˜ ALTER COLUMN ๋ถ„๋ฅ˜๋ช… VARCHAR(30) NOT NULL;
ALTER TABLE ๊ธฐ๊ด€๋ถ„๋ฅ˜ ALTER COLUMN ๋“ฑ๋ก์ผ์ž DATE NOT NULL;
  • PK(Primary Key) ์ง€์ •์€ ํ•œ ๊ณณ์—์„œ๋งŒ
    • ์•„๋ž˜์˜ ๊ฒฝ์šฐ ํ…Œ์ด๋ธ” ์ƒ์„ฑ ๋ฌธ์žฅ์—์„œ ์ด๋ฏธ PRIMARY KEY๋ฅผ ์ง€์ •ํ•˜์˜€์œผ๋ฏ€๋กœ ALTER TABLE ๋ฌธ์žฅ์—์„œ ์˜ค๋ฅ˜ ๋ฐœ์ƒ
-- ํ‹€๋ฆฐ ์˜ˆ์‹œ
CREATE TABLE EMP
(EMP_NO VARCHAR20(10) NOT NULL PRIMARY KEY,
...
...
...);
ALTER TABLE EMP ADD CONSTRAINT EMP_PK PRIMARY KEY (EMP_NO);
  • ๊ฐ„๋‹จํ•œ OX ๋ฌธ์žฅ
    • FK(์™ธ๋ž˜ํ‚ค) ๊ฐ’์€ null์ผ ์ˆ˜ ์žˆ๋‹ค. (O)
    • ํ•œ ํ…Œ์ด๋ธ”์— ์—ฌ๋Ÿฌ๊ฐœ์ผ ์ˆ˜ ์žˆ๋‹ค. (O)
    • ์™ธ๋ž˜ํ‚ค ๊ฐ’์€ ์ฐธ์กฐ ๋ฌด๊ฒฐ์„ฑ ์ œ์•ฝ์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค. (O) > FK๋Š” PK์— ์—†๋Š” ๊ฐ’์„ ์ฐธ์กฐํ•  ์ˆ˜๋Š” ์—†๋‹ค.
    • Unique Key๋กœ ์ง€์ •๋˜๋Š” ๋ชจ๋“  ์ปฌ๋Ÿผ์€ null๊ฐ’์„ ๊ฐ€์งˆ ์ˆ˜ ์—†๋‹ค. (X)
  • ํ…Œ์ด๋ธ”์˜ ๋ถˆํ•„์š”ํ•œ ์ปฌ๋Ÿผ ์‚ญ์ œ
ALTER TABLE ํ…Œ์ด๋ธ”๋ช…
DROP COLUMN ์นผ๋Ÿผ๋ช…;
  • ์ฐธ์กฐ๋™์ž‘(Referential Action)
์•ก์…˜ ์ฐธ์กฐ๋™์ž‘ ์„ค๋ช…
DELETE / MODIFY CASCADE master ์‚ญ์ œ ์‹œ child ๊ฐ™์ด ์‚ญ์ œ
SET NULL master ์‚ญ์ œ ์‹œ child์˜ ํ•ด๋‹น ํ•„๋“œ null
SET DEFAULT master ์‚ญ์ œ ์‹œ child์˜ ํ•ด๋‹น ํ•„๋“œ default ๊ฐ’์œผ๋กœ ์„ค์ •
RESTRICT child ํ…Œ์ด๋ธ”์— PK๊ฐ’์ด ์—†๋Š” ๊ฒฝ์šฐ๋งŒ master ์‚ญ์ œ ํ—ˆ์šฉ
NO ACTION ์ฐธ์กฐ๋ฌด๊ฒฐ์„ฑ์„ ์œ„๋ฐ˜ํ•˜๋Š” ์‚ญ์ œ/์ˆ˜์ • ์•ก์…˜์„ ์ทจํ•˜์ง€ ์•Š์Œ
INSERT AUTOMATIC master ํ…Œ์ด๋ธ”์— PK๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ, master์— PK ์ƒ์„ฑ ํ›„ child ์ž…๋ ฅ
SET NULL master ํ…Œ์ด๋ธ”์— PK๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ child FK๋ฅผ null ๊ฐ’์œผ๋กœ ์ฒ˜๋ฆฌ
SET DEFAULT master ํ…Œ์ด๋ธ”์— PK๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ child FK๋ฅผ ์ง€์ •๋œ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์ž…๋ ฅ
DEPENDENT master ํ…Œ์ด๋ธ”์— PK๊ฐ€ ์กด์žฌํ•  ๋•Œ๋งŒ child ์ž…๋ ฅ ํ—ˆ์šฉ
NO ACTION ์ฐธ์กฐ๋ฌด๊ฒฐ์„ฑ์„ ์œ„๋ฐ˜ํ•˜๋Š” ์ž…๋ ฅ ์•ก์…˜์„ ์ทจํ•˜์ง€ ์•Š์Œ