πŸ“š SQL의 μ’…λ₯˜ (DML, DDL, DCL)

yoondguΒ·2022λ…„ 5μ›” 1일
0

Oracle

λͺ©λ‘ 보기
2/9

κ°•μ˜ μˆ˜κ°• 쀑 μž‘μ„±ν•œ λ…ΈνŠΈμ—μ„œ λ‚΄μš©μ„ 발췌, μ΄μ‘μˆ˜ κ°•μ‚¬λ‹˜ κ°•μ˜ 의 λ…ΈνŠΈμ™€ 이미지λ₯Ό μ°Έμ‘°ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

SQL


πŸ“Œ SQL

  • Structured Query Language κ΅¬μ‘°ν™”λœ 질의 μ–Έμ–΄
    • λ°μ΄ν„°λ² μ΄μŠ€μ™€ κ΄€λ ¨λœ λͺ…령을 μž‘μ„±ν•  λ•Œ μ‚¬μš©ν•˜λŠ” μ–Έμ–΄

    • νŠΉμ •ν•œ ꡬ쑰가 미리 μ •ν•΄μ Έμžˆκ³ , μ •ν•΄μ ΈμžˆλŠ” ꡬ쑰의 λͺ…λ Ήμ–΄λ₯Ό 톡해 μ›ν•˜λŠ” μž‘μ—…μ„ μ‹€ν–‰ν•œλ‹€.
      β‡’ λͺ…령문을 μž‘μ„±ν•˜κΈ°μ— 쉽고 κ°„λ‹¨ν•˜λ‹€.

      πŸ’‘ Oracle SQL Devleoper만 였라클 DB에 접속할 수 μžˆλŠ” 게 μ•„λ‹ˆλ‹€. SQL Plusλ‘œλ„ 접속할 수 있고, μžλ°”λ‘œλ„ DBMS에 λͺ…령을 보낼 수 μžˆλ‹€.

πŸ“Œ SQL의 μ’…λ₯˜

  • DDL(Data Definition Language)
    • 데이터 μ •μ˜ μ–Έμ–΄

    • λ°μ΄ν„°λ² μ΄μŠ€μ˜ ꡬ쑰λ₯Ό μ •μ˜ν•˜λŠ” λͺ…λ Ήμ–΄λ‹€.

    • λ°μ΄ν„°λ² μ΄μŠ€μ˜ μ£Όμš” 객체λ₯Ό 생성,μ‚­μ œ,λ³€κ²½ν•˜λŠ” μž‘μ—… μˆ˜ν–‰ν•œλ‹€.

      • (μ£Όμš” 객체: ν…Œμ΄λΈ”, λ·°, 인덱슀, μ‹œν€€μŠ€, λ™μ˜μ–΄, 트리거, μ‚¬μš©μž ...)
    • μ£Όμš” λͺ…λ Ήμ–΄

      λͺ…λ Ήμ–΄μ„€λͺ…
      CREATEμƒˆλ‘œμš΄ λ°μ΄ν„°λ² μ΄μŠ€ 객체 생성
      ALTERκΈ°μ‘΄ λ°μ΄ν„°λ² μ΄μŠ€ 객체 λ³€κ²½
      DROPκΈ°μ‘΄ λ°μ΄ν„°λ² μ΄μŠ€ 객체 μ‚­μ œ
      TRUNCATE데이터λ₯Ό 되돌릴 수 없도둝 제거

      πŸ’‘ TRUNCATE은 ν…Œμ΄λΈ”μ—λ§Œ μ‚¬μš©ν•˜λŠ” λͺ…λ Ήμ–΄.
      DDL의 TRUNCATE은 ν…Œμ΄λΈ”μ„ μ‚­μ œν•˜μ§€λŠ” μ•Šκ³ , ν…Œμ΄λΈ”μ˜ 데이터λ₯Ό λͺ¨λ‘ μ‚­μ œν•˜μ—¬ 초기 μƒνƒœλ‘œ λ§Œλ“ λ‹€.
      DDL의 DROP은 ν…Œμ΄λΈ”μ— λŒ€ν•œ 곡간, 객체 자체λ₯Ό μ‚­μ œν•˜λŠ” 것이닀.
      DML의 DELETE은 ν…Œμ΄λΈ”μ„ μ‚­μ œν•˜μ§€ μ•Šκ³ , λ°μ΄ν„°λ§Œ μ‚­μ œν•˜μ§€λ§Œ TRUNCATEκ³Ό 달리 데이터 μš©λŸ‰μ€ 쀄어듀지 μ•ŠλŠ”λ‹€. μ›ν•˜λŠ” λ°μ΄ν„°λ§Œ μ§€μšΈ μˆ˜μžˆλ‹€.


