ใ‚ใกใ‚ƒใใกใ‚ƒ ้–‹็™บ่€…๐Ÿฆพ
์ฝ”๋”ฉ ์ง ๐Ÿ’ช
ใ‚ใกใ‚ƒใใกใ‚ƒ ้–‹็™บ่€…๐Ÿฆพ
  • ์นดํ…Œ๊ณ ๋ฆฌ (135)
    • ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ๊ตฌ์ถ• (12)
      • ๊ฐœ๋ฐœ ํ™˜๊ฒฝ (5)
      • DB (0)
      • Node.js (4)
      • ํ˜•์ƒ ๊ด€๋ฆฌ (2)
      • Spring (1)
    • ์›น (11)
      • React (5)
      • ์ŠคํŒŒ๋ฅดํƒ€์ฝ”๋”ฉํด๋Ÿฝ__์›น (6)
    • ๋ชจ๋ฐ”์ผ (2)
      • ์•ˆ๋“œ๋กœ์ด๋“œ (2)
    • ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด (55)
      • C (13)
      • Python (15)
      • SQL (5)
      • Java (22)
    • ์‚ฌ๋ฌผ์ธํ„ฐ๋„ท (11)
      • ์•„๋‘์ด๋…ธ (11)
    • ์ผ์ƒ (31)
      • ๋ง›์ง‘ (13)
      • ๋žญํ‚น๋‹ญ์ปด (4)
      • ํ›„๊ธฐ (11)
      • ์š”๋ฆฌ (3)
      • ์žก๋‹ด (0)
    • ๊ต์–‘ (4)
      • ์‹ฌ๋ฆฌํ•™ (3)
      • ํ…Œ๋‹ˆ์Šค (1)
    • ์ž๊ฒฉ์ฆ (9)
      • ์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ (9)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ๐Ÿ’ป github

์ธ๊ธฐ ๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

hELLO ยท Designed By ์ •์ƒ์šฐ.
ใ‚ใกใ‚ƒใใกใ‚ƒ ้–‹็™บ่€…๐Ÿฆพ

์ฝ”๋”ฉ ์ง ๐Ÿ’ช

[MySQL] Constraint / DML / DDL / DCL / TCL
ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด/SQL

[MySQL] Constraint / DML / DDL / DCL / TCL

2022. 9. 14. 18:58

[ ์ œ์•ฝ ์กฐ๊ฑด / Constraints ]

๋”๋ณด๊ธฐ

Constraint

 - ์ œ์•ฝ ์กฐ๊ฑด์€ ํ…Œ์ด๋ธ”์˜ ๋ฐ์ดํ„ฐ ์œ ํ˜•์— ์ ์šฉ ๊ฐ€๋Šฅํ•œ ๊ทœ์น™

 - ์ œ์•ฝ ์กฐ๊ฑด์„ ์‚ฌ์šฉํ•˜๋ฉด ํ…Œ์ด๋ธ”์˜ ํŠน์ • ์—ด์— ์ €์žฅ ๊ฐ€๋Šฅํ•œ ๋ฐ์ดํ„ฐ ํƒ€์ž… ๋ฐ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์ œํ•œ ๊ฐ€๋Šฅ

 

01. NOT NULL

       - ํ•ด๋‹น ์ œ์•ฝ ์กฐ๊ฑด์€ ์—ด์— null ๊ฐ’์„ ์ €์žฅํ•  ์ˆ˜ ์—†์Œ์„ ๋‚˜ํƒ€๋ƒ„

       - ํ•ด๋‹น ์—ด์ด NOT NULL๋กœ ์ง€์ • ์‹œ ๋ฐ์ดํ„ฐ ํƒ€์ž… ๋ฐ ๋ฐ์ดํ„ฐ ๋˜ํ•œ null ๊ฐ’์ด ์ €์žฅ๋  ์ˆ˜ ์—†์Œ

       - ์•„๋ž˜ ์ด๋ฏธ์ง€์™€ ๊ฐ™์ด NOT NULL์ด ์ง€์ •๋  ๊ฒฝ์šฐ ์ƒˆ ํ–‰ ์‚ฝ์ž… ์‹œ ๋งˆ๋‹ค ID, NAME ํ•„๋“œ์—๋Š” ๋ฐ˜๋“œ์‹œ ๊ฐ’์ด ํ•„์š”ํ•จ

NOT NULL ์˜ˆ์‹œ

 

