TIL 23.09.01

ν™©μ€ν•˜Β·2023λ…„ 9μ›” 1일
0

TIL

λͺ©λ‘ 보기
70/146

πŸ“ŒToday I Learned

였라클

ex20 Join

λΉ„λ””μ˜€ + μž₯λ₯΄ > 쑰인
쑰인은 erd의 선이 μ—°κ²°λœ 관계에 λ”°λΌμ„œ λ§Œλ“€ 수 μžˆλ‹€.

3. μ™ΈλΆ€ 쑰인, OUTER JOIN

  • λ‚΄λΆ€ 쑰인의 λ°˜λŒ“λ§(X)
  • λ‚΄λΆ€ 쑰인 κ²°κ³Ό + λ‚΄λΆ€ 쑰인에 ν¬ν•¨λ˜μ§€ μ•Šμ•˜λ˜ λΆ€λͺ¨ ν…Œμ΄λΈ”μ˜ λ‚˜λ¨Έμ§€ λ ˆμ½”λ“œλ₯Ό ν•©ν•˜λŠ” 쑰인
select 
	컬럼리슀트
from ν…Œμ΄λΈ”A
	inner join ν…Œμ΄λΈ”B
		on ν…Œμ΄λΈ”A.컬럼 = ν…Œμ΄λΈ”B.컬럼;
	
select 
	컬럼리슀트
from ν…Œμ΄λΈ”A
	(left|right) outer join ν…Œμ΄λΈ”B
		on ν…Œμ΄λΈ”A.컬럼 = ν…Œμ΄λΈ”B.컬럼;

내뢀쑰인 - λͺ¨λ“  ν…Œμ΄λΈ”μ— λ™μ‹œμ— μ‘΄μž¬ν•˜λŠ” κ°’λ§Œ 뢈러올 수 μžˆλ‹€.

외뢀쑰인 - μ΄λ„ˆμ‘°μΈν•΄μ„œ 9μ—΄κΉŒμ§€ κΉ”μ•„λ‘ . μ΄λ„ˆμ‘°μΈμ— ν¬ν•¨λ˜μ§€ μ•Šμ€ λ‚˜λ¨Έμ§€λ₯Ό μΆ”κ°€λ‘œ κ°€μ Έμ™€μ„œ λΆ™μ—¬μ€€λ‹€.

4. μ…€ν”„ 쑰인, SELF JOIN

  • 1개의 ν…Œμ΄λΈ”μ„ μ‚¬μš©ν•˜λŠ” 쑰인
  • ν…Œμ΄λΈ”μ΄ 자기 μŠ€μŠ€λ‘œμ™€ 관계λ₯Ό λ§ΊλŠ” 경우

  • 닀쀑 쑰인(2개) + λ‚΄λΆ€ 쑰인
  • 닀쀑 쑰인(2개) + μ™ΈλΆ€ 쑰인

  • μ…€ν”„ 쑰인(1개) + λ‚΄λΆ€ 쑰인
  • μ…€ν”„ 쑰인(1개) + μ™ΈλΆ€ 쑰인
SELECT 
	b.name AS 직원λͺ…,
	b.department AS λΆ€μ„œλͺ…,
	a.name AS 상사λͺ…
FROM tblself a				-- μ—­ν• : λΆ€λͺ¨ν…Œμ΄λΈ” >
	INNER JOIN tblself b	-- μ—­ν• : μžμ‹ν…Œμ΄λΈ” >
		ON a.seq = b.super;

5. 전체 μ™ΈλΆ€ 쑰인, FULL OUTER JOIN

  • μ„œλ‘œ μ°Έμ‘°ν•˜κ³  μžˆλŠ” κ΄€κ³„μ—μ„œ μ‚¬μš©
-- λ‚¨μž, μ—¬μž λͺ…단
SELECT 
	m.name,
	w.name
FROM tblmen m
	FULL OUTER JOIN tblwomen w
		ON m.name = w.couple;

ex21 View

View, λ·°

  • λ°μ΄ν„°λ² μ΄μŠ€ 객체 쀑 ν•˜λ‚˜(ν…Œμ΄λΈ”, μ œμ•½μ‚¬ν•­, λ·°, μ‹œν€€μŠ€)
  • 가상 ν…Œμ΄λΈ”, λ·° ν…Œμ΄λΈ” λ“±...
  • ν…Œμ΄λΈ”μ²˜λŸΌ μ‚¬μš©ν•œλ‹€.(μ€‘μš”)
  • 쿼리의 양을 쀄인닀.
  • μ •μ˜: 쿼리(SQL)을 μ €μž₯ν•˜λŠ” 객체
  • λͺ©μ : κΆŒν•œ ν†΅μ œ
create [or replace] view 뷰이름
as
select λ¬Έ;


CREATE OR REPLACE VIEW vwInsa
AS 
SELECT * FROM tblinsa;

SELECT * FROM vwInsa; -- tblInsa ν…Œμ΄λΈ”μ˜ 볡사본 > μ‹€λͺ… λ·°
SELECT * FROM (SELECT * FROM tblinsa); -- > 읡λͺ… λ·°

λ·° μ‚¬μš© 주의점!!

  1. select > μ‹€ν–‰ O > λ·°λŠ” 읽기 μ „μš©μœΌλ‘œ μ‚¬μš©ν•œλ‹€. == 읽기 μ „μš© ν…Œμ΄λΈ”
  2. insert > μ‹€ν–‰ O > μ ˆλŒ€ μ‚¬μš© κΈˆμ§€
  3. udpate > μ‹€ν–‰ O > μ ˆλŒ€ μ‚¬μš© κΈˆμ§€
  4. delete > μ‹€ν–‰ O > μ ˆλŒ€ μ‚¬μš© κΈˆμ§€

