πŸ’» μ½”λ”© 일기 : [SQL] 'CREATE, ALTER, DROP' 편

ybkΒ·2024λ…„ 4μ›” 25일

sql

λͺ©λ‘ 보기
2/6
post-thumbnail

πŸ”” 'CREATE, ALTER, DROP'에 λŒ€ν•΄μ„œ μ•Œμ•„λ³΄μž!


πŸ’Ÿ CREATE

λ°μ΄ν„°λ² μ΄μŠ€ ν…Œμ΄λΈ”μ„ 생성할 λ•Œ μ‚¬μš©ν•©λ‹ˆλ‹€.

CREATE TABLE ν…Œμ΄λΈ”μ΄λ¦„ (
    컬럼1 λ°μ΄ν„°νƒ€μž… μ œμ•½μ‚¬ν•­,
    컬럼2 λ°μ΄ν„°νƒ€μž… μ œμ•½μ‚¬ν•­,
    ...
);
  • 컬럼1, 컬럼2λŠ” ν…Œμ΄λΈ”μ˜ 열을 λ‚˜νƒ€λƒ…λ‹ˆλ‹€.
  • 데이터 νƒ€μž… : VARCHAR, INT, DATE, DATETIME, DECIMAL(DEC) 등이 μžˆμŠ΅λ‹ˆλ‹€.
  • μ œμ•½μ‚¬ν•­ :
    • NOT NULL : μ»¬λŸΌμ— NULL 값을 ν—ˆμš©ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. ν•΄λ‹Ή μ»¬λŸΌμ—λŠ” λ°˜λ“œμ‹œ 값이 μžˆμ–΄μ•Ό ν•©λ‹ˆλ‹€.
    • UNIQUE : ν•΄λ‹Ή μ»¬λŸΌμ— μ€‘λ³΅λ˜λŠ” 값을 ν—ˆμš©ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
    • PRIMARY KEY : κΈ°λ³Έ ν‚€λ₯Ό μ •μ˜ν•©λ‹ˆλ‹€. κΈ°λ³Έ ν‚€λŠ” 값이 μ„œλ‘œ λ‹€λ₯΄κ²Œ μ„€μ •λ˜μ–΄μ•Ό ν•˜κ³  각 행을 κ³ μœ ν•˜κ²Œ μ‹λ³„ν•˜λŠ” 역할을 ν•©λ‹ˆλ‹€.
    • DEFAULT : ν•΄λ‹Ή μ»¬λŸΌμ— 값을 μ§€μ •ν•˜μ§€ μ•Šμ•˜μ„ λ•Œ μ‚¬μš©λ  κΈ°λ³Έ 값을 μ •μ˜ν•©λ‹ˆλ‹€.

πŸ’Ÿ ALTER

ν…Œμ΄λΈ”μ˜ ꡬ쑰λ₯Ό λ³€κ²½ν•˜κ³ μž ν•  λ•Œ μ‚¬μš©ν•©λ‹ˆλ‹€.

  • 컬럼 μΆ”κ°€ : ADD COLUMN
ALTER TABLE ν…Œμ΄λΈ”λͺ… ADD COLUMN 컬렁λͺ… λ°μ΄ν„°νƒ€μž… μ œμ•½μ‚¬ν•­;

- 컬럼 μ‚­μ œ : DROP COLUMN

ALTER TABLE ν…Œμ΄λΈ”λͺ… DROP COLUMN 컬렁λͺ…;
  • 컬럼 λ³€κ²½ : RENAME(이름), MODIFY COLUMN(μžλ£Œν˜•/μ œμ•½μ‚¬ν•­)