02. UNIQUE [์œ ๋‹ˆํฌ ์ œ์•ฝ์กฐ๊ฑด]

       - ํ…Œ์ด๋ธ”์˜ ๊ฐ ํ–‰์„ ๊ณ ์œ ํ•˜๊ฒŒ ์‹๋ณ„ํ•˜๋Š”๋ฐ ๋„์›€์„ ์ฃผ๋Š” ์ œ์•ฝ ์กฐ๊ฑด

       - ํ•œ ๊ฐœ์˜ ํ…Œ์ด๋ธ”์— ๋‘ ๊ฐœ ์ด์ƒ์˜ ์œ ๋‹ˆํฌ ์—ด ์กด์žฌ ๊ฐ€๋Šฅ

       - ์ฆ‰ ์œ ๋‹ˆํฌ ์ œ์•ฝ ์กฐ๊ฑด์ด ์ง€์ • ๋  ๊ฒฝ์šฐ ํ•ด๋‹น ์—ด์˜ ๊ฐ’์€ ์ค‘๋ณต ๋  ์ˆ˜ ์—†์Œ

์œ ๋‹ˆํฌ ์ œ์•ฝ ์กฐ๊ฑด ์˜ˆ์‹œ

 

03. PRIMARY KEY / PK [๊ธฐ๋ณธ ํ‚ค]

       - ํ”„๋ผ์ด๋จธ๋ฆฌ ํ‚ค(๊ธฐ๋ณธ ํ‚ค)๋Š” ํ…Œ์ด๋ธ”์˜ ๊ฐ ํ–‰์„ ๊ณ ์œ ํ•˜๊ฒŒ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ๋Š” ํ•„๋“œ

       - ๊ธฐ๋ณธ ํ‚ค๋Š” ์œ ์ผํ•œ ๊ฐ’์ด๊ธฐ ๋•Œ๋ฌธ์— ์ค‘๋ณต / ๊ณต๋ฐฑ ๋ถˆ๊ฐ€

       - ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์‹๋ณ„์ด ๊ฐ€๋Šฅํ•œ ๊ธฐ๋ณธํ‚ค๋ฅผ ์˜๋ฏธ

 

04. FOREIGN KEY / FK [์™ธ๋ถ€ ํ‚ค]

       - ๋‘ ํ…Œ์ด๋ธ”์˜ ๋ฐ์ดํ„ฐ ๊ฐ„ ์—ฐ๊ฒฐ์„ ์„ค์ •ํ•˜๊ณ  ๊ฐ•์ œ ์ ์šฉ

       - ์™ธ๋ถ€ ํ‚ค ํ•„๋“œ๋Š” ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”์˜ ๊ธฐ๋ณธ ํ‚ค๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋ฉฐ ํ…Œ์ด๋ธ”๋“ค ์‚ฌ์ด์— ์ผ์ข…์˜ ๋งํฌ ์ƒ์„ฑ ์—ญํ• ์„  ํ•จ

       - ์™ธ๋ถ€ ํ‚ค๊ฐ€ ์žˆ๋Š” ํ…Œ์ด๋ธ”์„ ํ•˜์œ„ ํ…Œ์ด๋ธ”์ด๋ผ ํ•˜๋ฉฐ, ๊ธฐ๋ณธ ํ‚ค๊ฐ€ ์žˆ๋Š” ํ…Œ์ด๋ธ”์„ ์ฐธ์กฐ ํ…Œ์ด๋ธ” ๋˜๋Š” ์ƒ์œ„ ํ…Œ์ด๋ธ”์ด๋ผ ํ•จ

Users ํ…Œ์ด๋ธ”์˜ User_id๋ฅผ ์™ธ๋ถ€ํ‚ค๋กœ ์‚ฌ์šฉํ•˜๋Š” Orders ํ…Œ์ด๋ธ”

 

05. CHECK [๊ฒ€์‚ฌ ์ œ์•ฝ์กฐ๊ฑด]

       - ํŠน์ • ์กฐ๊ฑด์„ ์ถฉ์กฑํ•˜๋„๋ก ์—ด์˜ ๊ฐ’์„ ๊ฒ€์ฆํ•  ๋•Œ ์‚ฌ์šฉ

       - ์—ด์— ๋ฐฐ์น˜๋  ์ˆ˜ ์žˆ๋Š” ๊ฐ’ ๋ฒ”์œ„๋ฅผ ์ œํ•œํ•˜๋Š”๋ฐ ์‚ฌ์šฉ

       - CHECK ์ œ์•ฝ ์กฐ๊ฑด์€ ์ผ๋ฐ˜์ ์œผ๋กœ SQL์˜ CREATE TABLE ๋ช…๋ น๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉ

