TIL 23.08.30

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

TIL

λͺ©λ‘ 보기
68/146

πŸ“ŒToday I Learned

였라클

ex13_DDL

2. PRIMARY KEY, PK

  • κΈ°λ³Έν‚€
  • ν…Œμ΄λΈ”μ˜ 행을 κ΅¬λΆ„ν•˜κΈ° μœ„ν•œ μ œμ•½ 사항
  • 행을 μ‹λ³„ν•˜λŠ” μˆ˜λ§Žμ€ ν‚€(후보킀)λ“€ 쀑 λŒ€ν‘œλ‘œ μ„ μ •λœ ν‚€
  • λͺ¨λ“  ν…Œμ΄λΈ”μ€ λ°˜λ“œμ‹œ 1개의 κΈ°λ³Έν‚€κ°€ μ‘΄μž¬ν•΄μ•Ό ν•œλ‹€.(***)
  • 쀑볡값을 κ°€μ§ˆ 수 μ—†λ‹€. > unique
  • 값을 λ°˜λ“œμ‹œ 가진닀. > not null

3. FOREIGN KEY, FK

  • λ‹€μŒμ—

4. UNIQUE

  • μœ μΌν•˜λ‹€. > λ ˆμ½”λ“œκ°„μ˜ 쀑볡값을 κ°€μ§ˆ 수 μ—†λ‹€.
  • null을 κ°€μ§ˆ 수 μžˆλ‹€. > μ‹λ³„μžκ°€ 될 수 μ—†λ‹€.
    ex) μ΄ˆλ“±ν•˜κ΅‘ ꡐ싀
    - 학생(번호,이름,직책)
    1,홍길동,반μž₯
    2,μ•„λ¬΄κ°œ,null
    3,ν•˜ν•˜ν•˜,λΆ€λ°˜μž₯
    4,ν…ŒμŠ€νŠΈ,null

PK = UQ + NN

5. CHECK

  • μ‚¬μš©μž μ •μ˜ν˜•
  • where절의 쑰건 > 컬럼의 μ œμ•½ μ‚¬ν•­μœΌλ‘œ 적용

6. DEFAULT

  • κΈ°λ³Έκ°’ μ„€μ •
  • insert/update μž‘μ—… μ‹œ > μ»¬λŸΌμ— 값을 μ•ˆ λ„£μœΌλ©΄ null λŒ€μ‹  미리 μ„€μ •ν•œ 값을 λŒ€μž…

ex14_sequence

μ‹œν€€μŠ€, Sequence

  • λ°μ΄ν„°λ² μ΄μŠ€ 객체 쀑 ν•˜λ‚˜
  • 였라클 μ „μš© 객체(λ‹€λ₯Έ DBMS μ œν’ˆμ—λŠ” μ—†μŒ)
  • 일련 번호λ₯Ό μƒμ„±ν•˜λŠ” 객체(***)
  • (주둜) μ‹λ³„μž(일련번호)λ₯Ό λ§Œλ“œλŠ”λ° μ‚¬μš©ν•œλ‹€. > PK κ°’μœΌλ‘œ μ‚¬μš©ν•œλ‹€.

μ‹œν€€μŠ€ 객체 μƒμ„±ν•˜κΈ°

  • create sequence μ‹œν€€μŠ€λͺ…;

μ‹œν€€μŠ€ 객체 μ‚­μ œν•˜κΈ°

  • drop sequence μ‹œν€€μŠ€λͺ…;

μ‹œν€€μŠ€ 객체 μ‚¬μš©ν•˜κΈ°(ν•¨μˆ˜)

  • μ‹œν€€μŠ€κ°μ²΄.nextVal
  • μ‹œν€€μŠ€κ°μ²΄.currVal

  • currValλŠ” μ΅œμ†Œ 1번 μ΄μƒμ˜ nextValλ₯Ό ν˜ΈμΆœν•΄μ•Ό μ‚¬μš©μ΄ κ°€λŠ₯ν•˜λ‹€.

μ‹œν€€μŠ€ 객체 μƒμ„±ν•˜κΈ°

create sequence μ‹œν€€μŠ€λͺ…;

create sequence μ‹œν€€μŠ€λͺ…
increament by n -- 증감치(μ–‘μˆ˜/음수)
start with n -- μ‹œμž‘κ°’(Seed)
maxvalue n -- μ΅œλŒ“κ°’
minvalue n -- μ΅œμ†Ÿκ°’
cycle -- μˆœν™˜
cache n; --

ex15_insert

INSERT

  • DML
  • ν…Œμ΄λΈ”μ— 데이터λ₯Ό μΆ”κ°€ν•˜λŠ” λͺ…λ Ήμ–΄

