[Day1] Oracle 1 [9/23]

μ„€μ •

colima start --memory 4 --arch x86_64

docker run -e ORACLE_PASSWORD=0513 -p 1521:1521 -d gvenzl/oracle-xe

docker ps    : μ»¨ν…Œμ΄λ„ˆλͺ… 확인

docker logs -f μ»¨ν…Œμ΄λ„ˆλͺ…   // 둜그 확인

 

μ‹œμž‘

colima start --memory 4 --arch x86_64

docker start 860dd6780dbe

 

μ’…λ£Œ

colima stop

 

 

 

 

였라클 ν΄λΌμš°λ“œ ν†΅ν•œ 데이터 μ €μž₯

 

[ 였라클 κ°œμš” ]

1. 데이터( data ) ***

γ„±. 재료, 자료, λ…Όκ±°λΌλŠ” 뜻인 "datum"의 λ³΅μˆ˜ν˜•μ΄λ‹€.
γ„΄. 넓은 μ˜λ―Έμ—μ„œ λ°μ΄ν„°λŠ” "μ˜λ―ΈμžˆλŠ” 정보λ₯Ό 가진 λͺ¨λ“  κ°’, μ‚¬λžŒμ΄λ‚˜ μžλ™κΈ°κΈ°κ°€ 생성 λ˜λŠ”
μ²˜λ¦¬ν•˜λŠ” ν˜•νƒœλ‘œ ν‘œμ‹œλ˜λŠ” 것.
γ„·. 정보( information ) - 의미λ₯Ό λΆ€μ—¬ν•œ κ°’(κ²°κ³Ό)
 
2. λ°μ΄ν„°λ² μ΄μŠ€( database == DB ) ***
γ„±. Data( 자료 ) + Base( μ €μž₯μ†Œ )
γ„΄. ν˜„μž¬ - 인터넷, 슀마트폰 λ³΄κΈ‰μœΌλ‘œ 상상할 수 μ—†λŠ” μ—„μ²­λ‚œ μ–‘μ˜ 데이터가 맀일 λ§Œλ“€μ–΄μ§„λ‹€.
정보가 λ°œμƒν•˜λ©΄ 이λ₯Ό "기둝"+"관리" ν•„μš”μ„±μ΄ 컀진닀.
γ„·. 효과적으둜 μΆ”μΆœ, λΆ„λ₯˜, μ €μž₯, μƒˆλ‘œμš΄ 정보 재 μ‚¬μš©.
γ„Ή. κ³΅μœ ν•΄μ„œ μ‚¬μš©λ  λͺ©μ μœΌλ‘œ ν†΅ν•©κ΄€λ¦¬λ˜λŠ” λ°μ΄ν„°μ˜ 집합

 

3. DataBbase Management System == DBMS ( λ°μ΄ν„°λ² μ΄μŠ€ 관리 μ‹œμŠ€ν…œ )
γ„±. μ†Œν”„νŠΈμ›¨μ–΄
γ„΄. 였라클(oracle) MySql MS SQL λ“±λ“±
γ„·. [ Oracle 11g XE ] μ„€μΉ˜
γ„Ή. 였라클 버젼별 νŠΉμ§•
접미사 i , g, c
Oracle 9i, 10[i] == Internet
Oracle 11[g] == Grid
Oracle 21[c] == cloud
ㅁ. 였라클 Edition νŠΉμ§•.
γ„±. Oracle EE - 였라클 λ°μ΄ν„°λ² μ΄μŠ€μ˜ λͺ¨λ“  κΈ°λŠ₯을 μ‚¬μš©ν•  수 μžˆλŠ” μ—λ””μ…˜(λŒ€κΈ°μ—…)
γ„΄. Oracle SE - " + μΌλΆ€λŠ” μ œμ™Έ ( μ€‘μ†ŒκΈ°μ—…μš© 적당)
γ„·. Oracle SEO( One ) == SE 동일, CPU 1개 μ‚¬μš© κ°€λŠ₯
γ„Ή. Oracle XE - 무료 버전
ㅁ. Oracle PE - 개인용 == EE
 
4. 였라클 μ„€μΉ˜ ν›„ μ£Όμš” 였라클 μ„œλΉ„μŠ€ ***
γ„±. OracleService + SID == OracleServiceXE
였라클의 κΈ°λ³Έ μ„œλΉ„μŠ€μ΄λ©°, λ°˜λ“œμ‹œ 제일 λ¨Όμ € μ‹œμž‘λ˜μ–΄μ•Ό ν•œλ‹€.
 
