μΌ | μ | ν | μ | λͺ© | κΈ | ν |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- λ°μ΄ν° ν΅μ
- λ°μ΄ν°λ² μ΄μ€
- λ¬μ€νΈ νλ‘κ·Έλλ° κ³΅μ κ°μ΄λ
- μ€λΌν΄DB
- νμ΄μ¬ μ²Όλ¦°μ§
- λ¬μ€νΈ
- data communication
- λ°±μ€ λ¬μ€νΈ
- μλ° κ°λ
- μ΄μ체μ
- νμ΄μ¬ μκ³ λ¦¬μ¦
- νμ΄μ¬
- ubuntu
- OS
- μλ°
- java
- μλ° κΈ°μ΄
- μ€λΌν΄
- Operating System
- νμ΄μ¬ μ±λ¦°μ§
- λ¬μ€νΈ μμ
- C
- μκ³ λ¦¬μ¦
- Reversing
- Python challenge
- Rust
- λ°±μ€
- Python
- μ°λΆν¬
- Database
Archives
- Today
- Total
IT’s Portfolio
[Lecture] DataBase - Day 7 λ³Έλ¬Έ
728x90
λ°μν
π₯ DataBase - Day 7
3.2 λ°μ΄ν°μ κ²μ :
SELECT
μ¬λ¬ ν μ΄λΈμ λν μ‘°μΈ κ²μ
- μ‘°μΈ κ²μ : μ¬λ¬ κ°μ ν μ΄λΈμ μ°κ²°νμ¬ λ°μ΄ν°λ₯Ό κ²μνλ κ²
- μ‘°μΈ μμ± : μ‘°μΈ κ²μμ μν΄ ν
μ΄λΈμ μ°κ²°ν΄μ£Όλ μμ±
- ν μ΄λΈμ μ°κ²°νλ €λ©΄, μ‘°μΈ μμ±μ μ΄λ¦μ λ¬λΌλ λμ§λ§ λλ©μΈμ λ°λμ κ°μμΌ ν¨
- ν μ΄λΈμ κ΄κ³λ₯Ό λνλ΄λ μΈλν€λ₯Ό μ‘°μΈ μμ±μΌλ‘ μ΄μ©
FROM
μ μ κ²μμ νμν λͺ¨λ ν μ΄λΈμ λμ΄WHERE
μ μλ μ‘°μΈ μμ±μ κ°μ΄ κ°μμΌ ν¨μ μλ―Ένλ μ‘°μΈ μ‘°κ±΄μ μ μ- μ΄λ¦μ΄ κ°μ μμ±μ΄ μλ‘ λ€λ₯Έ ν μ΄λΈμ μ‘΄μ¬ν μλ μκΈ°μ μμ±μ μ΄λ¦ μμ ν΄λΉ μμ±μ΄ μμλ ν μ΄λΈμ μ΄λ¦μ νμν΄μ£Όλ κ²μ΄ μ’μ
FROM
μ μμ ν μ΄λΈμ μ΄λ¦μ λμ νλ λ¨μν λ³λͺ μ μ μνμ¬ μ§μλ¬Έμ μμ±νλ κ²λ μ’μ
SELECT μμ±_리μ€νΈ FROM ν μ΄λΈ1 INNER JOIN ν μ΄λΈ2 ON μ‘°μΈμ‘°κ±΄ [ WHERE κ²μ쑰건 ]
- λλ± μ‘°μΈ κ²μ
- μμ μ€λͺ ν μ‘°μΈ κ²μμ μ‘°μΈ μμ±μ κ°μ΄ κ°μ ννμ λν΄μλ§ κ²μμ μννλ―λ‘ λλ± μ‘°μΈμ ν΄λΉν¨
- νμ€ SQLμμλ
INNER JOIN
κ³ΌON
ν€μλλ₯Ό μ΄μ©ν΄ μμ±νλ λ°©λ²λ μ 곡ν¨
SELECT μμ±_리μ€νΈ FROM ν μ΄λΈ1 LEFT | RIGHT | FULL OUTER JOIN ν μ΄λΈ2 ON μ‘°μΈ μ‘°κ±΄ [ WHERE κ²μ쑰건 ];
- μΈλΆ μ‘°μΈ κ²μ
- μ‘°μΈ μ‘°κ±΄μ λ§μ‘±νμ§ μλ ννμ λν΄μλ κ²μμ μν
OUTER JOIN
κ³ΌON
ν€μλλ₯Ό μ΄μ©- λͺ¨λ ννμ κ²μ λμμΌλ‘ νλ ν μ΄λΈμ΄ 무μμ΄λμ λ°λΌ μΌμͺ½ μΈλΆ μ‘°μΈ, μ€λ₯Έμͺ½ μΈλΆ μ‘°μΈ, μμ μΈλΆ μ‘°μΈμΌλ‘ λΆλ₯
λΆμ μ§μλ¬Έμ μ΄μ©ν κ²μ
SELECT
λ¬Έ μμ λ λ€λ₯ΈSELECT
λ¬Έμ ν¬ν¨νλ μ§μμμ μ§μλ¬Έ | μ£Ό μ§μλ¬Έ (main query)
: λ€λ₯ΈSELECT
λ¬Έμ ν¬ν¨νλSELECT
λ¬ΈλΆμ μ§μλ¬Έ | μλΈ μ§μλ¬Έ (sub query)
: λ€λ₯ΈSELECT
λ¬Έ μμ λ€μ΄ μλSELECT
λ¬Έ- κ΄νΈλ‘ λ¬Άμ΄ μμ±
ORDER BY
μ μ¬μ©ν μ μμ- λ¨μΌ ν λΆμ μ§μλ¬Έ : νλμ νμ κ²°κ³Όλ‘ λ°ν
- λ€μ€ ν λΆμ μ§μλ¬Έ : νλ μ΄μμ νμ κ²°κ³Όλ‘ λ°ν
- λΆμ μ§μλ¬Έ λ¨Όμ μν ν, κ·Έ κ²°κ³Όλ₯Ό μ΄μ©ν΄ μμ μ§μλ¬Έ μν
- λΆμ μ§μλ¬Έκ³Ό μμ μ§μλ¬Έμ μ°κ²°νλ μ°μ°μ νμ
- λ¨μΌ ν λΆμ μ§μλ¬Έ : μΌλ° λΉκ΅ μ°μ°μ μ¬μ© κ°λ₯
- $=, <>, >, <, >=, <=$
- λ€μ€ ν λΆμ μ§μλ¬Έ : μΌλ° λΉκ΅ μ°μ°μ μ¬μ© λΆκ°λ₯
IN
: λΆμ μ§μλ¬Έμ κ²°κ³Ό κ° μ€ μΌμΉνλ κ²μ΄ μμΌλ©΄ κ²μ μ‘°κ±΄μ΄ μ°ΈNOT IN
: λΆμ μ§μλ¬Έμ κ²°κ³Ό κ° μ€ μΌμΉνλ κ²μ΄ μμΌλ©΄ κ²μ μ‘°κ±΄μ΄ μ°ΈEXISTS
: λΆμ μ§μλ¬Έμ κ²°κ³Ό κ°μ΄ νλλΌλ μ‘΄μ¬νλ©΄ κ²μ μ‘°κ±΄μ΄ μ°ΈNOT EXISTS
: λΆμ μ§μλ¬Έμ κ²°κ³Ό κ°μ΄ νλλ μ‘΄μ¬νμ§ μμΌλ©΄ κ²μ μ‘°κ±΄μ΄ μ°ΈALL
: λΆμ μ§μλ¬Έμ κ²°κ³Ό κ° λͺ¨λμ λΉκ΅ν κ²°κ³Όκ° μ°Έμ΄λ©΄ κ²μ 쑰건μ λ§μ‘±(λΉκ΅ μ°μ°μμ ν¨κ» μ¬μ©)ANY or SOME
: λΆμ μ§μλ¬Έμ κ²°κ³Ό κ° μ€ νλλΌλ λΉκ΅ν κ²°κ³Όκ° μ°Έμ΄λ©΄ κ²μ 쑰건μ λ§μ‘±(λΉκ΅ μ°μ°μμ ν¨κ» μ¬μ©)
- λ¨μΌ ν λΆμ μ§μλ¬Έ : μΌλ° λΉκ΅ μ°μ°μ μ¬μ© κ°λ₯
3.3 λ°μ΄ν°μ μ½μ :
INSERT
- λ°μ΄ν° μ§μ μ½μ
INSERT INTO ν μ΄λΈ_μ΄λ¦[(μμ±_리μ€νΈ)] VALUES (μμ±κ°_리μ€νΈ);
- ν μ΄λΈμ ννμ μ§μ μ½μ
INTO
μ μ μμ± μ΄λ¦κ³ΌVALUES
μ μ μμ± κ°μ μμλλ‘ μΌλμΌ λμλκ³ κ°μλ κ°μμΌ ν¨- μμ± μ΄λ¦μ 리μ€νΈλ μλ΅ν μ μλλ°, μλ΅ν κ²½μ°μλ ν
μ΄λΈμ μ μν λ μ§μ ν μμ±μ μμλλ‘
VALUES
μ μ μμ± κ°μ΄ μ½μ λ¨
- λΆμ μ§μλ¬Έμ μ΄μ©ν λ°μ΄ν° μ½μ
INSERT INTO ν μ΄λΈ_μ΄λ¦[(μμ±_리μ€νΈ)] SELECT λ¬Έ;
SELECT
λ¬Έμ μ΄μ©ν΄ λ€λ₯Έ ν μ΄λΈμμ κ²μν λ°μ΄ν°λ₯Ό ννλ‘ μ½μ
- λ°μ΄ν° μ§μ μ½μ
3.4 λ°μ΄ν°μ μμ :
UPDATE
UPDATE ν μ΄λΈ_μ΄λ¦ SET μμ±_μ΄λ¦1 = κ°1, μμ±_μ΄λ¦2 = κ°2, ... [WHERE 쑰건];
- ν μ΄λΈμ μ μ₯λ ννμμ νΉμ μμ±μ κ°μ μμ
SET
ν€μλ λ€μμ κ°μ μ΄λ»κ² μμ ν κ²μΈμ§ μ§μ WHERE
μ μ μ μλ 쑰건μ λ§μ‘±νλ ννλ§ μμ± κ°μ μμ - μλ΅ μ ν μ΄λΈμ μ‘΄μ¬νλ λͺ¨λ ννμ λμμΌλ‘ νμ¬ μμ
- λΆμ μ§μλ¬Έ ν¬ν¨ κ°λ₯
3.5 λ°μ΄ν°μ μμ :
DELETE
DELETE FROM ν μ΄λΈ_μ΄λ¦ [WHERE 쑰건];
- ν μ΄λΈμ μ μ₯λ λ°μ΄ν° μμ
WHERE
μ μ μ μν 쑰건μ λ§μ‘±νλ ννλ§ μμ - μλ΅ μ ν
μ΄λΈμ μ‘΄μ¬νλ λͺ¨λ ννμ μμ νμ¬ λΉ ν
μ΄λΈμ΄ λ¨
DROP TABLE
λ¬ΈμΌλ‘ ν μ΄λΈ μ체λ₯Ό μ κ±°νλ κ²κ³Όλ λ€λ¦
- μλ΅ μ ν
μ΄λΈμ μ‘΄μ¬νλ λͺ¨λ ννμ μμ νμ¬ λΉ ν
μ΄λΈμ΄ λ¨
- λΆμ μ§μλ¬Έ ν¬ν¨ κ°λ₯
[04] λ·°
- 4.1
λ·°(view)
μ κ°λ - λ€λ₯Έ ν
μ΄λΈμ κΈ°λ°μΌλ‘ λ§λ€μ΄μ§
κ°μ ν μ΄λΈ(virtual table)
- λ°μ΄ν°λ₯Ό μ€μ λ‘ μ μ₯νκ³ μμ§ μκ³ λ Όλ¦¬μ μΌλ‘ μ‘΄μ¬ν¨
- μΌλ° ν μ΄λΈκ³Ό λμΌν λ°©λ²μΌλ‘ μ¬μ©
- λ·°λ₯Ό ν΅ν΄ κΈ°λ³Έ ν
μ΄λΈμ λ΄μ©μ μ½κ² κ²μν μλ μμ§λ§ κΈ°λ³Έ ν
μ΄λΈμ λ΄μ©μ λ°κΎΈλ μμ
μ μ νμ μΌλ‘ μ΄λ£¨μ΄μ§
κΈ°λ³Έ ν μ΄λΈ(base table)
: λ·°λ₯Ό λ§λλ λ° κΈ°λ°μ΄ λλ 물리μ μΈ ν μ΄λΈ
- λ€λ₯Έ λ·°λ₯Ό κΈ°λ°μΌλ‘ μλ‘μ΄ λ·°λ₯Ό λ§λ€ μ μμ
- λ€λ₯Έ ν
μ΄λΈμ κΈ°λ°μΌλ‘ λ§λ€μ΄μ§
- 4.2 λ·°μ μμ±
CREATE VIEW λ·°_μ΄λ¦[(μμ±_리μ€νΈ)] AS SELECT λ¬Έ [WITH CHECK OPTION];
CREATE VIEW
λͺ λ Ήμ΄μ ν¨κ» μλ‘ μμ±ν λ·°μ μ΄λ¦μ μ μν ν, λ·°λ₯Ό ꡬμ±νλ μμ±μ μ΄λ¦μ κ΄νΈ μμ λμ΄- μμ± λ¦¬μ€νΈ μλ΅ μ
SELECT
μ μ λμ΄λ μμ±μ μ΄λ¦μ λ·°μμλ κ·Έλλ‘ μ¬μ©ν¨
- μμ± λ¦¬μ€νΈ μλ΅ μ
AS
ν€μλμ ν¨κ» κΈ°λ³Έ ν μ΄λΈμ λνSELECT
λ¬Έμ μ μSELECT
λ¬Έμ μμ±νκ³ μ νλ λ·°μ μ μλ₯Ό λ΄κ³ μλλ°,ORDER BY
λ₯Ό μ¬μ©ν μ μλ€λ μ λ§ μ μΈνλ©΄ μΌλ°SELECT
λ¬Έκ³Ό λμΌ- μ€λΌν΄κ³Ό κ°μ μΌλΆ DBMSμμλ
ORDER BY
μ¬μ©μ νκ°νκΈ°λ ν¨
WITH CHECK OPTION
: λ·°μ μ½μ μ΄λ μμ μ°μ°μ ν λSELECT
λ¬ΈμμWHERE
ν€μλμ ν¨κ» μ μν λ·°μ μ μ 쑰건μ μλ°νλ©΄ μνλμ§ μλλ‘ νλ μ μ½μ‘°κ±΄ μλ―Έ
- 4.3 λ·°μ νμ©
SELECT
- μΌλ° ν
μ΄λΈμ²λΌ μνλ λ°μ΄ν°λ₯Ό κ²μν μ μμ
- λ·°μ λν
SELECT
λ¬Έμ΄ λ΄λΆμ μΌλ‘λ κΈ°λ³Έ ν μ΄λΈμ λνSELECT
λ¬ΈμΌλ‘ λ³νλμ΄ μνλ¨
- λ·°μ λν
- κ²μ μ°μ°μ λͺ¨λ λ·°μ μν κ°λ₯
- μΌλ° ν
μ΄λΈμ²λΌ μνλ λ°μ΄ν°λ₯Ό κ²μν μ μμ
INSERT
,UPDATE
,DELETE
- λ·°μ λν μ½μ
, μμ , μμ μ°μ° κ°λ₯
- κΈ°λ³Έ ν μ΄λΈμ μνλκΈ° λλ¬Έμ κ²°κ³Όμ μΌλ‘ κΈ°λ³Έ ν μ΄λΈμ΄ λ³ν¨
- λ·°μ λν μ°μ°μ΄ μ νμ μ
- λ³κ²½ κ°λ₯ν λ·° vs λ³κ²½ λΆκ°λ₯ν λ·°
- λ³κ²½ λΆκ°λ₯ν λ·°μ νΉμ§
- κΈ°λ³Έ ν μ΄λΈμ κΈ°λ³Έν€λ₯Ό ꡬμ±νλ μμ±μ΄ ν¬ν¨λμ΄ μμ§ μμ λ·°
- κΈ°λ³Έ ν
μ΄λΈμμ
NOT NULL
λ‘ μ§μ λ μμ±μ΄ ν¬ν¨λμ΄ μμ§ μλ λ·° - κΈ°λ³Έ ν μ΄λΈμ μλ λ΄μ©μ΄ μλλΌ μ§κ³ ν¨μλ‘ μλ‘ κ³μ°λ λ΄μ©μ ν¬ν¨νκ³ μλ λ·°
DISTINCT
ν€μλλ₯Ό ν¬ν¨νμ¬ μ μν λ·°GROUP BY
μ μ ν¬ν¨νμ¬ μ μν λ·°- μ¬λ¬ κ°μ ν μ΄λΈμ μ‘°μΈνμ¬ μ μν λ·°
- λ·°μ λν μ½μ
, μμ , μμ μ°μ° κ°λ₯
- λ·°μ μ₯μ
- μ§μλ¬Έμ μ’ λ μ½κ² μμ±ν μ μμ
GROUP BY
, μ§κ³ ν¨μ, μ‘°μΈ λ±μ μ΄μ©ν΄ 미리 λ·°λ₯Ό λ§λ€μ΄λμΌλ©΄, 볡μ‘ν SQL λ¬Έμ μμ±νμ§ μμλSELECT
μ κ³ΌFROM
μ λ§μΌλ‘ μνλ λ°μ΄ν°λ₯Ό κ²μν μ μμ
- λ°μ΄ν°μ 보μ μ μ§μ λμμ΄ λ¨
- μμ μκ² μ 곡λ λ·°λ₯Ό ν΅ν΄μλ§ λ°μ΄ν°μ μ κ·Όνλλ‘ κΆν μ€μ κ°λ₯
- λ°μ΄ν°λ₯Ό μ’ λ νΈλ¦¬νκ² κ΄λ¦¬ν μ μμ
- μ 곡λ λ·°μ ν¬ν¨λμ§ μμ κΈ°λ³Έ ν μ΄λΈμ λ€λ₯Έ λΆλΆμ μ¬μ©μκ° μ κ²½ μΈ νμ μμ
- μ§μλ¬Έμ μ’ λ μ½κ² μμ±ν μ μμ
- 4.4 λ·°μ μμ
DROP VIEW λ·°_μ΄λ¦;
- λ·°λ₯Ό μμ νλλΌλ κΈ°λ³Έ ν μ΄λΈμ μν₯μ λ°μ§ μμ
- μμ ν λ·°λ₯Ό μ°Έμ‘°νλ μ μ½μ‘°κ±΄μ΄ μ‘΄μ¬
- λ·° μμ κ° μνλμ§ μμ
- κ΄λ ¨λ μ μ½μ‘°κ±΄ λ¨Όμ μμ
[05] μ½μ SQL
5.1 μ½μ SQLμ κ°λ κ³Ό νΉμ§
μ½μ SQL(ESQL; Embedded SQL)
- νλ‘κ·Έλλ° μΈμ΄λ‘ μμ±λ μμ© νλ‘κ·Έλ¨ μμ μ½μ νμ¬ μ¬μ©νλ SQL λ¬Έ
- μ£Όμ νΉμ§
- μ½μ SQL λ¬Έμ νλ‘κ·Έλ¨ μμμ μΌλ° λͺ λ Ήλ¬Έμ΄ μμΉν μ μλ κ³³μ΄λ©΄ μ΄λλ μ½μ ν μ μμ
- νλ‘κ·Έλ¨ μμ μΌλ° λͺ λ Ήλ¬Έκ³Ό ꡬλ³νκΈ° μν΄ μ½μ SQL λ¬Έ μμ EXEC SQLμ λΆμ
- νλ‘κ·Έλ¨μ μ μΈλ μΌλ° λ³μλ₯Ό μ½μ
SQL λ¬Έμμ μ¬μ© κ°λ₯
- λ¨, SQL λ¬Έμμ μΌλ° λ³μλ₯Ό μ¬μ©ν λλ μμ
:
μ λΆμ¬ ν μ΄λΈ μ΄λ¦μ΄λ μμ±μ μ΄λ¦κ³Ό ꡬλΆν¨
- λ¨, SQL λ¬Έμμ μΌλ° λ³μλ₯Ό μ¬μ©ν λλ μμ
컀μ(cursor)
- μν κ²°κ³Όλ‘ λ°νλ μ¬λ¬ νμ ν λ²μ νλμ© κ°λ¦¬ν€λ ν¬μΈν°
- μ¬λ¬ κ°μ νμ λ°ννλ SELECT λ¬Έμ νλ‘κ·Έλ¨μμ μ¬μ©ν λ νμ
5.2 컀μκ° νμ μλ μ½μ SQL
- νΉλ³ν κ²°κ³Ό ν
μ΄λΈμ λ°ννμ§ μλ
CREATE TABLE
λ¬Έ,INSERT
λ¬Έ,DELETE
λ¬Έ,UPDATE
λ¬Έ, κ²°κ³Όλ‘ ν νλλ§ λ°ννλSELETE
λ¬Έμ 컀μκ° νμ μμ
int main() { exec sql begin declare section; char p_no[4], p_name[21]; int price; exec sql end declare section; printf("μ νλ²νΈ μ λ ₯: "); scanf("%s", p_no); exec sql select μ νλͺ , λ¨κ° into :p_name, :price from μ ν where μ νλ²νΈ = :p_no; printf("\n μ νλͺ = %s", p_name); printf("\n λ¨κ° = %d", price); return 0; }
- μ λ ₯λ μ νλ²νΈμ ν΄λΉλλ μ νλͺ κ³Ό λ¨κ°λ₯Ό κ²μνλ νλ‘κ·Έλ¨
BEGIN DECLARE SECTION
λ¬Έμ₯κ³ΌEND DECLARE SECTION
λ¬Έμ₯ μ¬μ΄μ μ½μ SQL λ¬Έμμ μ¬μ©ν λ³μ 미리 μ μΈ- μ½μ
SQL λ¬Έμ μμ
EXEC SQL
μ λΆμ¬μ μΌλ° λͺ λ Ήμ΄μ ꡬλΆν¨
- νΉλ³ν κ²°κ³Ό ν
μ΄λΈμ λ°ννμ§ μλ
5.3 컀μκ° νμν μ½μ SQL
exec sql declare 컀μ_μ΄λ¦ cursor for select λ¬Έ;
- 컀μλ₯Ό μ μΈνλ μ½μ
SQL λ¬Έ
- 컀μλ₯Ό μ¬μ©νκΈ° μ μ 컀μμ μ΄λ¦κ³Ό 컀μκ° νμν SELECT λ¬Έμ μ μΈ
exec sql open 컀μ_μ΄λ¦;
- 컀μμ μ°κ²°λ SELECT λ¬Έμ μ€ννλ μ½μ SQL λ¬Έ
exec sql fetch 컀μ_μ΄λ¦ into λ³μ_리μ€νΈ;
- 컀μλ₯Ό μ΄λμν€λ μ½μ
SQL λ¬Έ
- 컀μλ₯Ό μ΄λνμ¬ μ²λ¦¬ν λ€μ νμ κ°λ¦¬ν€λλ‘ νκ³ , 컀μκ° κ°λ¦¬ν€λ νμμ μμ± κ°μ κ°μ Έμ λ³μμ μ μ₯μν΄
- κ²°κ³Ό ν μ΄λΈμλ μ¬λ¬ νμ΄ μ‘΄μ¬νλ―λ‘ FETCH λ¬Έμ μ¬λ¬ λ² μνν΄μΌ ν¨
exec sql close 컀μ_μ΄λ¦;
- 컀μμ μ¬μ©μ μ’ λ£νλ μ½μ SQL λ¬Έ
- 컀μλ₯Ό μ μΈνλ μ½μ
SQL λ¬Έ
728x90
λ°μν
'Development Study' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Lecture] DataBase - Day 8 (0) | 2023.05.15 |
---|---|
[Lecture] Data Communication - Day 8 (0) | 2023.05.14 |
[Lecture] Operating System - Mid Summary (0) | 2023.04.23 |
[Lecture] Operating System with Ubuntu - Day 6 (0) | 2023.04.23 |
[Lecture] DataBase - Mid Summary (0) | 2023.04.22 |
Comments