TIL/𧬠DB
DBμ DBMS, κ·Έλ¦¬κ³ SQL λͺ λ Ήμ΄ λͺ¨μ
devussy
2023. 3. 12. 01:26
DB(DataBase)
μ¬λ¬ μ¬λλ€μ΄ 곡μ νκ³ μ¬μ©ν λͺ©μ μΌλ‘ ν΅ν© κ΄λ¦¬λλ λ°μ΄ν°λ€μ λͺ¨μ μ¦, κ΄λ ¨λ λ°μ΄ν°μ λͺ¨μ
λ°μ΄ν°λ² μ΄μ€μ μ μ 4κ°μ§
- Integrated data(ν΅ν© λ°μ΄ν°) : μ€λ³΅ μ΅μν, ν΅μ κ° κ°λ₯ν μ€λ³΅λ§ νμ©
- Shared data(곡μ λ°μ΄ν°) : μ¬λ¬ μ¬μ©μκ° ν¨κ» μμ , μ΄μ©ν μ μλ κ³΅μ© λ°μ΄ν°
- Operational data(μ΄μ λ°μ΄ν°) : μ‘°μ§ κΈ°λ₯μ μννκΈ° μν΄ λ°λμ νμν λ°μ΄ν°
- Stored data(μ μ₯ λ°μ΄ν°) : μ»΄ν¨ν°κ° μ κ·Όν μ μλ 맀체μ μ μ₯λ λ°μ΄ν°
νΉμ§
- Continuous evolution κ³μ λ³ν : insert, delete, update
- Real-time accessibility μ€μκ° μ κ·Όμ± : μ¬μ©μμ λ°μ΄ν° μꡬμ μ€μκ°μΌλ‘ μλ΅
- Concurrent sharing λμ 곡μ : μλ‘ λ€λ₯Έ λ°μ΄ν° λμ μ¬μ©, κ°μ λ°μ΄ν°μ λμ μ¬μ©
- Content reference λ΄μ© κΈ°λ° μ°Έκ³ : μ μ₯λ μ£Όμλ μμΉκ° μλ λ°μ΄ν°μ λ΄μ©, value(κ°)μΌλ‘ μ°Έμ‘°
ꡬμ±μμ
- external schema(μΈλΆ μ€ν€λ§) : κ°μΈ μ¬μ©μκ° μ κ·Όνλ DB
- conceptual schema(κ°λ μ€ν€λ§) : ν΅ν©λ μ‘°μ§ μ 체μ DB
- internal schema(λ΄λΆ μ€ν€λ§) : μ μ₯μ₯μΉμ μ μ₯μμ DB μ μ²΄κ° μ μ₯λλ λ°©λ² λͺ μΈ
⇒ DBλ 무μμΌλ‘ ꡬμ±λλ κ°?
ν μ΄λΈλ€λ‘ ꡬμ±λμ΄ μλ€.
ν μ΄λΈ(Table)
릴λ μ΄μ , μ€ν€λ§μ κ°μ λ»μΌλ‘, column(μ΄)κ³Ό row(ν)μΌλ‘ ꡬμ±λ 2μ°¨μ νμ νν
- ν row == λ μ½λ record == ν¬ν tuple μ΄ coliumn == μμ± attribute == νλ field
- ν μ΄λΈ == ν == μμ νμΌ
- ν == μΉΌλΌ(μ΄, 1μ€) + λ‘μ°(ν, μ¬λ¬μ€)
- μΉΌλΌ == λ²νΈ, μ΄λ¦, λμ΄, μ°λ½μ²
- λ‘μ° == 1, νκΈΈλ, 24, 010-1234-1234
μ£Όμν μ
- νμμ μΉΌλΌμ νμ€λ§ μ‘΄μ¬νλ€.
- νμμ λ‘μ°λ 0 ~ Nμ€ μ‘΄μ¬ν μ μλ€.
μΉ΄λλ리ν°(cardnality)
λ μ½λ(==ν)μ κ°μ
DBMS(DataBase Management System)
DBλ₯Ό κ΄λ¦¬νλ μμ€ν
- νμΌ μμ€ν μ λ¬Έμ (μ€λ³΅μ±, μ’ μμ±)λ₯Ό ν΄κ²°νκΈ° μν΄ μ μλ μννΈμ¨μ΄
- μ‘°μ§μ νμν λ°μ΄ν°λ₯Ό λ°μ΄ν°λ² μ΄μ€μ ν΅ν©νμ¬ μ μ₯νκ³ κ΄λ¦¬νλ€.
- μλ£μ ν΅ν©μ± μ¦μ§, λ°μ΄ν° μ κ·Όμ μ©μ΄
- μ₯μ : μ€λ³΅ μ΅μν, λ°μ΄ν° λ 립μ±
⇒ MySQLμ DBMSμ΄λ€.
DBMS μ£Όμ κΈ°λ₯
- definition facility μ μ κΈ°λ₯ : λ°μ΄ν°λ² μ΄μ€ ꡬ쑰λ₯Ό μ μνκ±°λ μμ κ°λ₯
- manipulation facility μ‘°μ κΈ°λ₯ : λ°μ΄ν°λ₯Ό μ½μ , μμ , μμ , κ²μνλ μ°μ°
- control facility μ μ΄ κΈ°λ₯ : λ°μ΄ν°λ₯Ό νμ μ ννκ³ μμ νκ² μ μ§
- λ°μ΄ν°μ λ¬΄κ²°μ± μ μ§, 보μ μ μ§, κΆν κ²μ¬, λ³ν μ μ΄, μ¬λ¬ μ¬μ©μ μ κ·Ό κ°λ₯
SQL
DBμκ² λͺ λ Ήμ λ΄λ¦΄ λ μ¬μ©λλ λͺ λ Ήμ΄
λͺ λ Ήμ΄ μ’ λ₯
- μ 체 λ°μ΄ν°λ² μ΄μ€ 리μ€ν
- SHOW DATABASES;
- νΉμ λ°μ΄ν°λ² μ΄μ€ μ ν, λ€λ₯Έλ§λ‘ νλ©΄ νΉμ ν΄λ(DB)λ‘ μ μ λͺ
λ Ήμ΄
- USE DBμ΄λ¦;
- EX : USE mysql;
- USE DBμ΄λ¦;
- νμ¬ μ μν΄ μλ DBμμ λͺ¨λ ν
μ΄λΈλ€μ 리μ€ν
- SHOW TABLES;
DB, ν μ΄λΈ, λ‘μ° λ³ μ‘°ν, μμ±, μμ , μμ λͺ λ Ήμ΄
κΈ°λ³Έμ μΈ SQL μ 리
μ’ λ₯ DB(λ°μ΄ν°λ² μ΄μ€/ν΄λ) TABLE(ν μ΄λΈ/μμ νμΌ) ROW(λ‘μ°/μμ νμΌμ ν ν)
μ‘°ν | SHOW DATABASES; | SHOW TABLES; SHOW TABLES LIKE 'ar%'DESC article; (ν ν μ΄λΈ μμ μλ μΉΌλΌλ€ μ‘°ν) |
SELECT id, regDate FROM article WHERE id >= 4 AND title LIKE 'μ %' ORDER BY id DESC LIMIT 3; |
μμ± | CREATE DATABASE a1; | CREATE TABLE article ( id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, regDate DATETIME NOT NULL, title VARCHAR(100) NOT NULL, body TEXT NOT NULL, PRIMARY KEY(id) ); |
INSERT INTO artile SET regDate = NOW(), title = 'μ λͺ©1', body = 'λ΄μ©1'; |
μμ | μμ | ALTER TABLE article ADD COLUMN hit INT(10); ALTER TABLE article MODIFY COLUMNhit INT(10) UNSIGNED NOT NULL; ALTER TABLE article CHANGE COLUMN hit hitNumber INT(10) UNSIGNED NOT NULL; ALTER TABLE article DROP COLUMN hit; ALTER TABLE article DROP INDEXPRIMARY; ALTER TABLE article ADD PRIMARYKEY(id); |
UPDATE article SET title = 'μΈκΈ°κΈ' WHERE id > 3; |
μμ | DROP DATABASE a1; | DROP TABLE article; | DELETE FROM article; |