γ„΄. Oracle+SID+TNSListener == OracleXETNSListener
λ¦¬μŠ€λ„ˆ μ„œλΉ„μŠ€, λ°˜λ“œμ‹œ μ‹œμž‘λ˜μ–΄μ•Ό ν•œλ‹€.
λ¦¬μŠ€λ„ˆ ? ***
λ„€νŠΈμ›Œν¬λ₯Ό 톡해 ν΄λΌμ΄μ–ΈνŠΈ( μ˜€λΌν΄μ„ μ‚¬μš©ν•˜λŠ” μ‚¬μš©μž )와
였라클 μ„œλ²„μ™€μ˜ 연결을 λ‹΄λ‹Ήν•˜λŠ” 관리 ν”„λ‘œκ·Έλž¨μ΄λ‹€.

 

5. μ„œλ²„, ν΄λΌμ΄μ–ΈνŠΈ
μ„œλ²„ : μ„œλΉ„μŠ€λ₯Ό μ œκ³΅ν•˜λŠ” μͺ½
ν΄λΌμ΄μ–ΈνŠΈ : μ„œλΉ„μŠ€λ₯Ό μ œκ³΅λ°›λŠ” μͺ½
ν΄λΌμ΄μ–ΈνŠΈ 도ꡬ)
 
 
-- 6. 였라클 ν΄λΌμ΄μ–ΈνŠΈ 도ꡬ
-- 1) SQL*plus 툴 
-- 2) Toad ( ν† λ“œ ) = κ°€μž₯ 많이 μ‚¬μš©λ˜λŠ” 툴 쀑에 ν•˜λ‚˜μ΄λ‹€. μœ λ£ŒλΌμ„œ X
-- 3) Orange( μ˜€λ Œμ§€ ) = κ΅­μ‚° μ œν’ˆ ( ν† λ“œ λΉ„μŠ· ) X
-- 4) SQL Developer = 였라클 사 제곡 O
 
* ctrl enter : μ‹€ν–‰ (단좕킀)
* option + cmd + / : 주석

 

7. μ£Όμ„μ²˜λ¦¬ -- 3:05 μˆ˜μ—… μ‹œμž‘~
-------------------------------------------------------------------------------
μƒνƒœ: μ‹€νŒ¨ -ν…ŒμŠ€νŠΈ μ‹€νŒ¨: Listener refused the connection with the following error:
ORA-12505, TNS:listener does not currently know of SID given in connect descriptor
(CONNECTION_ID=sGg+vQrzTlWSlkQStGSx9w==)
-------------------------------------------------------------------------------
8. ν…Œμ΄λΈ”μŠ€νŽ˜μ΄μŠ€ ( table + space ) ***
- 데이터 μ €μž₯ + μ‚¬μš©
- 데이터 μ €μž₯ λ‹¨μœ„ 쀑 κ°€μž₯ μƒμœ„ κ°œλ…μ΄ "ν…Œμ΄λΈ”μŠ€νŽ˜μ΄μŠ€"이닀.
- 데이터 μ €μž₯ λ‹¨μœ„
1) 물리적 λ‹¨μœ„ - 파일
2) 논리적 λ‹¨μœ„ - 크기 순으둜
"ν…Œμ΄λΈ”μŠ€νŽ˜μ΄μŠ€ > μ„Έκ·Έλ¨ΌνŠΈ > μ΅μŠ€ν…νŠΈ > 데이터 블둝"
8-2. ν…Œμ΄λΈ”μŠ€νŽ˜μ΄μŠ€ 생성 X
 
9. 데이터 λͺ¨λΈ ? 컴퓨터에 데이터λ₯Ό μ €μž₯ν•˜λŠ” 방식을 μ •μ˜ν•΄ 놓은 κ°œλ… λͺ¨λΈ ***
9-2. 데이터 λͺ¨λΈ μ’…λ₯˜
- κ³„μΈ΅ν˜•, λ„€νŠΈμ›Œν¬ν˜•, [κ΄€κ³„ν˜•], 객체 지ν–₯적 데이터 λͺ¨λΈ λ“±λ“±
κ΄€κ³„ν˜• 데이터 λͺ¨λΈ ***
 
9-3. R + DBMS ***
κ΄€κ³„ν˜•
- 데이터 κ°„μ˜ 관계에 μ΄ˆμ μ„ λ‘” λͺ¨λΈ
- 데이터 μ €μž₯μ†Œ(ν…Œμ΄λΈ”)κ³Ό ν…Œμ΄λΈ” κ°„ 관계에 μ΄ˆμ μ„ λ‘” λͺ¨λΈ
9-4. κ΄€κ³„ν˜• 데이터 λͺ¨λΈμ˜ 핡심 ꡬ성 μš”μ†Œ ***
1) 개체( entity ) - 데이터λ₯Ό μ €μž₯ν•˜λŠ” κ°€μž₯ μž‘μ€ λ‹¨μœ„ == RDBMS ν…Œμ΄λΈ”(table) == λ¦΄λ ˆμ΄μ…˜(relation)
2) 속성( attribute ) - 개체의 νŠΉμ§•,μ’…λ₯˜,μƒνƒœ == μ—΄(column)
3) 관계( relationship ) - κ°œμ²΄μ™€ 개체 κ°„μ˜ μ—°κ΄€μ„±
 
