1. μ€λΌν΄ μ‘°ν νλ‘μμ λ?
μ€λΌν΄ μ‘°ν νλ‘μμ λ λ°μ΄ν°λ² μ΄μ€μμ νΉμ 쑰건μ λ°λΌ λ°μ΄ν°λ₯Ό κ²μνμ¬ κ²°κ³Όλ₯Ό λ°ννλ νλ‘κ·Έλ¨ λ¨μμ λλ€. νλ‘μμ λ λ°μ΄ν°λ² μ΄μ€μ μ μ₯λλ©° νμν κ²½μ° νΈμΆνμ¬ μ¬μ©ν μ μμ΅λλ€. μ΄λ₯Ό ν΅ν΄ λ°λ³΅μ μ΄κ³ 볡μ‘ν μ‘°ν μμ μ μΌκ΄μ μΌλ‘ μ²λ¦¬ν μ μμΌλ©°, λ°μ΄ν°μ μ ν©μ±κ³Ό 보μμ μ μ§νκΈ° μν΄ μ¬μ©λ©λλ€.
μ‘°ν νλ‘μμ λ SQL(Structured Query Language) λ¬Έμ μ¬μ©νμ¬ μνλ λ°μ΄ν°λ₯Ό κ°μ Έμ΅λλ€. μ΄λ μ¬μ©λλ 쿼리λ SELECT λ¬Έμ μ€μ¬μΌλ‘ 쑰건μ , μ λ ¬, κ·Έλ£Ήν λ±κ³Ό ν¨κ» μ¬μ©λ μ μμ΅λλ€. νλ‘μμ λ μΌλ ¨μ μ μ°¨μ λ°λΌ λ°μ΄ν°λ₯Ό μ²λ¦¬νκ³ κ²°κ³Όλ₯Ό λ°ννλλ°, μ΄λ κ² μ μ°¨μ μΈ λ‘μ§μ ν¬ν¨ν νλ‘μμ λ₯Ό μ¬μ©νλ©΄ ν¨μ¨μ μΈ λ°μ΄ν° μ²λ¦¬κ° κ°λ₯ν©λλ€.
λν, μ‘°ν νλ‘μμ λ λ°μ΄ν°λ² μ΄μ€ λ΄μ λ€μν ν μ΄λΈκ³Ό κ΄κ³λ₯Ό νμ©νμ¬ λ³΅μ‘ν μ°μ°κ³Ό 쑰건 μ²λ¦¬λ₯Ό μνν μ μμ΅λλ€. μ΄λ₯Ό ν΅ν΄ μ¬μ©μλ νλ‘μμ λ₯Ό νΈμΆνμ¬ μνλ κ²°κ³Όλ₯Ό μ»μ μ μμΌλ©°, μ¬λ¬ ν μ΄λΈ κ°μ μ‘°μΈ μ°μ° λ±μ μ§μ μνν νμ μμ΄ κ°νΈνκ² λ°μ΄ν°λ₯Ό μ‘°νν μ μμ΅λλ€.
μ‘°ν νλ‘μμ λ μΌμ’ μ μ μ₯ νλ‘μμ λ‘, λ°λ³΅μ μΈ μμ μ μλννκ³ μ€λ³΅λ μ½λλ₯Ό νΌνλ©΄μ ν¨μ¨μ μΈ λ°μ΄ν° κ²μμ κ°λ₯νκ² ν©λλ€. λ°λΌμ λ°μ΄ν°λ² μ΄μ€μ μ±λ₯ ν₯μκ³Ό κ°λ°μμ μμ ν¨μ¨μ± μ¦λμ ν° μν₯μ λ―ΈμΉλ μ€μν κ°λ μ λλ€.
2. μ‘°ν νλ‘μμ μ κ΅¬μ± μμ
μ‘°ν νλ‘μμ λ λ€μκ³Ό κ°μ κ΅¬μ± μμλ‘ μ΄λ£¨μ΄μ Έ μμ΅λλ€:
2.1 μ λ ₯ 맀κ°λ³μ
μ‘°ν νλ‘μμ λ λμ μΌλ‘ λ°μ΄ν°λ₯Ό κ²μνκΈ° μν΄ μ λ ₯ 맀κ°λ³μλ₯Ό μ¬μ©ν μ μμ΅λλ€. μ΄ λ§€κ°λ³μλ νλ‘μμ λ₯Ό νΈμΆν λ μ λ¬λλ κ°μΌλ‘, κ²μ 쑰건μ νμ©λ μ μμ΅λλ€. μλ₯Ό λ€μ΄, νΉμ ν 쑰건μ λ§λ κ³ κ° μ 보λ₯Ό κ²μνκΈ° μν΄ κ³ κ°μ μ΄λ¦, λμ΄, μ±λ³ λ±μ κ°μ μ λ ₯ 맀κ°λ³μλ‘ λ°μ μ μμ΅λλ€.
2.2 쿼리
μ‘°ν νλ‘μμ λ SQL λ¬Έμ μ¬μ©νμ¬ λ°μ΄ν°λ₯Ό κ²μν©λλ€. νλ‘μμ λ΄μλ μνλ λ°μ΄ν°λ₯Ό κ°μ Έμ€κΈ° μν SELECT λ¬Έμ΄ ν¬ν¨λμ΄μΌ ν©λλ€. SELECT λ¬Έμ ν μ΄λΈ λλ λ·°μ λν μ‘°ν 쑰건μ λͺ μνκ³ , νλλ₯Ό μ ννμ¬ κ²°κ³Όλ₯Ό λ°νν©λλ€. νλ‘μμ μ λͺ©μ μ λ°λΌ 볡μ‘ν 쑰건μ , μ λ ¬, κ·Έλ£Ήν λ±μ ν¬ν¨ν μ μμ΅λλ€.
2.3 μΆλ ₯ 맀κ°λ³μ
μ‘°ν νλ‘μμ λ λ°μ΄ν° κ²μ κ²°κ³Όλ₯Ό λ°ννκΈ° μν΄ μΆλ ₯ 맀κ°λ³μλ₯Ό μ¬μ©ν μ μμ΅λλ€. μ΄ λ§€κ°λ³μλ νλ‘μμ κ° μ€νλκ³ κ²°κ³Όκ° λ°νλ λ κ°μ μ μ₯νκΈ° μν΄ μ¬μ©λ©λλ€. κ²°κ³Ό κ°μ νμκ³Ό ν¬κΈ°λ νλ‘μμ λ₯Ό μμ±ν λ μ μλμ΄μΌ ν©λλ€. μλ₯Ό λ€μ΄, κ³ κ°μ μ΄λ¦, λμ΄, μ±λ³ λ±μ μ 보λ₯Ό μΆλ ₯ 맀κ°λ³μλ‘ μ€μ νμ¬ νλ‘μμ κ° νΈμΆλ λ μ΄λ¬ν μ 보λ₯Ό λ°νν μ μμ΅λλ€.
2.4 μμΈ μ²λ¦¬
μ‘°ν νλ‘μμ λ λ°μ΄ν° κ²μ μ μμΈ μν©μ μ²λ¦¬ν μ μλ κΈ°λ₯μ μ 곡ν΄μΌ ν©λλ€. μλ₯Ό λ€μ΄, λ°μ΄ν°κ° μ‘΄μ¬νμ§ μμ κ²½μ° λλ κ²μ μ‘°κ±΄μ΄ μλͺ»λ κ²½μ°μλ ν΄λΉ μν©μ μ²λ¦¬νκ³ μμΈλ₯Ό λ°μμν¬ μ μμ΅λλ€. μ΄λ₯Ό μν΄μλ μμΈ μ²λ¦¬ λ¬Έμ₯μ ν¬ν¨νμ¬ νλ‘μμ λ₯Ό μμ±ν΄μΌ ν©λλ€.
μ‘°ν νλ‘μμ λ μ΄λ¬ν κ΅¬μ± μμλ€μ μ‘°ν©νμ¬ λ°μ΄ν°λ² μ΄μ€μμ μνλ λ°μ΄ν°λ₯Ό κ²μνκ³ κ²°κ³Όλ₯Ό λ°ννλ μμ μ μνν©λλ€. μ΄λ₯Ό ν΅ν΄ κ°λ°μλ μ¬μ¬μ© κ°λ₯ν μ‘°ν λ‘μ§μ μμ±νκ³ λ°μ΄ν° κ²μμ ν¨μ¨μ μΌλ‘ μνν μ μμ΅λλ€.
3. μ‘°ν νλ‘μμ μ μμ± λ°©λ²
μ‘°ν νλ‘μμ λ₯Ό μμ±νκΈ° μν΄μλ λ€μμ λ¨κ³λ₯Ό λ°λ₯Ό μ μμ΅λλ€:
3.1 νλ‘μμ μμ±
λ¨Όμ , λ°μ΄ν°λ² μ΄μ€ λ΄μ νλ‘μμ λ₯Ό μμ±ν΄μΌ ν©λλ€. μ΄λ₯Ό μν΄ CREATE PROCEDURE
λ¬Έμ μ¬μ©ν μ μμ΅λλ€. νλ‘μμ μ μ΄λ¦κ³Ό 맀κ°λ³μ, 쿼리 λ±μ μ μν΄μΌ ν©λλ€. μλ₯Ό λ€μ΄, GET_CUSTOMER_INFO
λΌλ μ΄λ¦μ νλ‘μμ λ₯Ό μμ±νκ³ μ΄λ¦, λμ΄, μ±λ³μ μ
λ ₯ 맀κ°λ³μλ‘ μ¬μ©νμ¬ νΉμ κ³ κ° μ 보λ₯Ό κ²μνλ νλ‘μμ λ₯Ό μμ±ν μ μμ΅λλ€.
3.2 μ λ ₯ 맀κ°λ³μ μ μ
νλ‘μμ λ΄μλ νμν μ
λ ₯ 맀κ°λ³μλ₯Ό μ μν΄μΌ ν©λλ€. μ
λ ₯ 맀κ°λ³μλ νλ‘μμ νΈμΆ μ μ λ¬λλ κ°μΌλ‘, λ°μ΄ν° κ²μμ νμ©λ μ μμ΅λλ€. 맀κ°λ³μμ μ΄λ¦κ³Ό λ°μ΄ν° μ νμ λͺ
μν΄μΌ ν©λλ€. μλ₯Ό λ€μ΄, name VARCHAR2
, age NUMBER
, gender CHAR
μ κ°μ μ
λ ₯ 맀κ°λ³μλ₯Ό μ μν μ μμ΅λλ€.
3.3 쿼리 μμ±
μ‘°ν νλ‘μμ λ SQL λ¬Έμ μ¬μ©νμ¬ λ°μ΄ν°λ₯Ό κ²μν΄μΌ ν©λλ€. νλ‘μμ λ΄μ νμν 쿼리λ₯Ό μμ±ν΄μΌ ν©λλ€. SELECT λ¬Έμ μ¬μ©νμ¬ μνλ λ°μ΄ν°λ₯Ό μ ννκ³ κ²μ 쑰건μ μ μ©ν μ μμ΅λλ€. νμν κ²½μ° JOIN μ°μ°μ΄λ κ·Έλ£Ήν λ±μ μ¬μ©νμ¬ λ³΅μ‘ν λ°μ΄ν° μ²λ¦¬λ₯Ό μνν μλ μμ΅λλ€.
3.4 μΆλ ₯ 맀κ°λ³μ μ μ
λ°μ΄ν° κ²μ κ²°κ³Όλ₯Ό λ°ννκΈ° μν΄ μΆλ ₯ 맀κ°λ³μλ₯Ό μ μν΄μΌ ν©λλ€. μΆλ ₯ 맀κ°λ³μλ νλ‘μμ κ° μ€νλκ³ κ²°κ³Όκ° λ°νλ λ κ°μ μ μ₯νλ μν μ ν©λλ€. μΆλ ₯ 맀κ°λ³μμ μ΄λ¦κ³Ό λ°μ΄ν° μ νμ λͺ
μν΄μΌ ν©λλ€. μλ₯Ό λ€μ΄, customer_name VARCHAR2
, customer_age NUMBER
, customer_gender CHAR
μ κ°μ μΆλ ₯ 맀κ°λ³μλ₯Ό μ μν μ μμ΅λλ€.
3.5 μμΈ μ²λ¦¬ μΆκ°
μ‘°ν νλ‘μμ λ μμΈ μν©μ μ²λ¦¬νκΈ° μν μμΈ μ²λ¦¬ κΈ°λ₯μ μΆκ°ν μ μμ΅λλ€. λ°μ΄ν°κ° μ‘΄μ¬νμ§ μλ κ²½μ°λ κ²μ μ‘°κ±΄μ΄ μλͺ»λ κ²½μ°μ λν μμΈλ₯Ό μ²λ¦¬νλ λ¬Έμ₯μ μμ±ν΄μΌ ν©λλ€. μμΈ μ²λ¦¬λ BEGIN...EXCEPTION...END
λ¬Έμ μ¬μ©νμ¬ κ΅¬νν μ μμ΅λλ€.
μ‘°ν νλ‘μμ λ₯Ό μμ±νλ λ°©λ²μ λ°μ΄ν°λ² μ΄μ€ μμ€ν μ λ°λΌ λ€λ₯Ό μ μμΌλ, λλΆλΆμ λ°μ΄ν°λ² μ΄μ€λ λΉμ·ν λ¬Έλ²κ³Ό ꡬ쑰λ₯Ό κ°μ§κ³ μμ΅λλ€. λ°λΌμ λ°μ΄ν°λ² μ΄μ€μ 곡μ λ¬Έμλ₯Ό μ°Έκ³ νμ¬ μμ± λ°©λ²μ μ΅νλ κ²μ΄ μ’μ΅λλ€. μ‘°ν νλ‘μμ λ λ°λ³΅μ μ΄κ³ 볡μ‘ν λ°μ΄ν° κ²μμ μ²λ¦¬ν μ μλ κ°λ ₯ν λꡬμ΄λ―λ‘, νλ‘μμ λ₯Ό μ μμ±νκ³ νμ©νλ κ²μ΄ κ°λ° μμ μ ν¨μ¨μ±κ³Ό μ±λ₯μ ν₯μμν¬ μ μμ΅λλ€.
4. μ‘°ν νλ‘μμ μ νμ© μμ
μ‘°ν νλ‘μμ λ λ€μν μν©μμ νμ©λ μ μμ΅λλ€. μ¬κΈ°μλ λͺ κ°μ§ μΌλ°μ μΈ νμ© μμκ° μμ΅λλ€:
4.1 νΉμ 쑰건μ λ§λ λ°μ΄ν° κ²μ
μ‘°ν νλ‘μμ λ νΉμ 쑰건μ λ§λ λ°μ΄ν°λ₯Ό κ²μνκΈ° μν΄ μ¬μ©λ μ μμ΅λλ€. μλ₯Ό λ€μ΄, κ³ κ°μ μ΄λ¦, λμ΄, μ±λ³ λ±μ 쑰건μ λ°λΌ κ³ κ° μ 보λ₯Ό κ²μνλ νλ‘μμ λ₯Ό μμ±ν μ μμ΅λλ€. νλ‘μμ μ μ λ ₯ 맀κ°λ³μμ κ²μ 쑰건μ μ λ¬νκ³ , νλ‘μμ μ 쿼리μμ ν΄λΉ 쑰건μ νμ©νμ¬ μνλ λ°μ΄ν°λ₯Ό κ²μν μ μμ΅λλ€.
4.2 볡μ‘ν λ°μ΄ν° μ²λ¦¬
μ‘°ν νλ‘μμ λ 볡μ‘ν λ°μ΄ν° μ²λ¦¬λ₯Ό μν΄ νμ©λ μ μμ΅λλ€. μλ₯Ό λ€μ΄, μ¬λ¬ ν μ΄λΈμ μ‘°μΈνμ¬ λ°μ΄ν°λ₯Ό κ²μνκ±°λ, κ·Έλ£Ήνλ λ°μ΄ν°λ₯Ό λ°ννλ μμ μ μνν μ μμ΅λλ€. νλ‘μμ λ΄μ μ μ ν 쿼리λ₯Ό μμ±νμ¬ λ³΅μ‘ν μ°μ°μ μννκ³ κ²°κ³Όλ₯Ό λ°νν μ μμ΅λλ€.
4.3 νμν νλλ§ μ ννμ¬ λ°μ΄ν° λ°ν
νλ‘μμ λ₯Ό ν΅ν΄ νμν νλλ§ μ ννμ¬ λ°μ΄ν°λ₯Ό λ°νν μ μμ΅λλ€. μ‘°νν λ°μ΄ν°κ° λ§μ κ²½μ° λͺ¨λ νλλ₯Ό λ°νν νμκ° μμ μ μμΌλ©°, νμν νλλ§ μ ννμ¬ λ°ννλ©΄ λ€νΈμν¬λ λ©λͺ¨λ¦¬μ λΆνλ₯Ό μ€μΌ μ μμ΅λλ€. νλ‘μμ λ΄μ SELECT λ¬Έμ μμ±ν λ νμν νλλ§ μ ννλλ‘ ν μ μμ΅λλ€.
4.4 μ¬μ¬μ© κ°λ₯ν λ‘μ§ μμ±
μ‘°ν νλ‘μμ λ μ¬μ¬μ© κ°λ₯ν λ‘μ§μ μμ±νλ λ°μ μ μ©ν©λλ€. λμΌν λ°μ΄ν° κ²μμ λ°λ³΅μ μΌλ‘ μνν΄μΌ νλ κ²½μ°, λ§€λ² κ°μ 쿼리λ₯Ό μμ±νλ λμ νλ‘μμ λ₯Ό μ¬μ©νμ¬ λ‘μ§μ μ¬μ¬μ©ν μ μμ΅λλ€. μ΄λ κ°λ° μμ μ ν¨μ¨μ±μ ν₯μμν€κ³ μ€λ³΅ μ½λλ₯Ό λ°©μ§νλ λ°μ λμμ μ€λλ€.
μ‘°ν νλ‘μμ λ λ°μ΄ν°λ² μ΄μ€ μμ€ν κ³Ό μΈμ΄μ λ°λΌ μμ± λ°©λ²μ΄ λ€λ₯Ό μ μμΌλ, νλ‘μμ λ₯Ό νμ©νλ κΈ°λ³Έμ μΈ μ리λ μ μ¬ν©λλ€. λ°μ΄ν° κ²μ λ° μ²λ¦¬λ₯Ό μν΄ μ‘°ν νλ‘μμ λ₯Ό μ μ ν νμ©νλ©΄ κ°λ° μμ μ λ³΄λ€ ν¨μ¨μ μΌλ‘ μνν μ μμΌλ©°, λ°μ΄ν°λ² μ΄μ€μ μ±λ₯μ ν₯μμν¬ μ μμ΅λλ€.
5. μ‘°ν νλ‘μμ μ μ₯λ¨μ
μ‘°ν νλ‘μμ λ λ°μ΄ν° κ²μμ μ μ©ν κΈ°λ₯μ μ 곡νμ§λ§, μ₯λ¨μ μ κ³ λ €ν΄μΌ ν©λλ€:
5.1 μ₯μ
μ±λ₯ ν₯μ: μ‘°ν νλ‘μμ λ λ°μ΄ν°λ² μ΄μ€ λ΄λΆμμ 미리 μ»΄νμΌλμ΄ μ€νλλ―λ‘, 쿼리 μ€ν μλκ° λΉ λ¦ λλ€. λν, νλ‘μμ λ₯Ό μ¬μ©νμ¬ νμν νλλ§ μ ννμ¬ λ°μ΄ν°λ₯Ό λ°νν μ μμΌλ―λ‘, λ€νΈμν¬ λ° λ©λͺ¨λ¦¬μ λΆνλ₯Ό μ€μΌ μ μμ΅λλ€.
μ¬μ¬μ©μ±: μ‘°ν νλ‘μμ λ μ¬μ¬μ© κ°λ₯ν λ‘μ§μ μμ±ν μ μλ μ₯μ μ΄ μμ΅λλ€. λμΌν λ°μ΄ν° κ²μμ λ°λ³΅μ μΌλ‘ μνν΄μΌ νλ κ²½μ°, λ§€λ² κ°μ 쿼리λ₯Ό μμ±νλ λμ νλ‘μμ λ₯Ό μ¬μ©νμ¬ λ‘μ§μ μ¬μ¬μ©ν μ μμ΅λλ€.
보μ κ°ν: μ‘°ν νλ‘μμ λ λ°μ΄ν°λ² μ΄μ€ μ κ·Ό κΆνμ κ°μ§ μ¬μ©μλ§ νΈμΆν μ μμΌλ―λ‘, λ°μ΄ν°μ 보μμ κ°νν μ μμ΅λλ€. νλ‘μμ λ΄μμ κ²μ¦ λ‘μ§μ μΆκ°νμ¬ μλͺ»λ μ κ·Όμ λ°©μ§ν μλ μμ΅λλ€.
5.2 λ¨μ
볡μ‘μ±: μ‘°ν νλ‘μμ λ SQL λ¬Έλ²μ μ¬μ©νμ¬ μμ±λλ©°, 쿼리λ₯Ό μμ±νκ³ λλ²κΉ νλ λ°μ μ΅μν΄μΌ ν©λλ€. νλ‘μμ μ μμ± λ° μ μ§λ³΄μμ μλμ μΌλ‘ λμ κΈ°μ μ μ§μμ΄ νμν μ μμ΅λλ€.
μ μ°μ± μ ν: μ‘°ν νλ‘μμ λ μ μ μΈ μΏΌλ¦¬λ₯Ό μ€ννλ―λ‘, μ€ν μμ μ λμ μΌλ‘ 쿼리λ₯Ό λ³κ²½ν μ μμ΅λλ€. λ°λΌμ λμ μΈ λ°μ΄ν° μ²λ¦¬λ λ€μν 쑰건μ λ°λ₯Έ κ²°κ³Όλ₯Ό λ°ννλ μμ μλ μ νμ΄ μμ μ μμ΅λλ€.
μμ‘΄μ± μ¦κ°: μ‘°ν νλ‘μμ λ λ°μ΄ν°λ² μ΄μ€ μμ€ν μ μμ‘΄μ μ΄λ―λ‘, λ°μ΄ν°λ² μ΄μ€ μμ€ν μ λ³κ²½μ΄λ μ κ·Έλ μ΄λκ° νμν κ²½μ° νλ‘μμ λ₯Ό μμ ν΄μΌ ν μλ μμ΅λλ€. μ΄λ μμ‘΄μ±μ΄ λμμ§λ€λ μλ―Έμ΄λ©°, μΆκ° μμ μ΄ νμνκ² λ μ μμ΅λλ€.
μ‘°ν νλ‘μμ λ λ°μ΄ν° κ²μμ μ μ©ν κΈ°λ₯μ μ 곡νλ©°, μ±λ₯ ν₯μκ³Ό 보μ κ°νλ₯Ό ν μ μμ΅λλ€. νμ§λ§ 볡μ‘μ±κ³Ό μ μ°μ±μ λν μ μ½μ΄ μμ μ μμΌλ―λ‘, κ°κ°μ μν©μ μ ν©ν κ²½μ°μ μ¬μ©νλ κ²μ΄ μ’μ΅λλ€. λ°μ΄ν°λ² μ΄μ€ μμ€ν λ° νλ‘μ νΈμ μꡬμ¬νμ κ³ λ €νμ¬ μ₯λ¨μ μ κ³ λ €ν ν μ΅μ μ κ²°μ μ λ΄λ¦¬λ κ²μ΄ μ€μν©λλ€.
λκΈ