pets ํ…Œ์ด๋ธ”์˜ Gender ๋ฐ์ดํ„ฐ ์—ด์— 'Male', 'Female', 'Unknown' ์„ธ ์œ ํ˜•๋งŒ ํ—ˆ์šฉํ•˜๋„๋ก CHECK ์ œ์•ฝ ์กฐ๊ฑด ์„ค์ •

 

06. DEFAULT [๊ธฐ๋ณธ๊ฐ’ ์ œ์•ฝ์กฐ๊ฑด]

       - ํ•ด๋‹น ์ œ์•ฝ ์กฐ๊ฑด์€ ์‚ฌ์šฉ์ž๊ฐ€ ๊ฐ’์„ ์ง€์ •ํ•˜์ง€ ์•Š์„ ๋•Œ ์—ด์˜ ๊ธฐ๋ณธ๊ฐ’์„ ์ง€์ •

       - ํŠน์ • ๊ฐ’์„ ์ง€์ •ํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ ๊ธฐ๋ณธ๊ฐ’์€ ๋ชจ๋“  ์ƒˆ ๋ ˆ์ฝ”๋“œ์— ์ž๋™ ์ถ”๊ฐ€

pets ํ…Œ์ด๋ธ”์˜ Gender ๋ฐ์ดํ„ฐ์˜ ๊ธฐ๋ณธ๊ฐ’์„ 'Female'๋กœ ์„ค์ •

 

 

SQL ๋ช…๋ น์–ด ๊ตฌ์กฐ๋„ / ์ด๋ฏธ์ง€ ์ถœ์ฒ˜ : https://www.geeksforgeeks.org/sql-ddl-dml-tcl-dcl/

 

[ ๋ฐ์ดํ„ฐ ์กฐ์ž‘ ์–ธ์–ด / DML ]

๋”๋ณด๊ธฐ

Data Manipulation Language / DML

 - ๋ฐ์ดํ„ฐ ๊ฒ€์ƒ‰, ๋“ฑ๋ก, ์‚ญ์ œ, ๊ฐฑ์‹  ๋“ฑ ๋ฐ์ดํ„ฐ ์กฐ์ž‘์„ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ๋ช…๋ น์–ด

 

01. SELECT FROM [๋ฐ์ดํ„ฐ ์กฐํšŒ]

       - ๋ฐ์ดํ„ฐ ์กฐํšŒ ์‹œ ์‚ฌ์šฉ๋˜๋Š” ๋ช…๋ ์–ด๋กœ DQL(Data Query Language)๋กœ ๋ถ„๋ฅ˜๋˜๊ธฐ๋„ ํ•จ

# Syntax
SELECT col_1, col_2 FROM table_name; 
# col_1, col_2 : ํ…Œ์ด๋ธ” ๋‚ด ์กฐํšŒํ•  ์ปฌ๋Ÿผ

 

02. INSERT INTO [๋ฐ์ดํ„ฐ ์‚ฝ์ž…]

       - ํ…Œ์ด๋ธ” ๋‚ด ๋ฐ์ดํ„ฐ ์‚ฝ์ž… ์‹œ ์‚ฌ์šฉ๋˜๋Š” ๋ช…๋ น๋ฌธ

# Syntax
INSERT INTO table_name(col_1, col_2, col_3)
  VALUES(val_1, val_2, val_3, val_4);

 

03. UPDATE SET [๋ฐ์ดํ„ฐ ๊ฐฑ์‹ ]

       - ๊ธฐ์กด ํ…Œ์ด๋ธ”์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐฑ์‹ ํ•  ๋•Œ ์‚ฌ์šฉ

       - ์š”๊ตฌ์‚ฌํ•ญ์— ๋”ฐ๋ผ ๋‹จ์ผ ์ปฌ๋Ÿผ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์—ฌ๋Ÿฌ ์ปฌ๋Ÿผ ๊ฐฑ์‹  ๊ฐ€๋Šฅ

# Syntax
# col_2 ์˜ ๊ฐ’์ด val_2์ธ ๋ฐ์ดํ„ฐ์˜ col_1 ๊ฐ’์„ val_1์œผ๋กœ ๊ฐฑ์‹ 
UPDATE table_name 
  SET col_1 = val_1
  WHERE col_2 = val_2;

 