γ„±) λΆ€μ„œν…Œμ΄λΈ” - λΆ€μ„œλͺ…,λΆ€μ„œμž₯,λΆ€μ„œμ „ν™”λ²ˆν˜Έ ( 컬럼 ) λ“±λ“±
μ†Œμ† 관계
γ„΄) μ‚¬μ›ν…Œμ΄λΈ” - μ‚¬μ›λ²ˆν˜Έ, 사원λͺ…, μ—°λ½μ²˜, 직급 ( 컬럼 ) λ“±λ“±
 
10. DBA = DB(DataBase) + A( Adminstrator ) == λ°μ΄ν„°λ² μ΄μŠ€ κ΄€λ¦¬μž ***
였라클 μ„€μΉ˜ ν•  λ•Œ 계정 2개 생성 + λΉ„λ°€λ²ˆν˜Έ λΆ€μ—¬
SYS > SYSTEM ss123$
λͺ¨λ“  κΆŒν•œ λͺ¨λ“  κΆŒν•œ( DB 생성 X )
 
11. SID( μ‹œμŠ€ν…œ μ‹λ³„μž ) == μ „μ—­ λ°μ΄ν„°λ² μ΄μŠ€ 이름 == XE ***
 
12. 였라클 μ‚­μ œ
1) 였라클 κ΄€λ ¨ λͺ¨λ“  μ„œλΉ„μŠ€ 쀑지
services.msc
2) deinstall, unistall 메뉴 클릭
ν”„λ‘œκ·Έλž¨ μΆ”κ°€ 및 μ‚­μ œ - oracle 검색후 μ„€μΉ˜λœ 파일 "제거"
3) 폴더 μ‚­μ œ X
4) λ ˆμ§€μŠ€ν„°λ¦¬ νŽΈμ§‘κΈ° : 4ꡰ데 μ‚­μ œ
 
13. κ΄€λ¦¬μž( SYS ) 접속 확인 , λͺ¨λ“  μ‚¬μš©μž 계정 확인
select *
from all_users;

show user;
> USER is "SYSTEM"

 

 
[였라클 μ„œλ²„] <----------------SQL----------------- ν΄λΌμ΄μ–ΈνŠΈλ„κ΅¬( 질의 / 응닡)
DQL
DDL
DCL
TCL
DML
계정생성
 
14. SQL ? ***
1) Structured Query Language(SQL)
κ΅¬μ‘°ν™”λœ 질의 μ–Έμ–΄
2) λ°μ΄ν„°λ² μ΄μŠ€ 생성,μ‚­μ œ
ν…Œμ΄λΈ” : 데이터 μΆ”κ°€, μˆ˜μ •, μ‚­μ œ λ“±λ“±
3) SEQUEL( μ‹œν€„ )
4) SQL μ£Όμš” κΈ°λŠ₯
γ„±. data μ •μ˜
γ„΄. data 검색
γ„·. data μ‘°μž‘
γ„Ή. μ ‘κ·Ό μ œμ–΄
ㅁ. data 곡유
λ“±λ“±
5) SQL은 κΈ°λ³Έ ν…Œμ΄λΈ”(table)을 λŒ€μƒμœΌλ‘œ μˆ˜ν–‰λœλ‹€.
6) κΈ°λ³Έν…Œμ΄λΈ”, λ·°( View )
4:01 μˆ˜μ—… μ‹œμž‘~
 
7) SQL μ’…λ₯˜ 5가지 *** ( μ•”κΈ° )
γ„±. 데이터 검색(쑰회) DQL : select λ¬Έ
γ„΄. 데이터 μ •μ˜ DDL : create, alter, drop λ¬Έ
ν…Œμ΄λΈ” 생성 ꡬ문
 
γ„·. 데이터 μ‘°μž‘ DML : insert, update, delete, rename, truncate λ¬Έ
γ„Ή. κΆŒν•œ λΆ€μ—¬,제거 DCL : grant, revoke λ¬Έ
ㅁ. νŠΈλžœμž­μ…˜ 처리 TCL : commit, rollback, save pointλ¬Έ

 

