πŸ“˜ Programming/DB

[MySQL] CREATE (λ°μ΄ν„°λ² μ΄μŠ€ 생성, ν…Œμ΄λΈ” 생성, μ œμ•½ 쑰건)

ν•œμ½”λ”© 2020. 7. 14. 11:22
728x90
728x90
CREATE

CREATE 문을 μ‚¬μš©ν•˜μ—¬ λ°μ΄ν„°λ² μ΄μŠ€μ™€ ν…Œμ΄λΈ”μ„ λ§Œλ“€ 수 μžˆμŠ΅λ‹ˆλ‹€.

 

1. CREATE DATABASE

2. CREATE TABLE


λ°μ΄ν„°λ² μ΄μŠ€ 생성

μƒˆλ‘œμš΄ λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό μƒμ„±ν•©λ‹ˆλ‹€. 

CREATE DATABASE DB_Name

 

μƒμ„±λœ λ°μ΄ν„°λ² μ΄μŠ€ λͺ©λ‘μ€ SHOW DATABASES ꡬ문을 톡해 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.

 SHOW DATABASES;

λ°μ΄ν„°λ² μ΄μŠ€μ˜ 선택

λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό μƒμ„±ν•œ 후에, ν•΄λ‹Ή λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό μ‚¬μš©ν•˜κΈ° μœ„ν•΄μ„œλŠ” μš°μ„  λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό 선택해야 ν•©λ‹ˆλ‹€. MySQLμ—μ„œλŠ” USE 문을 μ‚¬μš©ν•˜μ—¬ λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό 선택할 수 μžˆμŠ΅λ‹ˆλ‹€.

USE DB_Name;

 

Unix ν™˜κ²½μ˜ MySQLμ—μ„œλŠ” λ°μ΄ν„°λ² μ΄μŠ€ μ΄λ¦„μ˜ λŒ€μ†Œλ¬Έμžλ₯Ό κ΅¬λΆ„ν•©λ‹ˆλ‹€.
κ·ΈλŸ¬λ‚˜ Windows ν™˜κ²½μ˜ MySQLμ—μ„œλŠ” λ°μ΄ν„°λ² μ΄μŠ€μ˜ 이름에 λŒ€μ†Œλ¬Έμžλ₯Ό κ΅¬λΆ„ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
ν•˜μ§€λ§Œ 될 수 있으면 μ–Έμ œλ‚˜ λ°μ΄ν„°λ² μ΄μŠ€μ˜ 이름은 λŒ€μ†Œλ¬Έμžλ₯Ό κ΅¬λΆ„ν•˜μ—¬ μ‚¬μš©ν•˜λŠ” 것이 가독성 μΈ‘λ©΄μ—μ„œλ„ μ’‹μŠ΅λ‹ˆλ‹€.


ν…Œμ΄λΈ” 생성

λ°μ΄ν„°λ² μ΄μŠ€λŠ” ν•˜λ‚˜ μ΄μƒμ˜ ν…Œμ΄λΈ”λ‘œ κ΅¬μ„±λ˜λ©°, μ΄λŸ¬ν•œ ν…Œμ΄λΈ”μ— 데이터λ₯Ό μ €μž₯ν•˜μ—¬ 관리할 수 μžˆμŠ΅λ‹ˆλ‹€. CREATE TABLE 문은 μƒˆλ‘œμš΄ ν…Œμ΄λΈ”μ„ 생성해 μ€λ‹ˆλ‹€.

 

ν…Œμ΄λΈ”μ„ μƒμ„±ν•˜κΈ° μœ„ν•΄μ„œλŠ” ν…Œμ΄λΈ” μ΄λ¦„, ν•„λ“œ(field) λͺ©λ‘κ³Ό 각 ν•„λ“œμ˜ νƒ€μž…μ„ λͺ…μ‹œν•΄μ•Ό ν•©λ‹ˆλ‹€.

