KITRI/ORACLE

Oracle DBMS 및 SQL - μ„€μΉ˜ / SELECTλ¬Έ

λ˜νš¨λ‹ˆ 2020. 4. 7. 09:51

ν”„λ‘œκ·Έλž˜λ°μ΄λž€? λŒ€λŸ‰μ˜ 데이터λ₯Ό μ‹ μ†ν•˜κ²Œ μ²˜λ¦¬ν•΄μ„œ κ²°κ³Όλ₯Ό μ–»λŠ” 것을 λ§ν•œλ‹€. 

 

데이터

  • μ •ν˜• 데이터 : 크기가 μ •ν•΄μ Έ μžˆλŠ” 것. 예) RDB, μŠ€ν”„λ ˆλ“œμ‹œνŠΈ, CSV λ“±
  • λ°˜μ •ν˜• 데이터 : ν˜•νƒœκ°€ 있으며 연산이 λΆˆκ°€λŠ₯ν•œ 데이터. 예) XML, HTML, JSON, 둜그 λ“±
  • λΉ„μ •ν˜• 데이터 : 크기가 μ •ν•΄μ Έ μžˆμ§€ μ•Šμ€ 것. 예) μ†Œμ…œλ°μ΄ν„°(페이슀뢁, νŠΈμœ„ν„°), 이미지, μ˜μƒ, 음ν–₯ λ“±

RDBMS(Relational Database Management System) : κ΄€κ³„ν˜• λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό μƒμ„±ν•˜κ³  μˆ˜μ •ν•˜κ³  관리할 수 μžˆλŠ” μ†Œν”„νŠΈμ›¨μ–΄.

  1. μ •ν˜•ν™” 데이터 μ²˜λ¦¬μ— λ›°μ–΄λ‚˜λ‹€.
  2. Oracle, MSSQL, MYSQL 등이 μžˆλ‹€. 

SQL 문법 3κ°€μ§€

  1. 데이터 μ •μ˜ μ–Έμ–΄(DDL=Data Definition Language) : ν…Œμ΄λΈ” 생성, λ³€κ²½, μ‚­μ œ, μˆ˜μ • (CREATE, DROP, ALTER, TRUNCATE)
  2. 데이터 μ‘°μž‘ μ–Έμ–΄(DML=Data Manipulation Language) : 데이터(λ ˆμ½”λ“œ) μ‚½μž…, μˆ˜μ •, μ‚­μ œ, 선택 (SELECT, INSERT, UPDATE, DELETE, COMMIT, ROLLBACK)
  3. 데이터 μ œμ–΄ μ–Έμ–΄(DCL=Data Control Language) : λ°μ΄ν„°μ˜ μ‚¬μš© κΆŒν•œ 및 μ·¨μ†Œ μ‹œ μ‚¬μš© (GRANT, REVOKE)

 

<μ‹€μŠ΅>

 

1. 였라클 μ„€μΉ˜(Oracle Database 11g Release 2 XE)
https://www.oracle.com/database/technologies/xe-prior-releases.html

 

XE Prior Release Archive

Support Oracle Database Express Edition (XE) is a community supported edition of the Oracle Database family. Please go to the Oracle Database XE Community Support Forum for help, feedback, and enhancement requests. Note: Oracle Support Services only provid

www.oracle.com

 

2. cmd μ°½μ—μ„œ

 

 

3. hr 계정 lock ν•΄μ œ

> alter user hr acount unlock;

> alter user hr identified by 1234;(1234λŠ” λΉ„λ°€λ²ˆν˜Έ. μ›ν•˜λŠ”λŒ€λ‘œ μ§€μ •)

> conn hr/1234;

 

 

4. SQL developer μ„€μΉ˜(Windows 64-bit with JDK 8 included λ‹€μš΄λ‘œλ“œ)

https://www.oracle.com/tools/downloads/sqldev-downloads.html

 

Oracle SQL Developer Downloads

This archive. will work on a 32 or 64 bit Windows OS. The bit level of the JDK you install will determine if it runs as a 32 or 64 bit application. This download does not include the required Oracle Java JDK. You will need to install it if it's not already

www.oracle.com

μƒˆλ‘œλ§Œλ“€κΈ°λ‘œ 'hr' 접속 μ„€μ •. μ‚¬μš©μžμ΄λ¦„κ³Ό λΉ„λ°€λ²ˆν˜Έλ‘œ μ ‘μ†μ‹œμ— 계정 μ„€μ •.

도ꡬ > ν™˜κ²½μ„€μ • > μ½”λ“œ νŽΈμ§‘κΈ° > κΈ€κΌ΄ λ³€κ²½ κ°€λŠ₯, ν–‰λ²ˆν˜Έ μΆ”κ°€, μ˜€ν† μ»€λ°‹ μ„€μ •

 

 