04. DELETE FROM [๋ฐ์ดํ„ฐ ์‚ญ์ œ]

       - ํ…Œ์ด๋ธ”์—์„œ ๊ธฐ์กด ๋ ˆ์ฝ”๋“œ๋ฅผ ์‚ญ์ œํ•  ๋•Œ ์‚ฌ์šฉ

       - WHERE ์ ˆ์—์„œ ์ง€์ •ํ•œ ์กฐ๊ฑด์— ๋”ฐ๋ผ ๋‹จ์ผ ๋ ˆ์ฝ”๋“œ ๋˜๋Š” ์—ฌ๋Ÿฌ ๋ ˆ์ฝ”๋“œ ์‚ญ์ œ ๊ฐ€๋Šฅ

# Syntax
DELETE FROM table_name
  WHERE ์กฐ๊ฑด;

 

 

[ ๋ฐ์ดํ„ฐ ์ •์˜ ์–ธ์–ด / DDL ]

๋”๋ณด๊ธฐ

Data Definition Language / DDL

 - ํ…Œ์ด๋ธ”, ์ธ๋ฑ์Šค, ๋ทฐ ๋“ฑ๊ณผ ๊ฐ™์€ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๊ตฌ์กฐ๋ฅผ ์ •์˜

 - ํ…Œ์ด๋ธ”์˜ ์†์„ฑ ์ƒ์„ฑ, ๋ณ€๊ฒฝ ๋ฐ ์‚ญ์ œ ๋“ฑ ํ…Œ์ด๋ธ” ์ˆ˜์ •์— ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ช…๋ น์–ด

 

01. CREATE TABLE [ํ…Œ์ด๋ธ” ์ƒ์„ฑ]

      - ํ•ด๋‹น ๋ช…๋ น๋ฌธ์€ SQL์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋‚ด ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•  ๋•Œ ์‚ฌ์šฉ

mydata > smp01 ํ…Œ์ด๋ธ” ์ƒ์„ฑ

 

02. DROP TABLE [ํ…Œ์ด๋ธ” ์‚ญ์ œ]

       - DROP ๋ช…๋ น๋ฌธ์€ ์ „์ฒด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋˜๋Š” ํ…Œ์ด๋ธ” ์‚ญ์ œ ์‹œ ์‚ฌ์šฉ

DB ๋˜๋Š” ํ…Œ์ด๋ธ” ์ „์ฒด ์‚ญ์ œ ๋ช…๋ น๋ฌธ

 

03. TRUNCATE TABLE [ํ…Œ์ด๋ธ” ๋‚ด ๋ชจ๋“  ํ–‰(๋ฐ์ดํ„ฐ) ์‚ญ์ œ]

       - TRUNCATE ๋ช…๋ น๋ฌธ์€ ํ• ๋‹น ํ•ด์ œ๋ฅผ ์œ„ํ•ด ํ…Œ์ด๋ธ”์˜ ๋ฒ”์œ„๋ฅผ ํ‘œ์‹œํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋˜๋Š” DDL ์ž‘์—…์ž„

       - TRUNCATE ๋ช…๋ น์˜ ๊ฒฝ์šฐ ํ…Œ์ด๋ธ” ๋‚ด๋ถ€์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•˜์ง€๋งŒ ํ…Œ์ด๋ธ” ์ž์ฒด๋Š” ์‚ญ์ œํ•˜์ง€ ์•Š์Œ

       - ์ผ๋ฐ˜์ ์œผ๋กœ ๋งค์šฐ ๋น ๋ฅด๊ฒŒ ์ˆ˜ํ–‰๋˜๋ฉฐ DROP ๋ช…๋ น์–ด์™€ ๋‹ฌ๋ฆฌ ํ…Œ์ด๋ธ” ๋‚ด ๋ฐ์ดํ„ฐ๋Š” ์ „๋ถ€ ์‚ฌ๋ผ์ง€์ง€๋งŒ

          ํ…Œ์ด๋ธ”์˜ ๊ตฌ์กฐ๋Š” ๋‚จ์•„ ์žˆ์Œ.