이미지 좜처: https://wikidocs.net/4021

  • DML(Data Manipulation Language)
    • 데이터 μ‘°μž‘ μ–Έμ–΄
    • λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ 데이터λ₯Ό μΆ”κ°€/쑰회/λ³€κ²½/μ‚­μ œν•˜λŠ” μž‘μ—…μ„ μˆ˜ν–‰ν•œλ‹€.
      • 두 개 μ΄μƒμ˜ 데이터λ₯Ό μ‘°μΈν•˜κ±°λ‚˜, ν…Œμ΄λΈ”μ„ μ§‘κ³„ν•˜κ±°λ‚˜, 데이터에 λŒ€ν•œ μ—°μ‚° κ²°κ³Όλ₯Ό μ‘°νšŒν•˜λŠ” λ“± λ‹€μ–‘ν•œ λͺ©μ μ— 따라 μ‚¬μš©
    • μ£Όμš” λͺ…λ Ήμ–΄
      λͺ…λ Ήμ–΄μ„€λͺ…
      SELECTν…Œμ΄λΈ”μ—μ„œ 데이터λ₯Ό μ‘°νšŒν•œλ‹€
      INSERTν…Œμ΄λΈ”μ— μƒˆλ‘œμš΄ 데이터 행을 μΆ”κ°€ν•œλ‹€
      UPDATEν…Œμ΄λΈ”μ˜ 데이터λ₯Ό λ³€κ²½ν•œλ‹€
      DELETEν…Œμ΄λΈ”μ— μ €μž₯된 νŠΉμ • 데이터 행을 μ‚­μ œν•œλ‹€

      πŸ’‘ ν…Œμ΄λΈ”μ— λŒ€ν•œ μ‘°μž‘μ€ 항상 β€˜νŠœν”Œ λ‹¨μœ„β€™λ‘œ μ΄λ£¨μ–΄μ§€λŠ” 것이닀.

  • DCL(Data Control Language)
    • 데이터 μ œμ–΄ μ–Έμ–΄

    • κΆŒν•œμ œμ–΄, νŠΈλžœμž­μ…˜ μ œμ–΄ μž‘μ—…μ„ μˆ˜ν–‰ν•œλ‹€.

    • μ£Όμš” λͺ…λ Ήμ–΄

      λͺ…λ Ήμ–΄μ„€λͺ…
      GRANTνŠΉμ • μ‚¬μš©μžμ—κ²Œ νŠΉμ • μž‘μ—…μ„ μˆ˜ν–‰μ„ κΆŒν•œμ„ λΆ€μ—¬
      REVOKEμ‚¬μš©μžμ—κ²Œ λΆ€μ—¬λœ κΆŒν•œμ„ λ°•νƒˆ
      COMMITνŠΈλžœμž­μ…˜μ„ μ‹€ν–‰
      ROLLBACKνŠΈλžœμž­μ…˜μ„ μ·¨μ†Œ
      SAVEPOINT둀백지점을 μ„€μ •ν•œλ‹€

0개의 λŒ“κΈ€