15. μ‚¬μš©μž 계정 생성 - DDL( create λ¬Έ ) μ‚¬μš©
- 데이터 μ •μ˜ DDLλ¬Έ
- CREATE USER λ¬Έ μ‚¬μš©
- CREATE USER μ‹œμŠ€ν…œ κΆŒν•œ μžˆμ–΄μ•Ό λœλ‹€.
// SYS : λͺ¨λ“  κΆŒν•œ κ΄€λ¦¬μž 계정
- ν˜•μ‹
CREATE USER 계정λͺ… IDENTIFIED BY λΉ„λ°€λ²ˆν˜Έ + ν•„μš”ν•œ κ²½μš°μΆ”κ°€ μ˜΅μ…˜ ;
create & μΆ”κ°€μ˜΅μ…˜

μ˜΅μ…˜ μ„€λͺ…

1) ν…Œμ΄λΈ”μŠ€νŽ˜μ΄μŠ€ 크기 

2) μž„μ‹œ μ €μž₯곡간

3) - 

4) - 

5) λΉ„λ°€λ²ˆν˜Έ 만기일자

6) 계정 μž κΈ€κ±΄μ§€ 풀건지

CREATE USER scott IDENTIFIED BY tiger ;

κ²°κ³Ό : User SCOTT created.

 

EXTERNALLY [AS 'certificate']

GLOBALLY [AS '[directory_DN]'

 

-- (문제) SCOTT κ³„μ •μœΌλ‘œ 접속
μƒνƒœ: μ‹€νŒ¨ -ν…ŒμŠ€νŠΈ μ‹€νŒ¨: ORA-01045: user SCOTT lacks CREATE SESSION privilege; logon denied
-- κ³„μ •λ§Œ μƒμ„±ν•œλ‹€κ³  둜그인 ν•  수 λŠ” μ—†λ‹€ . μ™œ ? 둜그인 ν•  κΆŒν•œ( CREATE SESSION) 을 가지고 μžˆμ–΄μ•Ό
-- ν•œλ‹€.

-- κΆŒν•œ λΆ€μ—¬
-- κΆŒν•œμ„ 가진 κ³„μ •μ—μ„œ κΆŒν•œ λΆ€μ—¬ν•  수 μžˆλ‹€.
-- SYS -> SCOTT CREATE SESSION κΆŒν•œ λΆ€μ—¬ν•˜λ©΄ λœλ‹€.
-- Ora_Help "grant" 검색
-- 2가지 κΆŒν•œ
1) μ‹œμŠ€ν…œ κΆŒν•œ( SYSTEM Privilege ) : [DB 객체]λ₯Ό 생성, μˆ˜μ •, μ‚­μ œ κΆŒν•œ
2) 객체 κΆŒν•œ ( OBJECT Privilege ) : 객체 λ‚΄μš©μ„ μ‘°μž‘( μΆ”κ°€,μˆ˜μ •,μ‚­μ œ, 검색) κΆŒν•œ

ν˜•μ‹
GRANT {grant_system_privilege ¦ grant_object_privilege};

【grant_system_privilege ν˜•μ‹γ€‘
{system_privilege ¦ role ¦ ALL PRIVILEGES},...
TO geant_clause [WITH ADMIN OPTION]

【grant_object_privilege ν˜•μ‹γ€‘
{{object_privilege ¦
{ALL [PRIVILEGES]} [(column,...)]},... on_object_clause
TO grant_clause [WITH HIERARCHY OPTION] [WITH GRANT OPTION]

【on_object_clause ν˜•μ‹γ€‘
ON {schema.object ¦
{DIRECTORY directory_name ¦
JAVA {SOURCE ¦ RESOURCE} [schema.] object
}

【grant_clause ν˜•μ‹γ€‘
{user [IDENTIFIED BY password ¦
role ¦
PUBLIC},...
;
 
GRANT CREATE SESSION TO scott;
-- Grant을(λ₯Ό) μ„±κ³΅ν–ˆμŠ΅λ‹ˆλ‹€.
 
 
-- SELECT λ¬Έ ( DQL ) 데이터 검색( 쑰회 )
SELECT *
FROM tabs;
-- μ‘°νšŒν•œ κ²°κ³Όκ°€ 없닀라고 μ‘λ‹΅λ°›μ•˜λ‹€.
-- 데이터 μ €μž₯, μˆ˜μ •,μ‚­μ œ λ“±λ“± SQL μ—°μŠ΅
-- SQL μ‹€ν–‰ λŒ€μƒ : table == 개체 == λ¦΄λ ˆμ΄μ…˜
-- column == attribute = 속성 == 





 

  • 넀이버 λΈ”λŸ¬κ·Έ κ³΅μœ ν•˜κΈ°
  • 넀이버 λ°΄λ“œμ— κ³΅μœ ν•˜κΈ°
  • 페이슀뢁 κ³΅μœ ν•˜κΈ°
  • μΉ΄μΉ΄μ˜€μŠ€ν† λ¦¬ κ³΅μœ ν•˜κΈ°