ν•„λ“œμ˜ νƒ€μž…μ΄λž€ ν•΄λ‹Ή ν•„λ“œμ— μ €μž₯될 데이터가 κ°€μ§ˆ 수 μžˆλŠ” νƒ€μž…μ„ μ˜λ―Έν•©λ‹ˆλ‹€.

 

λ‹€μŒ μ˜ˆμ œλŠ” 4개의 ν•„λ“œλ₯Ό κ°–λŠ” Test ν…Œμ΄λΈ”을 μƒμ„±ν•˜λŠ” μ˜ˆμ œμž…λ‹ˆλ‹€.

CREATE TABLE Test
(
    ID INT,
    Name VARCHAR(30),
    ReserveDate DATE,
    RoomNum INT
);

MySQLμ—μ„œλŠ” μœ„μ˜ λ¬Έλ²•μ²˜λŸΌ ν•˜λ‚˜μ˜ 쿼리λ₯Ό μ—¬λŸ¬ 쀄에 걸쳐 μž…λ ₯ν•  수 μžˆμŠ΅λ‹ˆλ‹€.


μ œμ•½ 쑰건(constraint)

λ°μ΄ν„°μ˜ 무결성을 지킀기 μœ„ν•΄ 데이터λ₯Ό μž…λ ₯받을 λ•Œ μ‹€ν–‰λ˜λŠ” 검사 κ·œμΉ™μ„ μ˜λ―Έν•©λ‹ˆλ‹€.

μ΄λŸ¬ν•œ μ œμ•½ 쑰건은 ν…Œμ΄λΈ”μ„ 생성, ν•„λ“œλ₯Ό μΆ”κ°€ν•  λ•Œλ„ μ„€μ •ν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.

 

< CREATE TABLE λ¬Έμ—μ„œ μ‚¬μš©ν•  수 μžˆλŠ” μ œμ•½ 쑰건 >

1. NOT NULL : ν•΄λ‹Ή ν•„λ“œλŠ” NULL 값을 μ €μž₯ν•  수 μ—†κ²Œ λ©λ‹ˆλ‹€.

2. UNIQUE : ν•΄λ‹Ή ν•„λ“œλŠ” μ„œλ‘œ λ‹€λ₯Έ κ°’을 κ°€μ Έμ•Όλ§Œ ν•©λ‹ˆλ‹€.

3. PRIMARY KEY : ν•΄λ‹Ή ν•„λ“œκ°€ NOT NULLκ³Ό UNIQUE μ œμ•½ 쑰건의 νŠΉμ§•μ„ λͺ¨λ‘ κ°€μ§€κ²Œ λ©λ‹ˆλ‹€.

4. FOREIGN KEY : ν•˜λ‚˜μ˜ ν…Œμ΄λΈ”μ„ λ‹€λ₯Έ ν…Œμ΄λΈ”μ— μ˜μ‘΄ν•˜κ²Œ λ§Œλ“­λ‹ˆλ‹€.

5. DEFAULT : ν•΄λ‹Ή ν•„λ“œμ˜ 기본값을 μ„€μ •ν•©λ‹ˆλ‹€.

 

AUTO_INCREMENT ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•˜λ©΄ ν•΄λ‹Ή ν•„λ“œμ˜ 값을 1λΆ€ν„° μ‹œμž‘ν•˜μ—¬ μƒˆλ‘œμš΄ λ ˆμ½”λ“œκ°€ 좔가될 λ•Œλ§ˆλ‹€ 1μ”© μ¦κ°€λœ 값을 μ €μž₯ν•©λ‹ˆλ‹€. μ΄λ•Œ AUTO_INCREMENT ν‚€μ›Œλ“œ λ‹€μŒμ— λŒ€μž… μ—°μ‚°μž(=)λ₯Ό μ‚¬μš©ν•˜μ—¬ μ‹œμž‘κ°’μ„ λ³€κ²½ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

728x90
λ°˜μ‘ν˜•