SQL (Structured Query Language)

μœ€νƒœκ·œΒ·2023λ…„ 12μ›” 18일

01. SQL (Structured Query Language) μ‚΄νŽ΄λ³΄κΈ°

  • 1) SQL μ΄λž€?
    πŸ“Œ λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ μ‚¬μš©λ˜λŠ” 생성, μ‚½μž…, 쑰회 λͺ…령문을 SQL(Structured Query Language)이라고 ν•©λ‹ˆλ‹€.
    데이터λ₯Ό 아무리 많이 λͺ¨μ•„놓더라도 ν™œμš©ν•˜μ§€ μ•ŠμœΌλ©΄ κ°€μΉ˜κ°€ μ—†μŠ΅λ‹ˆλ‹€. 쑰건에 λ§žλŠ” 데이터λ₯Ό ν™œμš©ν•  수 μžˆμ–΄μ•Ό ν•˜κ³ , λŠμž„μ—†μ΄ λ³€ν•˜λŠ” λ‚΄μš©μ„ μ§€μ†μ μœΌλ‘œ μ‚½μž…, μˆ˜μ •, μ‚­μ œ, μ‘°νšŒκ°€ κ°€λŠ₯ν•΄μ•Όν•©λ‹ˆλ‹€. κ·ΈλŸ°μƒν™©μ—μ„œ 데이터λ₯Ό μ–΄λ–»κ²Œ 관리해야할 μ§€ κ³ λ―Όν•œ κ²°κ³Ό, λͺ¨λ“  데이터듀을 κ³΅ν†΅μ μœΌλ‘œ 관리할 수 μžˆλŠ” ν‘œμ€€ 언어인 SQL이 νƒ„μƒν•˜κ²Œ λ˜μ—ˆμŠ΅λ‹ˆλ‹€.
  • 2) SQL의 μ’…λ₯˜
    πŸ’‘ SQL의 μ’…λ₯˜
    • DDL (Data Definition Language)
    • DML (Data Manipulation Language)
    • DCL (Data Control Language)
    • TCL (Transaction Control Language)
  • 3) DDL (Data Definition Language)
    πŸ“Œ DDL(Data Definition Language)은 데이터λ₯Ό μ •μ˜ν•  λ•Œ μ‚¬μš©ν•˜λŠ” μ–Έμ–΄λ‘œ ν…Œμ΄λΈ”μ΄λ‚˜ λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό 생성, μˆ˜μ •, μ‚­μ œμ™€ 같은 ν–‰μœ„λ₯Ό ν•  λ•Œ μ‚¬μš©ν•©λ‹ˆλ‹€.
    CREATE
    DATABASE, TABLE, VIEW, INDEX 등을 생성할 λ•Œ μ‚¬μš©ν•©λ‹ˆλ‹€.
    CREATE DATABASE λ°μ΄ν„°λ² μ΄μŠ€λͺ…;
    CREATE TABLE ν…Œμ΄λΈ”λͺ…
    {
    컬럼λͺ… μ»¬λŸΌμ†μ„±
    }
    DROP
    DATABASE, TABLE, VIEW, INDEX 등을 μ‚­μ œν•  λ•Œ μ‚¬μš©ν•©λ‹ˆλ‹€.
    DROP DATABASE λ°μ΄ν„°λ² μ΄μŠ€λͺ…;
    DROP TABLE ν…Œμ΄λΈ”λͺ…;
    ALTER
    DATABASE, TABLE λ“±μ˜ 속성을 λ³€κ²½ν•  λ•Œ μ‚¬μš©ν•©λ‹ˆλ‹€.
    ALTER DATABASE λ°μ΄ν„°λ² μ΄μŠ€λͺ… 변경쑰건;
    ALTER TABLE ν…Œμ΄λΈ”λͺ… ADD 변경쑰건; -- ν…Œμ΄λΈ”μ— μƒˆλ‘œμš΄ μ»¬λŸΌμ„ μΆ”κ°€ν•©λ‹ˆλ‹€.
    ALTER TABLE ν…Œμ΄λΈ”λͺ… DROP 변경쑰건; -- ν…Œμ΄λΈ”μ—μ„œ μ»¬λŸΌμ„ μ‚­μ œν•©λ‹ˆλ‹€.
    ALTER TABLE ν…Œμ΄λΈ”λͺ… MODIFY 변경쑰건; -- ν…Œμ΄λΈ”μ˜ μ»¬λŸΌμ„ μˆ˜μ •ν•©λ‹ˆλ‹€.
    ALTER TABLE ν…Œμ΄λΈ”λͺ… RENAME 변경쑰건; -- ν…Œμ΄λΈ”μ˜ 이름을 λ³€κ²½ν•©λ‹ˆλ‹€.
    ...
    4) DML (Data Manipulation Language)
    πŸ“Œ
    DML(Data Manopulation Language)은 λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ 데이터λ₯Ό μ‘°μž‘ν•  λ•Œ μ‚¬μš©ν•˜λŠ” μ–Έμ–΄λ‘œ λ°μ΄ν„°μ˜ μ €μž₯, μ‚­μ œ, μˆ˜μ •, μ‘°νšŒμ™€ 같은 ν–‰μœ„λ₯Ό ν•©λ‹ˆλ‹€.
    SELECT
    일반적으둜 TABLEμ—μ„œ μ›ν•˜λŠ” 데이터듀을 μ‘°νšŒν•  λ•Œ μ‚¬μš©ν•©λ‹ˆλ‹€.
    πŸ”₯ DBλ₯Ό κ΄€λ¦¬ν•˜λ©΄μ„œ κ°€μž₯ 많이 μ‚¬μš©ν•˜λŠ” λͺ…λ Ήμ–΄ 이기도 ν•©λ‹ˆλ‹€!
    SELECT 컬럼λͺ©λ‘ FROM ν…Œμ΄λΈ”λͺ… [WHERE 쑰건];
    ​
    INSERT
    TABLE에 μƒˆλ‘œμš΄ 데이터듀을 μ‚½μž…ν•  λ•Œ μ‚¬μš©ν•©λ‹ˆλ‹€.
    INSERT INTo ν…Œμ΄λΈ”λͺ… (컬럼λͺ©λ‘) VALUES (κ°’λͺ©λ‘);
    ​
    DELETE
    TABLEμ—μ„œ νŠΉμ •ν•œ 쑰건에 λ§žλŠ” 데이터듀을 μ‚­μ œν•  λ•Œ μ‚¬μš©ν•©λ‹ˆλ‹€.
    WHERE 쑰건이 μ—†λ‹€λ©΄, λͺ¨λ“  데이터가 μ‚­μ œλ©λ‹ˆλ‹€.
    DELETE FROM ν…Œμ΄λΈ”λͺ… [WHERE 쑰건];
    ​
    UPDATE
    TABLEμ—μ„œ νŠΉμ •ν•œ 쑰건에 λ§žλŠ” 데이터듀을 μˆ˜μ •ν•  λ•Œ μ‚¬μš©ν•©λ‹ˆλ‹€.
    WHERE 쑰건이 μ—†λ‹€λ©΄, λͺ¨λ“  데이터가 μˆ˜μ •λ©λ‹ˆλ‹€.
    UPDATE ν…Œμ΄λΈ”λͺ… SET 컬럼 = κ°’ [WHERE 쑰건];
    5) DCL (Data Control Language)
    πŸ“Œ
    DCL(Data Control Language)은 λ°μ΄ν„°λ² μ΄μŠ€μ— λŒ€ν•œ κΆŒν•œκ³Ό κ΄€λ ¨λœ λ¬Έλ²•μœΌλ‘œ νŠΉμ • μœ μ €κ°€ DB에 μ ‘κ·Όν•  수 μžˆλŠ” κΆŒν•œμ„ μ„€μ •ν•  λ•Œ μ‚¬μš©ν•©λ‹ˆλ‹€.
    GRANT
    λ°μ΄ν„°λ² μ΄μŠ€μ˜ νŠΉμ •ν•œ μœ μ €μ—κ²Œ μ‚¬μš© κΆŒν•œμ„ λΆ€μ—¬ν•  λ•Œ μ‚¬μš©ν•©λ‹ˆλ‹€.
    κΆŒν•œμ—λŠ” SELECT, INSERT, UPDATE, DELETE λ“± λ‹€μ–‘ν•œ μ’…λ₯˜κ°€ μ‘΄μž¬ν•©λ‹ˆλ‹€.
    GRANT [κΆŒν•œ] ON 객체λͺ… TO μ‚¬μš©μž;
    ​
    REVOKE
    λ°μ΄ν„°λ² μ΄μŠ€μ˜ νŠΉμ •ν•œ μœ μ €μ—κ²Œ μ‚¬μš© κΆŒν•œμ„ μ·¨μ†Œν•  λ•Œ μ‚¬μš©ν•©λ‹ˆλ‹€.
    REVOKE [κΆŒν•œ] ON 객체λͺ… FROM μ‚¬μš©μž;
    6) TCL (Transaction Control Language)
    πŸ“Œ
    TCL(Transaction Control Language)은 λ°μ΄ν„°λ² μ΄μŠ€ λ‚΄μ˜ νŠΈλžœμž­μ…˜μ„ κ΄€λ¦¬ν•˜λŠ” λ¬Έλ²•μœΌλ‘œ, νŠΈλžœμž­μ…˜μ˜ μ‹œμž‘κ³Ό μ’…λ£Œ, 그리고 둀백을 μˆ˜ν–‰ν•  λ•Œ μ‚¬μš©ν•©λ‹ˆλ‹€.
    COMMIT
    λ°μ΄ν„°λ² μ΄μŠ€μ˜ μž‘μ—…μ΄ μ •μƒμ μœΌλ‘œ μ™„λ£Œλ˜μ—ˆμŒμ„ κ΄€λ¦¬μžμ—κ²Œ μ•Œλ €μ€„ λ•Œ μ‚¬μš©ν•©λ‹ˆλ‹€.
    πŸ’‘ νŠΈλžœμž­μ…˜μ˜ μƒμ„Έν•œ λ‚΄μš©μ€ λ‹€μŒ 주차에 배울 μ˜ˆμ •μ΄μ—μš”!
    START TRANSACTION;
    ...
    COMMIT;
    ​
    ROLLBACK
    λ°μ΄ν„°λ² μ΄μŠ€μ˜ μž‘μ—…μ΄ λΉ„μ •μƒμ μœΌλ‘œ μ™„λ£Œλ˜μ—ˆμŒμ„ κ΄€λ¦¬μžμ—κ²Œ μ•Œλ €μ€„ λ•Œ μ‚¬μš©ν•©λ‹ˆλ‹€.
    μž‘μ—… 쀑 였λ₯˜κ°€ λ°œμƒν•œ 경우 이λ₯Ό μ·¨μ†Œν•˜κ³ , 이전 μƒνƒœλ‘œ 되돌릴 λ•Œ μ‚¬μš©ν•©λ‹ˆλ‹€.
    πŸ’‘ νŠΈλžœμž­μ…˜μ˜ μƒμ„Έν•œ λ‚΄μš©μ€ λ‹€μŒ 주차에 배울 μ˜ˆμ •μ΄μ—μš”!
    START TRANSACTION;
    ...
    ROLLBACK;
  1. SQL (Structured Query Language)
    1) 데이터 베이슀 κΈ°λ³Έ κ°œλ…
    λ°μ΄ν„°λ² μ΄μŠ€λŠ” 맀우 κ³ λ„ν™”λœ μ—‘μ…€μž…λ‹ˆλ‹€.

μ—‘μ…€ 파일 ν•˜λ‚˜κ°€ "λ°μ΄ν„°λ² μ΄μŠ€"라면,
μ—‘μ…€ μ‹œνŠΈ ν•˜λ‚˜λŠ” "ν…Œμ΄λΈ”"이라고 λΆ€λ₯΄κ³ ,
μ—‘μ…€ ν–‰ ν•˜λ‚˜λŠ” "데이터"라고 λΆ€λ¦…λ‹ˆλ‹€.

profile
λκΉŒμ§€ κ°€μž

0개의 λŒ“κΈ€