ALTER TABLE ν…Œμ΄λΈ”λͺ… RENAME COLUMN ν˜„μž¬μ»¬λŸΌλͺ… TO μˆ˜μ •μ»¬λŸΌλͺ…; #이름
ALTER TABLE ν…Œμ΄λΈ”λͺ… MODIFY COLUMN 컬럼λͺ… μˆ˜μ •νƒ€μž…; #μžλ£Œν˜•
ALTER TABLE ν…Œμ΄λΈ”λͺ… RENAME COLUMN 컬럼λͺ… μˆ˜μ •νƒ€μž… μˆ˜μ •μ œμ•½μ‚¬ν•­; #μ œμ•½μ‚¬ν•­
  • μ£Όμ˜ν•  점
    • 이미 λ§Œλ“€μ–΄μ Έ μžˆλŠ” ν…Œμ΄λΈ” ꡬ쑰λ₯Ό λ³€κ²½ν•˜λŠ” 것은 맀우 μ£Όμ˜ν•΄μ„œ ν•΄μ•Ό ν•©λ‹ˆλ‹€!!!
    • μ›λž˜ μ§€μ •ν–ˆλ˜ νƒ€μž…μ˜ 길이보닀 더 μž‘μ€ 길이둜 λ³€κ²½ν•  수 μ—†μŠ΅λ‹ˆλ‹€.
    • NOT NULL μ œμ•½μ‚¬ν•­μœΌλ‘œ λ³€κ²½ν•˜κ³  싢은 μ»¬λŸΌμ— 이미 NULL인 값이 μžˆλ‹€λ©΄ κ·Έ μ»¬λŸΌμ€ NOT NULL둜 λ³€κ²½ λΆˆκ°€λŠ₯ν•©λ‹ˆλ‹€. λ³€κ²½ν•˜κ³  μ‹Άλ‹€λ©΄ κ·Έ 값에 값을 λ„£μ–΄μ£Όκ³  κ·Έ λ‹€μŒμ— NOT NULL둜 λ³€κ²½ κ°€λŠ₯ν•©λ‹ˆλ‹€.
    • UNIQUE μ œμ•½μ‚¬ν•­ μ‚­μ œ : UNIQUE μ œμ•½μ‚¬ν•­μ„ μ‚­μ œν•˜λ €λ©΄ ν•΄λ‹Ή μ»¬λŸΌμ— μ„€μ •λœ INDEXλ₯Ό μ‚­μ œν•΄μ•Ό ν•©λ‹ˆλ‹€. μ΄λ ‡κ²Œ ν•˜λ©΄ ν•΄λ‹Ή μ»¬λŸΌμ—μ„œ μ€‘λ³΅λ˜λŠ” 값을 ν—ˆμš©ν•  수 있게 λ©λ‹ˆλ‹€.
    • DEFAULT μ œμ•½μ‚¬ν•­ μ‚­μ œ : ν•΄λ‹Ή μ»¬λŸΌμ—μ„œ 값을 μž…λ ₯ν•˜μ§€ μ•Šμ•˜μ„ λ•Œ μžλ™μœΌλ‘œ μ„€μ •λ˜λŠ” 기본값이 μ œκ±°λ©λ‹ˆλ‹€.
    • PRIMARY KEY μΆ”κ°€/μ‚­μ œ : μΆ”κ°€ν•˜κΈ° μœ„ν•΄μ„œλŠ” 이미 κΈ°λ³Έ ν‚€λ‘œ μ‚¬μš©λ  수 μžˆλŠ” μœ μΌν•œ 값이어야 ν•˜κ³  μ‚­μ œν•˜κΈ° μœ„ν•΄μ„œλŠ” ν…Œμ΄λΈ”μ— 더 이상 PRIMARY KEY둜 μ‚¬μš©λ˜λŠ” μ œμ•½μ΄ μ—†μ–΄μ•Ό ν•©λ‹ˆλ‹€.
# UNIQUE μ œμ•½μ‚¬ν•­ μ‚­μ œ
ALTER TABLE ν…Œμ΄λΈ”λͺ… DROP INDEX 컬럼λͺ…;

# DEFAULT μ œμ•½μ‚¬ν•­ μ‚­μ œ
ALTER TABLE ν…Œμ΄λΈ”λͺ… ALTER COLUMN 컬럼λͺ… DROP DEFAULT;

# PRIMARY KEY μΆ”κ°€/μ‚­μ œ
ALTER TABLE ν…Œμ΄λΈ”λͺ… ADD PRIMARY KEY (컬럼λͺ…);
ALTER TABLE ν…Œμ΄λΈ”λͺ… DROP PRIMARY KEY;

πŸ’Ÿ DROP

ν…Œμ΄λΈ”μ„ μ‚­μ œν•  λ•Œ μ‚¬μš©ν•©λ‹ˆλ‹€.

DROP TABLE ν…Œμ΄λΈ”λͺ…;
profile
개발자 쀀비생~

0개의 λŒ“κΈ€