5. ν…Œμ΄λΈ”μ€ ν•„λ“œμ™€ λ ˆμ½”λ“œλ‘œ κ΅¬μ„±λ˜μ–΄μžˆλ‹€. 

ν–‰ = ROW = λ ˆμ½”λ“œ(Record) 

μ—΄ = COLUMN = ν•„λ“œ(Field)

 

개체(Entitiy) : λ ˆμ½”λ“œ

속성(Attribute) : ν•„λ“œ

 

 

6. ν…Œμ΄λΈ” ꡬ쑰λ₯Ό 보고 싢을 λ•Œμ—λŠ” describe ν‚€μ›Œλ“œλ₯Ό μ΄μš©ν•˜μž.

였라클의 μžλ£Œν˜•μ€ 크게 문자, 숫자, DATE κ°€ μžˆλ‹€. 

 

 

7. SELECT 검색(선택)λ¬Έ


--ν˜•μ‹) select [컬럼λͺ… λ˜λŠ” ν‘œν˜„μ‹]
--       from [ν…Œμ΄λΈ”λͺ… λ˜λŠ” λ·°λͺ…]
--       where 쑰건절
--       group by [컬럼λͺ…] having 쑰건절
--       order by [컬럼λͺ…]

--1. λ‹¨μˆœκ²€μƒ‰ > select [컬럼λͺ… λ˜λŠ” ν‘œν˜„μ‹] from [ν…Œμ΄λΈ”λͺ… λ˜λŠ” λ·°λͺ…]

 

--2. λͺ¨λ“  ν•„λ“œ(μ—΄) 쑰회 > *

 

--3. 쀑볡 ν–‰ 제거  > DISTINCT ν‚€μ›Œλ“œ μ‚¬μš©

 

 

--μ—°μ‚°(μ‚°μˆ μ—°μ‚°) +, -, *, /

AS ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•΄μ„œ 컬럼λͺ…을 μ„€μ •ν•  수 μžˆλ‹€. 

 

 

--5. NULL은 λ―Έν™•μ • λ„λŠ” μ•Œ 수 μ—†λŠ” 값을 μ˜λ―Έν•œλ‹€. κ·ΈλŸ¬λ―€λ‘œ μ—°μ‚°, ν• λ‹Ή, 비ꡐ가 λΆˆκ°€λŠ₯ν•˜λ‹€. 

NVL(칼럼, μΉ˜ν™˜ν•  κ°’) : null 값을 μΉ˜ν™˜ν•  κ°’μœΌλ‘œ λ³€κ²½

 

 

--6. λ³„μΉ­ (Alias) 
--κ·œμΉ™ : κ³΅λ°±, νŠΉμˆ˜λ¬Έμž, μ†Œλ¬Έμž μΆœλ ₯μ‹œ "μŒλ”°μ˜΄ν‘œ"
--         salary as μ—°λ΄‰ : as ν‚€μ›Œλ“œλ₯Ό μƒλž΅ν•  μˆ˜ μžˆλ‹€.

 

 

--7. concatnation(ν•©μ„±λ¬Έμž, μ—°κ²°μ—°μ‚°μž) 

 

 

β€» μΆ”κ°€ 정리

 

- μŠ€ν‚€λ§ˆ(Schema) λŠ” ν…Œμ΄λΈ”, λ·°, μΈλ±μŠ€μ™€ 같은 ꡬ쑰λ₯Ό ν¬ν•¨ν•˜λŠ” 논리적인 데이터 μ €μž₯ ꡬ쑰λ₯Ό κ°€μ§„ 객체λ₯Ό λ§ν•œλ‹€.

   (μœ„μ˜ μ˜ˆμ œμ—μ„œλŠ” hr μŠ€ν‚€λ§ˆλ₯Ό μ΄μš©ν•΄μ„œ μ‹€μŠ΅ν•˜μ˜€λ‹€.)

 

- κ΄€κ³„ν˜• λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ ν…Œμ΄λΈ” κ°„μ˜ 관계λ₯Ό λ„μ‹ν™”ν•œ 것을 ERD라고 ν•œλ‹€.

 

- 집합적 언어인 SQL을 ν™•μž₯ν•œ 절차적 μ–Έμ–΄κ°€ PL/SQL이며, DB ν”„λ‘œκ·Έλž˜λ°μ„ ν•œλ‹€λŠ” 것은 PL/SQL을 μ΄μš©ν•΄ μ½”λ“œλ₯Ό μž‘μ„±ν•œλ‹€λŠ” μ˜λ―Έμ΄λ‹€. 

λ°˜μ‘ν˜•