[DB]SQL(1)
πSQL κ°μ
SQL(Structured Query Language)μ ꡬ쑰νλ μ§μ μΈμ΄λΌλ μλ―Έλ₯Ό κ°μ§κ³ μ¬μ©μμ DBMS κ°μ μμ¬μν΅μ μν μΈμ΄μ λλ€. RDBMSμμ λ°μ΄ν°λ₯Ό κ΄λ¦¬νκΈ° μν λΉμ μ°¨μ μΈμ΄μ΄κ³ λ°μ΄ν°λ² μ΄μ€μμ μνλ μ 보λ₯Ό κ°λ¨λͺ λ£νκ² ννν μ μλ μ μΈν μΈμ΄μ λλ€. SQLμ λ°μ΄ν°μ λν μ μμ μ‘°μ, κ΄λ¦¬νλ μν μ λ°λΌ μΈ μμμ μΈμ΄λ‘ λλ©λλ€.
-
λ°μ΄ν° μ μ μΈμ΄(DDL): λ°μ΄ν° μ μ μΈμ΄λ λ°μ΄ν°λ² μ΄μ€ λ΄μ κ°μ²΄λ₯Ό μμ± λ° μμ νκ³ κ·Έ ꡬ쑰λ₯Ό μ‘°μνλ SQLλ¬Έμ μλ―Έν©λλ€. ν μ΄λΈ μ€ν€λ§ μ μ, ν μ΄λΈ μμ , ν μ΄λΈ μ€ν€λ§ λ³κ²½ λ±μ κΈ°λ₯μ μνν©λλ€.
-
λ°μ΄ν° μ‘°μ μΈμ΄(DML): λ°μ΄ν° μ‘°μ μΈμ΄λ λ μ½λ κ²μ, μΆκ°, μμ λ±μ μ€μ λ°μ΄ν° μ‘°μκ³Ό κ΄λ ¨λ SQLλ¬Έμ μλ―Έν©λλ€. INSERT, UPDATE, DELETE, SELECTλ¬Έκ³Ό κ°μ λ€μν λΆκ° κΈ°λ₯μ μ 곡ν©λλ€.
-
λ°μ΄ν° μ μ΄ μΈμ΄(DCL): λ°μ΄ν° μ μ΄ μΈμ΄λ DBMSμ λμ μ€μ λ° DBMS μ κ·Όμ λν μ¬μ©μ κΆνμ κ΄λ¦¬νλ SQLλͺ λ Ήμ΄ μ§ν©μ λλ€. GRANT, REVOKE, BEGIN λ±μ λͺ λ Ήμ΄λ‘ ꡬμ±λκ³ , μ£Όλ‘ λ°μ΄ν°λ² μ΄μ€ κ΄λ¦¬μ(DBA)κ° μ¬μ©ν©λλ€.
πλ°μ΄ν° μ μ μΈμ΄
SQLμ λ°μ΄ν° μ μ μΈμ΄λ ν μ΄λΈμ λν μ 보λΏλ§ μλλΌ ν μ΄λΈμ μ€ν€λ§, 컬λΌλ€μ λ°μ΄ν° νμ , μ μ½μ‘°κ±΄, μμΈ κ΅¬μ‘° λ±μ λ°μ΄ν°λ² μ΄μ€ κ°μ²΄λ₯Ό μ μν©λλ€.
μ’ λ₯ | μ μ© | κΈ°λ₯ |
---|---|---|
CREATE | SCHEMA | μ€ν€λ§ μμ± |
CREATE | TABLE | ν μ΄λΈ μμ± |
CREATE | INDEX | μΈλ±μ€ μμ± |
CREATE | VIEW | λ·° μμ± |
ALTER | SCHEMA | μ€ν€λ§ μμ |
ALTER | TABLE | ν μ΄λΈ μμ |
DROP | SCHEMA | μ€ν€λ§ μμ |
DROP | TABLE | ν μ΄λΈ μμ |
DROP | INDEX | μΈλ±μ€ μμ |
DROP | VIEW | λ·° μμ |
πμ€ν€λ§ μ μ
DDLλ¬ΈμΌλ‘ μμ± κ°λ₯ν κ°μ₯ μμ λ¨κ³μ κ°μ²΄λ μ€ν€λ§μ λλ€. μ€ν€λ§λ MySQLμμ λ°μ΄ν°λ² μ΄μ€λ₯Ό μλ―Έν©λλ€. μ€ν€λ§ μμ±μλ λ κ°μ§ λ°©λ²μ΄ μμ΅λλ€.
-
MySQL μν¬λ²€μΉ Forward Engineer κΈ°λ₯μ μ΄μ©νμ¬ μλμ μΌλ‘ μ€ν€λ§μ ν μ΄λΈμ μμ±
-
MySQL μν¬λ²€μΉ SQL ν¨λμμ μ€ν€λ§ μμ±λ¬Έ μ λ ₯
- μ€ν€λ§ μμ±
1
CREATE SCHEMA μ€ν€λ§ μ΄λ¦
- μ€ν€λ§ μμ
1
DROP SCHEMA μ€ν€λ§ μ΄λ¦
DROP SCHEMAλ¬Έμ μ΄μ©νλ©΄ μ€ν€λ§ λ΄λΆμ λͺ¨λ λ°μ΄ν°κ° κ°μ΄ μμ λ©λλ€.
πν μ΄λΈ μ μ
ν μ΄λΈμ κ΄κ³ν λͺ¨λΈμ 릴λ μ΄μ μ λμλλ ꡬ쑰μ λλ€. DBMSμμ κ°μ₯ κΈ°λ³Έμ μΈ λ°μ΄ν° μ μ₯κ΅¬μ‘°μΈ ν μ΄λΈμ CREATE TABLEλ¬Έμ μ¬μ©νμ¬ μ μλ©λλ€. ν μ΄λΈμ μ΄λ¦, κ°κ°μ 컬λΌμ λν 컬λΌμ μ΄λ¦, λ°μ΄ν° νμ , μ μ½μ‘°κ±΄μ μ¨μ μλ‘μ΄ λ°μ΄λΈμ μ μν©λλ€.
- ν
μ΄λΈ μμ±
1 2 3 4 5 6 7 8 9
CREATE TABLE ν μ΄λΈ μ΄λ¦( μ»¬λΌ λ°μ΄ν°νμ [μ μ½μ‘°κ±΄] μ»¬λΌ λ°μ΄ν°νμ [μ μ½μ‘°κ±΄] ... [PRIMARY KEY 컬λΌ] [UNIQUE 컬λΌ] [FOREIGN KEY μ»¬λΌ REFERENCES ν μ΄λΈ(컬λΌ)] )
- λ°μ΄ν° νμ
ν μ΄λΈμ μ μν λ κ°κ°μ 컬λΌμ μ μ₯λ μ μλ λ°μ΄ν° νμ μ λͺ μν΄μΌ ν©λλ€. λ°μ΄ν° νμ μ 컬λΌμ μ μ₯λλ κ°μ μ’ λ₯λ₯Ό λ§ν©λλ€.
μ’ λ₯ | λ°μ΄ν° νμ | κΈ°λ₯ |
---|---|---|
μ μ | TINYINT | -128~127 μ¬μ΄μ μ μ |
μ μ | SMALLINT | -32,768~32,767 μ¬μ΄μ μ μ |
μ μ | MEDIUMINT | -8,388,608~8,388,607 μ¬μ΄μ μ μ |
μ μ | INT | -2,147,483,648~2,147,483,647 μ¬μ΄μ μ μ |
μ μ | BIGINT | -9,223,372,036,854,775,808~9,223,372,036,854,775,8087 μ¬μ΄μ μ μ |
κ³ μ μμν | DECIMAL | μμ§μλ₯Ό νν |
κ³ μ μμν | NUMERIC | DECIMALκ³Ό λμΌ |
λΆλ μμν | FLOAT | 4byte ν¬κΈ°λ₯Ό κ°λ λΆλ μμ |
λΆλ μμν | FLOAT(P) | μ ν¨μ«μλ₯Ό μ μ₯νκΈ° μν μλ¦Ώμκ° Pκ°μΈ λΆλ μμ |
λΆλ μμν | DOUBLE | 8byteμ ν¬κΈ°λ₯Ό κ°λ λΆλ μμ |
λ¬Έμ | CHAR(n) | κΈΈμ΄κ° nμΌλ‘ κ³ μ λ λ¬Έμμ΄ |
λ¬Έμ | VARCHAR(n) | μ΅λ nκ°λ‘ ꡬμ±λ κ°λ³κΈΈμ΄ λ¬Έμμ΄ |
λ¬Έμ | TEXT | κΈΈμ΄κ° κΈ΄ κ°λ³κΈΈμ΄ λ¬Έμμ΄ |
λ¬Έμ | ENUM | μ ν κ°μ λ¬Έμμ΄ μ§ν© μ€ νλμ κ°μ μ ν |
λ μ§/μκ° | DATE | βCCYY-MM-DDβ |
λ μ§/μκ° | TIME | β00:00:00β |
λ μ§/μκ° | DATETIME | βCCYY-MM-DD 00:00:00β, νμ μΌμ |
λ μ§/μκ° | TIMESTAMP | βCCYY-MM-DD 00:00:00β, MySQL μλ²μ νμμ‘΄μ λ°λΌ λ³κ²½ |
λ μ§/μκ° | YEAR | βCCYYβ |
- ν
μ΄λΈ μμ
βALTER TABLE ν μ΄λΈμ΄λ¦βμ νμ μ λ ₯ μ¬νμ λλ€. νλ μ΄μμ ADD COLUMN, DROP COLUMN, CHANGE COLUMN, MODIFY COLUMμ μ μ©ν΄μΌνκ³ λμμ μ¬λ¬ λͺ λ Ήμ μ μ©ν μ μμ΅λλ€.
1
2
3
4
5
6
7
8
9
10
11
12
13
ALTER TABLE ν
μ΄λΈ μ΄λ¦
/* μ£Όμ΄μ§ μ»¬λΌ μ΄λ¦κ³Ό λ°μ΄ν° νμ
μ ν΄λΉνλ
μλ‘μ΄ μ»¬λΌ μΆκ° */
[ADD COLUMN μ»¬λΌ λ°μ΄ν°νμ[μ μ½μ‘°κ±΄]]
-- μ§μ λ 컬λΌμ ν
μ΄λΈμμ μμ
[DROP COLUMN 컬λΌ, ...]
-- 컬λΌμ μ΄λ¦μ΄λ λ°μ΄ν° νμ
λλ μ μ½μ‘°κ±΄μ λ³κ²½
[CHANGE COLUMN μμ μ 컬λΌ, μμ ν컬λΌ]
-- 컬λΌμ λ°μ΄ν° νμ
λ³κ²½
[MODIFY COLUMN μ»¬λΌ μλ‘μ΄_λ°μ΄ν°νμ
]
- ν
μ΄λΈ μμ
1
DROP TABLE ν
μ΄λΈ μ΄λ¦
πμ μ½μ‘°κ±΄ μ¬μ©
ν μ΄λΈκ³Ό ν μ΄λΈμ 컬λΌμ μΈλ°νκ² κ΄λ¦¬νκ³ μ ν λ μ μ½μ‘°κ±΄μ μ΄μ©νμ¬ μ€λ³΅λλ λ μ½λ μ½μ μ λ§κ±°λ, κ°μ΄ NULLμ΄ μλ κ°μ΄ νμλ‘ μ λ ₯λλλ‘ μ€μ ν μ μμ΅λλ€.
- PRIMARY KEY μ
PRIMARY KEY μ μ κΈ°λ³Έν€λ₯Ό μ§μ νλ μ μ½μ‘°κ±΄μ λλ€. νλ μ΄μμ 컬λΌμ κΈ°λ³Έν€λ‘ μ€μ ν μ μμ΅λλ€. νΉμ 컬λΌμ κΈ°λ³Έν€ μ‘°κ±΄μ μ μνλ©΄ ν μ΄λΈμ λͺ¨λ λ μ½λλ ν΄λΉ 컬λΌμ λν΄ κ³ μ ν κ°μ κ°μ ΈμΌ νκ³ , NULL κ°μ μ λ ₯ν μ μμ΅λλ€.
- NOT NULL μ
NOT NULL μ μ NN μ μ΄λΌκ³ λ ν©λλ€. NOT NULL μ μ½μ‘°κ±΄μ νΉμ 컬λΌμ μ μνλ©΄ λͺ¨λ λ μ½λλ€μ ν΄λΉ 컬λΌμ λ°λμ μ΄λ€ κ°μ΄ μ μ₯λμ΄μΌ ν©λλ€.
- UNIQUE μ
UNIQUE μ μ νΉμ 컬λΌμ μ μ½ μ‘°κ±΄μ μ μνλ©΄ μ΄λ€ λ μ½λλ€λ ν΄λΉ 컬λΌμ λν΄ λ€λ₯Έ λ μ½λμ λμΌν κ°μ κ°μ§ μ μμ΅λλ€.
- AUTO_INCREMENT μ
AUTO_INCREMENT μ μ μ¬μ©μκ° μ§μ μ λ ₯νμ§ μμλ λ μ½λκ° μΆκ°λ λ μλμ μΌλ‘ κΈ°μ‘΄ λ μ½λμ κ°μ μ°Έκ³ νμ¬ μμ°¨μ μΌλ‘ ν΄λΉ 컬λΌμ 1μ μ¦κ°μν¨ κ°μ μ μ₯ν©λλ€. INT κ³μ΄μ λ°μ΄ν° νμ μλ§ μ μ©ν μ μμ΅λλ€.
- DEFAULT μ
DEFAULT μ μ ν΄λΉ 컬λΌμ μ΄λ€ κ°μ΄ μ λ ₯λμ§ μμΌλ©΄ μλμΌλ‘ μ§μ λ κ°μ΄ μ λ ₯λλλ‘ νλ 쑰건μ λλ€.
- FOREIGN KEY μ
λ€λ₯Έ 컬λΌμ μ°Έμ‘°νλ μΈλν€λ₯Ό μ μν©λλ€. μΈλν€ μ μ½μ‘°κ±΄μ μ μνκΈ° μν΄ μ°Έμ‘°νλ ν μ΄λΈ 컬λΌκ³Ό μ°Έμ‘°λλ ν μ΄λΈ 컬λΌμ΄ νμνλ°, μ°Έμ‘°νλ 컬λΌμ κ°μ΄ μ°Έμ‘°λλ 컬λΌμ μ‘΄μ¬νμ§ μμ κ²½μ° μ°Έμ‘° λ¬΄κ²°μ± μ μ½μ‘°κ±΄μ μν΄ DBMS μ€νμ κ±°μ ν©λλ€.
1
2
FOREIGN KEY (μ°Έμ‘°νλ 컬λΌμ΄λ¦)
REFERENCES μ°Έμ‘°λλ ν
μ΄λΈμ΄λ¦(μ°Έμ‘°λλ 컬λΌμ΄λ¦)
- CHECK μ
ν μ΄λΈ μμ± μ 컬λΌκ°μ΄ νΉμ 쑰건μ μ€μνμ¬ λ°μ΄ν° 무결μ±μ μ μ§νκΈ° μν΄ CHECKμ μ μ 곡ν©λλ€. ν΄λΉ 컬λΌμ΄ 쑰건μ μ€μνμ§ μμ κ²½μ° λ μ½λ μ½μ λλ μμ μ κ±°μ ν©λλ€. MySQL μλ² 8.X μ΄ν λ²μ μ CHECK μ μ μ§μνμ§ μμ΅λλ€.
1
2
3
4
5
CHECK (쑰건)
--λλ
CONSTRAINT id CHECK (쑰건)
Leave a comment