TRUNCATE ๋ช…๋ น ์‚ฌ์šฉ ํ›„ ํ…Œ์ด๋ธ” ๊ตฌ์กฐ๋Š” ๋‚จ์•„ ์žˆ๋Š” ๊ฒƒ์„ ํ…Œ์ด๋ธ” ์กฐํšŒ๋ฅผ ํ†ตํ•ด ํ™•์ธ ๊ฐ€๋Šฅ

 

04. ALTER TABLE [ํ…Œ์ด๋ธ” ์ˆ˜์ •]

       - ALTER TABLE ๋ช…๋ น๋ฌธ์€ ๊ธฐ์กด ํ…Œ์ด๋ธ”์„ ์ˆ˜์ •, ๋‹ค์–‘ํ•œ ์ œ์•ฝ ์กฐ๊ฑด ์ถ”๊ฐ€ ํ˜น์€ ์‚ญ์ œํ•˜๋Š”๋ฐ ์‚ฌ์šฉ

 

      a. ADD [์—ด ์ถ”๊ฐ€]

           - ๊ธฐ์กด ํ…Œ์ด๋ธ”์— ์—ด์„ ์ถ”๊ฐ€ํ•  ๋•Œ ์‚ฌ์šฉ

           - ํ…Œ์ด๋ธ”์— ์—ด ์ถ”๊ฐ€ ์‹œ ๋ฐ์ดํ„ฐ ํƒ€์ž… ์ •์˜ ํ•„์š”

# Syntax
ALTER TABLE <table_name>
  ADD (Columnname_1 datatype,
       Columnname_2 datatype,
       ...
       Columnname_n datatype );

 

      b. DROP [์—ด ์‚ญ์ œ]

            - DROP COLUMN ๋ช…๋ น๋ฌธ์€ ํ…Œ์ด๋ธ” ๋‚ด ์—ด์„ ์‚ญ์ œํ•˜๋Š”๋ฐ ์‚ฌ์šฉ

# Syntax
ALTER TABLE table_name
  DROP COLUMN column_name;

 

      c. MODIFY [์—ด ์†์„ฑ ๋ณ€๊ฒฝ]

            - ํ…Œ์ด๋ธ” ๋‚ด ์กด์žฌํ•˜๋Š” ๊ธฐ์กด ์—ด์˜ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ์ˆ˜์ •ํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋˜๋ฉฐ ์—ฌ๋Ÿฌ ์—ด์„ ๋™์‹œ์— ์ˆ˜์ • ๊ฐ€๋Šฅ

            - ๊ตฌ๋ฌธ์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋”ฐ๋ผ ์•ฝ๊ฐ„์”ฉ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Œ

# Syntax
ALTER TABLE table_name
  MODIFY column_name column_type;

 

      d. CHANGE [์—ด ์ด๋ฆ„ ์ˆ˜์ •]

            - ํ…Œ์ด๋ธ” ๋‚ด ์กด์žฌํ•˜๋Š” ๊ธฐ์กด ์—ด(์ปฌ๋Ÿผ)์˜ ์ด๋ฆ„์„ ์ˆ˜์ •ํ•˜๋Š” ๋ช…๋ น๋ฌธ

            - ๋ช…๋ น์„ ํ†ตํ•ด ์ปฌ๋Ÿผ๋ช… ์ˆ˜์ • ์‹œ ๋‹จ์ˆœํ•˜๊ฒŒ ์ปฌ๋Ÿผ๋ช…๋งŒ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ ์ปฌ๋Ÿผ์„

              ์ƒˆ๋กœ ๋ฎ์–ด ์“ฐ๋Š” ๊ฐœ๋…์ด๊ธฐ์— ์ปฌ๋Ÿผ ์žฌ์ •์˜๊ฐ€ ํ•„์š”ํ•จ

# Syntax
ALTER TABLE table_name
  CHANGE table_name new_table_name VARCHAR(10);

 

      e. RENAME [ํ…Œ์ด๋ธ” ๋ช… ์ˆ˜์ •]

            - ํ•ด๋‹น ๋ช…๋ น๋ฌธ์„ ํ†ตํ•ด ํ…Œ์ด๋ธ” ๋ช… ์ˆ˜์ • ๊ฐ€๋Šฅ

#Syntax
ALTER TABLE table_name      # ๊ธฐ์กด table ๋ช…
  RENAME TO new_table_name; # ์ˆ˜์ •ํ•  table ๋ช…

 

 

[ ๋ฐ์ดํ„ฐ ์ œ์–ด ์–ธ์–ด / DCL ]

๋”๋ณด๊ธฐ