INSERT ꡬ문

  • insert into ν…Œμ΄λΈ”λͺ… (컬럼리슀트) values (κ°’λ¦¬μŠ€νŠΈ);
  1. ν‘œμ€€
    : 원본 ν…Œμ΄λΈ”μ˜ μ •μ˜λœ 컬럼 μˆœμ„œλŒ€λ‘œ 컬럼 λ¦¬μŠ€νŠΈμ™€ κ°’ 리슀트λ₯Ό κ΅¬μ„±ν•˜λŠ” 방법
    : νŠΉλ³„ν•œ μ΄μœ κ°€ μ—†μœΌλ©΄ 이 방식 μ‚¬μš©

  2. 컬럼리슀트의 μˆœμ„œλŠ” 원본 ν…Œμ΄λΈ”κ³Ό 상관없닀.
    : 컬럼 λ¦¬μŠ€νŠΈμ™€ κ°’ 리슀트의 μˆœμ„œλ§Œ λ™μΌν•˜λ©΄ λœλ‹€.

  3. ORA-00947: not enough values

  4. ORA-00913: too many values

  5. null 컬럼 μ‘°μž‘
    5.a null μƒμˆ˜
    5.b 컬럼 μƒλž΅

  6. default 컬럼 μ‘°μž‘
    6.a 컬럼 μƒλž΅ > null λŒ€μž… > default 호좜
    6.b null μƒμˆ˜ > null λŒ€μž…(개발자 μ˜μ§€ ν‘œν˜„) > default λ™μž‘ μ•ˆν•¨
    6.c default μƒμˆ˜

  7. 단좕
    컬럼 리슀트λ₯Ό μƒλž΅ν•  수 μžˆλ‹€.
    μ»¬λŸΌμ‹œνŠΈλ₯Ό μƒλž΅ν•˜λ©΄ ν…Œμ΄λΈ”μ˜ 원본 컬럼 μˆœμ„œλŒ€λ‘œ κ°’λ¦¬μŠ€νŠΈλ₯Ό μž‘μ„±ν•΄μ•Ό ν•œλ‹€.
    null μ»¬λŸΌμ„ μƒλž΅ λΆˆκ°€λŠ₯
    default μ»¬λŸΌμ„ μƒλž΅ λΆˆκ°€λŠ₯

  8. tblMemo ν…Œμ΄λΈ” > 볡사 > μƒˆ ν…Œμ΄λΈ” 생성(tblMemoCopy)

  9. tblMemo ν…Œμ΄λΈ” > 볡사 > μƒˆ ν…Œμ΄λΈ” 생성(tblMemoCopy2)
    μ œμ•½ 사항이 볡사가 μ•ˆλœλ‹€.
    μž„μ‹œ ν…ŒμŠ€νŠΈμš©μœΌλ‘œλ§Œ μ‚¬μš© > λ‹€λž‘μ˜ 데이터, μž„μ‹œ 데이터

ex16_update

UPDATE

  • DML
  • μ›ν•˜λŠ” ν–‰μ˜ μ›ν•˜λŠ” μ»¬λŸΌκ°’μ„ μˆ˜μ •ν•˜λŠ” λͺ…λ Ήμ–΄

UPDATE ꡬ문

  • UPDATE ν…Œμ΄λΈ”λͺ… set 컬럼λͺ… = κ°’ [, 컬럼λͺ… = κ°’] x N [WHERE 절]

ex17_delete

DELETE

  • DML
  • μ›ν•˜λŠ” 행을 μ‚­μ œν•˜λŠ” λͺ…λ Ήμ–΄

DELETE ꡬ문

  • delete [from] ν…Œμ΄λΈ”λͺ… [where절]

ex18_group_by

[WITH ]
SELECT column_list
FROM table_name
[WHERE search_condition][GROUP BY group_by_expression]
[HAVING search_condition]ORDER BY order_expression [ASC|DESC]]

select 컬럼리슀트 4. 컬럼 지정(보고싢은 컬럼만 κ°€μ Έμ˜€κΈ°)
from ν…Œμ΄λΈ” ----- 1. ν…Œμ΄λΈ” 지정
where 쑰건 ------ 2. 쑰건 지정(보고싢은 ν–‰λ§Œ κ°€μ Έμ˜€κΈ°)
group by κΈ°μ€€ --- 3. (λ ˆμ½”λ“œλΌλ¦¬) 그룹을 λ‚˜λˆˆλ‹€.
order by μ •λ ¬κΈ°μ€€; 5. μˆœμ„œλŒ€λ‘œ

group by λͺ©μ  > 그룹별 톡계값을 κ΅¬ν•˜κΈ° μœ„ν•΄μ„œ!!!!! > 집계 ν•¨μˆ˜ μ‚¬μš©

ORA-00979: not a GROUP BY expression
group by μ‚¬μš© μ‹œ > select 컬럼리슀트 > 일반 컬럼 λͺ…μ‹œ λΆˆκ°€λŠ₯ > 집계 ν•¨μˆ˜ + κ·Έλ£Ή 컬럼

SELECT								-- 4. 각 그룹별 > 집계 ν•¨μˆ˜
	buseo,
	round(avg(basicpay))
FROM								-- 1. 60λͺ…μ˜ 데이터λ₯Ό κ°€μ Έμ˜¨λ‹€.
	tblinsa								
WHERE								-- 2. 60λͺ…을 λŒ€μƒμœΌλ‘œ 쑰건을 κ²€μ‚¬ν•œλ‹€.
	basicpay >= 1500000
GROUP BY							-- 3. 2λ²ˆμ„ ν†΅κ³Όν•œ μ‚¬λžŒλ“€(27λͺ…) λŒ€μƒμœΌλ‘œ 그룹을 μ§“λŠ”λ‹€.
profile
μ°¨κ·Όμ°¨κ·Ό ν•˜λ‚˜μ”©

0개의 λŒ“κΈ€