ex22 Union

관계 λŒ€μˆ˜ μ—°μ‚°

  1. μ…€λ ‰μ…˜ > select where
  2. ν”„λ‘œμ μ…˜ > select column
  3. 쑰인
  4. 합집합(union), 차집합(minus), ꡐ집합(intersect)

μœ λ‹ˆμ˜¨, union

  • μŠ€ν‚€λ§ˆκ°€ λ™μΌν•œ 결과셋끼리 κ°€λŠ₯
SELECT * FROM tblmen
union
SELECT * FROM tblwomen;

-- 컬럼 이름은 μ•ˆμ€‘μš”ν•¨. μžλ£Œν˜•λ§Œ μ€‘μš”ν•¨.
SELECT name, address, salary FROM tblstaff
union
SELECT name, city, basicpay FROM tblinsa;

--union > μˆ˜ν•™μ˜ 집합 > 쀑볡 제거
SELECT * FROM tblAAA
union
SELECT * FROM tblBBB;

-- union all > 쀑볡값 ν—ˆμš©
SELECT * FROM tblAAA
UNION ALL
SELECT * FROM tblBBB;


-- intersect > ꡐ집합
SELECT * FROM tblAAA
intersect
SELECT * FROM tblBBB;


-- minus > 차집합(A - B) > ν”Όμ—°μ‚°μž μœ„μΉ˜ μ€‘μš”
SELECT * FROM tblAAA
minus
SELECT * FROM tblBBB;

SELECT * FROM tblBBB
minus
SELECT * FROM tblAAA;

ex23 Alter

DDL > 객체 μ‘°μž‘

  • 객체 생성: CREATE
  • 객체 μˆ˜μ •: ALTER
  • 객체 μ‚­μ œ: DROP

DML > 데이터 μ‘°μž‘

  • 데이터 생성: INSERT
  • 데이터 μˆ˜μ •: UPDATE
  • 데이터 μ‚­μ œ: DELETE

ν…Œμ΄λΈ” μˆ˜μ •ν•˜κΈ°

  • ν…Œμ΄λΈ” μ •μ˜ μˆ˜μ • > μŠ€ν‚€λ§ˆ μˆ˜μ • > 컬럼 μˆ˜μ • > 컬럼λͺ… OR μžλ£Œν˜•(길이) OR μ œμ•½μ‚¬ν•­
  • λ˜λ„λ‘ ν…Œμ΄λΈ” μˆ˜μ •ν•˜λŠ” 상황을 λ°œμƒμ‹œν‚€λ©΄ μ•ˆλœλ‹€!! > 섀계λ₯Ό λ°˜λ“œμ‹œ μ™„λ²½~

ν…Œμ΄λΈ” μˆ˜μ •ν•΄μ•Ό ν•˜λŠ” 상황 λ°œμƒ!!

  1. ν…Œμ΄λΈ” μ‚­μ œ(DROP) > ν…Œμ΄λΈ” DDL(CREATE) μˆ˜μ • > μˆ˜μ •λœ DDL둜 μƒˆλ‘­κ²Œ ν…Œμ΄λΈ” 생성
    a. κΈ°μ‘΄ ν…Œμ΄λΈ”μ— 데이터가 μ—†μ—ˆμ„ 경우 > 아무 문제 μ—†μŒ
    b. κΈ°μ‘΄ ν…Œμ΄λΈ”μ— 데이터가 μžˆμ—ˆμ„ 경우 > 미리 데이터 λ°±μ—… > ν…Œμ΄λΈ” μ‚­μ œ > μˆ˜μ •λœ ν…Œμ΄λΈ” λ‹€μ‹œ 생성 > 데이터 볡ꡬ
    - 개발 쀑에 μ‚¬μš© κ°€λŠ₯
    - 곡뢀할 λ•Œ μ‚¬μš© κ°€λŠ₯
    - μ„œλΉ„μŠ€ 운영 μ€‘μ—λŠ” 거의 λΆˆκ°€λŠ₯ν•œ 방법
  2. ALTER λͺ…λ Ήμ–΄ μ‚¬μš© > κΈ°μ‘΄ ν…Œμ΄λΈ”μ˜ ꡬ쑰 λ³€κ²½
    a. κΈ°μ‘΄ ν…Œμ΄λΈ”μ— 데이터가 μ—†μ—ˆμ„ 경우 > 아무 문제 μ—†μŒ
    b. κΈ°μ‘΄ ν…Œμ΄λΈ”μ— 데이터가 μžˆμ—ˆμ„ 경우 > κ²½μš°μ— 따라 λΉ„μš© 차이 λ°œμƒ
    - 개발 쀑에 μ‚¬μš© κ°€λŠ₯
    - 곡뢀할 λ•Œ μ‚¬μš© κ°€λŠ₯
    - μ„œλΉ„μŠ€ 운영 μ€‘μ—λŠ” κ²½μš°μ— 따라 κ°€λŠ₯
-- Case 1. μƒˆλ‘œμš΄ μ»¬λŸΌμ„ μΆ”κ°€ν•˜κΈ° > 가격 μΆ”κ°€
ALTER TABLE tblEdit 
	ADD (price NUMBER);

SELECT * FROM tbledit;

-- Case 2. 컬럼 μ‚­μ œν•˜κΈ°
ALTER TABLE tbledit
DROP COLUMN color;

-- Case 3. 컬럼 μˆ˜μ •ν•˜κΈ°
SELECT * FROM tblEdit;

INSERT INTO tblEdit VALUES (4, 'μ• ν”Œ M2 λ§₯뢁 ν”„λ‘œ 2023');
profile
μ°¨κ·Όμ°¨κ·Ό ν•˜λ‚˜μ”©

0개의 λŒ“κΈ€