Data Control Language (DCL)

 - ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์—‘์„ธ์Šค๋ฅผ ์ œ์–ดํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๋ช…๋ น์–ด

 - ๋ฐ์ดํ„ฐ ๊ฐ์ฒด๋“ค์— ์ ‘๊ทผ ๊ฐ€๋Šฅํ•˜๋„๋ก ๊ถŒํ•œ์„ ๋ถ€์—ฌ ๋ฐ ๋ฐ•ํƒˆ

 

01. GRANT [๊ถŒํ•œ ๋ถ€์—ฌ]

        - MySQL์˜ CREATE USER ๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ณ„์ •์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์œผ๋‚˜ ๊ณ„์ •์— ๊ถŒํ•œ ๋ถ€์—ฌ๋Š” ํ•˜์ง€ ์•Š์Œ

        - ์‚ฌ์šฉ์ž ๊ณ„์ •์— ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•  ๋•Œ GRANT ๋ช…๋ น๋ฌธ ์‚ฌ์šฉ

# Syntax
GRANT ๊ถŒํ•œ๋ช… ON ๊ฐœ์ฒด/ํ…Œ์ด๋ธ” TO ์‚ฌ์šฉ์ž๋ช…

# 01.์‚ฌ์šฉ์ž๋ช…์ด Admin์ธ ์‚ฌ์šฉ์ž์—๊ฒŒ 'Users'๋ผ๋Š” ํ…Œ์ด๋ธ”์˜ SELECT ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๋Š” ๊ฒฝ์šฐ
GRANT SELECT ON Users TO 'Admin'@'localhost;

# 02. ์‚ฌ์šฉ์ž์—๊ฒŒ ๋‘˜ ์ด์ƒ์˜ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•  ๊ฒฝ์šฐ
GRANT SELECT, INSERT, DELETE ON Users TO 'Admin'@'localhost;

# 03. ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ชจ๋“  ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๋Š” ๊ฒฝ์šฐ
GRANT ALL ON Users TO 'Admin'@'localhost;

# 04. 'Users' ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ์‚ฌ์šฉ์ž์—๊ฒŒ ํŠน์ • ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๋Š” ๊ฒฝ์šฐ
GRANT SELECT ON Users TO '*'@'localhost;

 

02. REVOKE [๊ถŒํ•œ ๋ฐ•ํƒˆ]

        - REVOKE ๋ช…๋ น๋ฌธ์€ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ถ€์—ฌ๋œ ๊ถŒํ•œ์˜ ์ผ๋ถ€ ํ˜น์€ ์ „๋ถ€๋ฅผ ๋ฐ•ํƒˆํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋จ

        - ๋ช…๋ น๋ฌธ ์‚ฌ์šฉ ํ˜•์‹์ด GRANT๋ฌธ๊ณผ ๊ฑฐ์˜ ์œ ์‚ฌํ•จ

# Syntax
REVOKE ๊ถŒํ•œ๋ช… ON ๊ฐœ์ฒด/ํ…Œ์ด๋ธ” FROM ์‚ฌ์šฉ์ž๋ช…

# 01. ์‚ฌ์šฉ์ž๋ช…์ด 'Admin'์ธ ์‚ฌ์šฉ์ž์˜ Users ํ…Œ์ด๋ธ”์— ๋Œ€ํ•œ ํŠน์ • ๊ถŒํ•œ ์ทจ์†Œ
REVOKE SELECT ON Users FROM 'Admin'@'localhost;

 

DCL ์—์„œ ๋ถ€์—ฌ ๊ฐ€๋Šฅํ•œ ๊ถŒํ•œ / ์ด๋ฏธ์ง€ ์ถœ์ฒ˜ : https://www.geeksforgeeks.org/mysql-grant-revoke-privileges/?ref=gcse

 

 

[ ํŠธ๋žœ์žญ์…˜ ์ œ์–ด ์–ธ์–ด / TCL ]

๋”๋ณด๊ธฐ

Transaction Control Language (TCL)

 - ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ํŠธ๋žœ์žญ์…˜์„ ๊ด€๋ฆฌํ•˜๋Š” ์‚ฌ์šฉ๋˜๋Š” ๋ช…๋ น์–ด

 - ๋…ผ๋ฆฌ์ ์ธ ์ž‘์—…์˜ ๋‹จ์œ„๋ฅผ ๋ฌถ์–ด DML์— ์˜ํ•ด ์กฐ์ž‘๋œ ๊ฒฐ๊ณผ๋ฅผ ์ž‘์—…๋‹จ์œ„(ํŠธ๋žœ์žญ์…˜) ๋ณ„ ์ œ์–ด

 

01. COMMIT [ํŠธ๋žœ์žญ์…˜ ์˜๊ตฌ ์ €์žฅ]

        - COMMIT ๋ช…๋ น๋ฌธ์€ ํŠธ๋žœ์žญ์…˜์—์„œ ๋ณ€๊ฒฝํ•œ ๋‚ด์šฉ์„ ํ…Œ์ด๋ธ”/๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์˜๊ตฌ ์ €์žฅํ•  ๋•Œ ์‚ฌ์šฉ

        - ํŠธ๋žœ์žญ์…˜(INSERT, UPDATE, DELETE) ์ž‘์—… ๋‚ด์šฉ์„ ์‹ค์ œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ €์žฅ

        - ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ปค๋ฐ‹ ์‹คํ–‰ ํ›„์—๋Š” ์ด์ „ ์ƒํƒœ๋กœ ๋ณต๊ตฌ ๋ถˆ๊ฐ€๋Šฅ

 

02. ROLLBACK [๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ณต์›]

       - ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋งˆ์ง€๋ง‰ ์ปค๋ฐ‹ ์ƒํƒœ๋กœ ๋ณต์›

       - ์„ธ์ด๋ธŒํฌ์ธํŠธ ๋ช…๋ น๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉ์‹œ ์„ธ์ด๋ธŒํฌ์ธํŠธ๋กœ ์ ํ”„ ๊ฐ€๋Šฅ

 

03. SAVEPOINT [ํŠธ๋žœ์žญ์…˜ ์ผ์‹œ ์ €์žฅ]

       - ๋กค๋ฐฑ ๋ช…๋ น๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉ ์‹œ ํ•„์š”ํ•  ๋•Œ๋งˆ๋‹ค ์„ธ์ด๋ธŒํฌ์ธํŠธ ์ง€์ ์œผ๋กœ ๋กค๋ฐฑ ๊ฐ€๋Šฅ

# Syntax
# 01. ์„ธ์ด๋ธŒ ํฌ์ธํŠธ ์ƒ์„ฑ
SAVEPOINT ์„ธ์ด๋ธŒํฌ์ธํŠธ ๋ช…;

# 02. ์„ธ์ด๋ธŒ ํฌ์ธํŠธ๋กœ์˜ ROLLBACK(๋กค๋ฐฑ)
ROLLBACK TO ์„ธ์ด๋ธŒํฌ์ธํŠธ ๋ช…;

 

์ €์ž‘์žํ‘œ์‹œ ๋น„์˜๋ฆฌ ๋ณ€๊ฒฝ๊ธˆ์ง€ (์ƒˆ์ฐฝ์—ด๋ฆผ)
    'ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด/SQL' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [์ŠคํŒŒ๋ฅดํƒ€์ฝ”๋”ฉํด๋Ÿฝ] ๐Ÿ›ข์—‘์…€๋ณด๋‹ค ์‰ฌ์šด SQL - 4์ฃผ์ฐจ (ๅฎŒ)
    • [์ŠคํŒŒ๋ฅดํƒ€์ฝ”๋”ฉํด๋Ÿฝ] ๐Ÿ›ข์—‘์…€๋ณด๋‹ค ์‰ฌ์šด SQL - 3์ฃผ์ฐจ
    • [์ŠคํŒŒ๋ฅดํƒ€์ฝ”๋”ฉํด๋Ÿฝ] ๐Ÿ›ข์—‘์…€๋ณด๋‹ค ์‰ฌ์šด SQL - 2์ฃผ์ฐจ
    • [์ŠคํŒŒ๋ฅดํƒ€์ฝ”๋”ฉํด๋Ÿฝ] ๐Ÿ›ข์—‘์…€๋ณด๋‹ค ์‰ฌ์šด SQL - 1์ฃผ์ฐจ
    ใ‚ใกใ‚ƒใใกใ‚ƒ ้–‹็™บ่€…๐Ÿฆพ
    ใ‚ใกใ‚ƒใใกใ‚ƒ ้–‹็™บ่€…๐Ÿฆพ
    ๐Ÿ‘Š ๋ธ”๋กœ๊ทธ๋„ ๊ทผ์„ฑ์ด๋‹ค? ๐Ÿ‘Š

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”