[DB] ORACLE - 1์ผ


ORACLE



์˜ค๋ผํด 1์ผ

http://www.oracle.com

OracleXE112_Win64.zip

์••์ถ• ํ’€๊ณ  ์„ค์น˜ํ•œ๋‹ค

1. ์›น : http://localhost:8080/apex

ID๋ช… : system / pw๋ช… : oracle โ†๊ด€๋ฆฌ์ž๊ณ„์ • 

ID๋ช… : scott / pw๋ช… : tiger  โ†์‚ฌ์šฉ์ž๊ณ„์ •

ID๋ช… : hr    / pw๋ช… : hr     โ†์‚ฌ์šฉ์ž๊ณ„์ •

SID๋ช… : xe


2. ์ฝ˜์†” : cmd ์ฐฝ์—์„œ

C:\> sqlplus hr/hr


3. ์˜ค๋ผํด์ด ๊ตฌ๋™๋˜์ง€ ์•Š์„ ๋•Œ ํ™•์ธํ•  ๊ฒƒ

๊ฐ€. ์‹œ์ž‘โ†’์„ค์ •โ†’์ œ์–ดํŒโ†’๊ด€๋ฆฌ๋„๊ตฌโ†’์„œ๋น„์Šค

๋‚˜. ์ปดํ“จํ„ฐโ†’๊ด€๋ฆฌโ†’์„œ๋น„์Šค

OracleServiceXE ์‹œ์ž‘๋จ

OracleXETNSListener ์‹œ์ž‘๋จ


C:\oraclexe\app\oracle\product\10.2.0\server\network\ADMIN
listener.ora
tnsnames.ora
select * from tab; โ†ํ…Œ์ด๋ธ” ๋ชฉ๋กํ™•์ธ
desc employees; โ†describe์˜ ์•ฝ์ž(ํ…Œ์ด๋ธ” ๊ตฌ์กฐํ™•์ธ) 

select * from employees; 
select * from departments;
select * from jobs;


โ˜… SQL๋ฌธ

  • ๋ฐ์ดํ„ฐ ์กฐ์ž‘์–ด (DML : Data Manipulation Language)
    • insert, update, delete, merge
  • ๋ฐ์ดํ„ฐ ์ •์˜์–ด (DDL : Data Definition Language)
    • create, alter, drop, rename, truncate
  • ๋ฐ์ดํƒ€๊ฒ€์ƒ‰
    • select
  • ํŠธ๋žœ์ ์…˜ ์ œ์–ด
    • commit, rollback, savepoint
  • ๋ฐ์ดํ„ฐ ์ œ์–ด์–ด (DCL : Data Control Language)
    • grant, reboke


โ€ป select

[ํ˜•์‹]

select [distinct] [์ปฌ๋Ÿผ1,์ปฌ๋Ÿผ2,โ€ฆ..][as ๋ณ„๋ช…][ย ์—ฐ์‚ฐ์ž][*]

from ํ…Œ์ด๋ธ”๋ช…

[where ์กฐ๊ฑด์ ˆ]

distinct : ์ค‘๋ณต์ œ๊ฑฐ

* : ๋ชจ๋“ 

์กฐ๊ฑด์ ˆ : and,or,like,in,between and,is null,is not null


ex1 ) employeesํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ์‚ฌ์›์˜ ์‚ฌ์›๋ฒˆํ˜ธ,์ด๋ฆ„(last_name),๊ธ‰์—ฌ ๊ฒ€์ƒ‰

select employee_id, last_name, salary from employees;


ex2 ) ๋ณ„๋ช…๋ถ™์ด๊ธฐ(as๋Š” ์ƒ๋žต๊ฐ€๋Šฅ)

employeesํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ์‚ฌ์›์˜ ์‚ฌ์›๋ฒˆํ˜ธ,์ด๋ฆ„(last_name),๊ธ‰์—ฌ ๊ฒ€์ƒ‰

์กฐ๊ฑด) title ์‚ฌ์›๋ฒˆํ˜ธ, ์ด๋ฆ„ ,๊ธ‰์—ฌ๋กœ ์ถœ๋ ฅํ• ๊ฒƒ

select employee_id as ์‚ฌ์›๋ฒˆํ˜ธ , last_name as "์ด ๋ฆ„", salary as "๊ธ‰ ์—ฌ" from employees;

โ€‹ //๊ณต๋ฐฑ์œผ๋กœ ์ธํ•ด โ€œโ€œ์‚ฌ์šฉ(์™ธ๋ถ€๋กœ ๋ณด์ด๋Š”๊ฒƒ)

โ€‹ //Data ๋ถ€๋ถ„์€ โ€˜ โ€˜ Single


ex3 ) employeeํ…Œ์ด๋ธ”์—์„œ ์‚ฌ์›๋ฒˆํ˜ธ,์ด๋ฆ„,์—ฐ๋ด‰์„ ๊ตฌํ•˜์‹œ์˜ค

์กฐ๊ฑด1) ์—ฐ๋ด‰ = ๊ธ‰์—ฌ * 12

์กฐ๊ฑด2) ์ œ๋ชฉ์„ ์‚ฌ์›๋ฒˆํ˜ธ, ์ด๋ฆ„, ์—ฐ๋ด‰์œผ๋กœ ์ถœ๋ ฅ

select employee_id as ์‚ฌ์›๋ฒˆํ˜ธ , last_name as "์ด ๋ฆ„", salary*12 as "์—ฐ ๋ด‰"
from employees;


ex4 ) ์—ฐ๊ฒฐ์—ฐ์‚ฐ์ž ์ปฌ๋Ÿผ์„ ์—ฐ๊ฒฐํ•ด์„œ ์ถœ๋ ฅ

frist_name๊ณผ last_name์„ ์—ฐ๊ฒฐํ•ด์„œ ์ถœ๋ ฅํ•˜์‹œ์˜ค

  ์ด  ๋ฆ„
------------					์—ฐ๊ฒฐ ์—ฐ์‚ฐ์ž ( || )
Ellen  Abel
select first_name||' '||last_name as "์ด ๋ฆ„" from employees;




[๋ฌธ์ œ 1] ๋‹ค์Œ์ฒ˜๋Ÿผ ์ถœ๋ ฅํ•˜์‹œ์˜ค

์‚ฌ์›๋ฒˆํ˜ธ  ์ด ๋ฆ„        ์—ฐ ๋ด‰
----------------------------
100   Steven King  288000๋‹ฌ๋Ÿฌ 


[๋ฌธ์ œ 2] ๋‹ค์Œ์ฒ˜๋Ÿผ ์ถœ๋ ฅํ•˜์‹œ์˜ค (last_name, job_id)

Employee Detail
--------------------
King is a SA_REP
King is a AD_PRES


ex5 ) distinct(์ค‘๋ณต์ œ๊ฑฐ)

employees ํ…Œ์ด๋ธ”์—์„œ ๋ถ€์„œID๋ฅผ ์ถœ๋ ฅํ•˜์‹œ์˜ค

select distinct department_id from employees; 


ex6 ) 10๋ฒˆ๋ถ€์„œ ๋˜๋Š” 90๋ฒˆ๋ถ€์„œ ์‚ฌ์›๋“ค์˜ ์ด๋ฆ„, ์ž…์‚ฌ์ผ, ๋ถ€์„œID๋ฅผ ์ถœ๋ ฅํ•˜์‹œ์˜ค

select last_name, hire_date, department_id
from employees
where department_id=10 or department_id=90;


ex7 ) ๊ธ‰์—ฌ๊ฐ€ 2500์ด์ƒ 3500๋ฏธ๋งŒ์ธ ์‚ฌ์›์˜ ์ด๋ฆ„(last), ์ž…์‚ฌ์ผ, ๊ธ‰์—ฌ๋ฅผ ๊ฒ€์ƒ‰ํ•˜์‹œ์˜ค

select last_name, hire_date, salary
from employees
where salary>=2500 and salary<3500;



[๋ฌธ์ œ 3] ๊ธ‰์—ฌ๊ฐ€ 2500์ดํ•˜ ์ด๊ฑฐ๋‚˜ 3000์ด์ƒ์ด๋ฉด์„œ 90๋ฒˆ ๋ถ€์„œ์ธ

์‚ฌ์›์˜ ์ด๋ฆ„, ๊ธ‰์—ฌ, ๋ถ€์„œID๋ฅผ ์ถœ๋ ฅํ•˜์‹œ์˜ค.

์กฐ๊ฑด1) ์ œ๋ชฉ์€ ์‚ฌ์›๋ช…, ์›” ๊ธ‰, ๋ถ€์„œ์ฝ”๋“œ๋กœ ํ•˜์‹œ์˜ค

์กฐ๊ฑด2) ๊ธ‰์—ฌ์•ž์— $๋ฅผ ๋ถ™์ด์‹œ์˜ค

์กฐ๊ฑด3) ์‚ฌ์›๋ช…์€ first_name๊ณผ last_name์„ ์—ฐ๊ฒฐํ•ด์„œ ์ถœ๋ ฅํ•˜์‹œ์˜ค


ex8 ) โ€˜Kingโ€™์‚ฌ์›์˜ ๋ชจ๋“  ์ปฌ๋Ÿผ์„ ํ‘œ์‹œํ•˜์‹œ์˜ค

select * from employees where last_name='King';

โ†’ ๋ฌธ์ž์—ด ๊ฒ€์ƒ‰ํ•  ๋•Œ๋Š” ๋Œ€,์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„


  • like : ๋ฌธ์ž๋ฅผ ํฌํ•จ

  • โ€˜%dโ€™ - d๋กœ ๋๋‚˜๋Š”

  • โ€˜a%โ€™ - a๋กœ ์‹œ์ž‘ํ•˜๋Š”

  • โ€˜%test% - test๊ฐ€ ํฌํ•จ๋˜์–ด์žˆ๋Š”
  • โ€˜_a%โ€™ - ๋‘๋ฒˆ์งธ ๊ธ€์ž๊ฐ€ a๋กœ ์‹œ์ž‘ํ•˜๊ณ  ๋‚˜๋จธ์ง€๋Š” ๋ฌด์‹œ
  • โ€˜__a%โ€™ - ์„ธ๋ฒˆ์งธ ๊ธ€์ž๊ฐ€ a๋กœ ์‹œ์ž‘ํ•˜๊ณ  ๋‚˜๋จธ์ง€๋Š” ๋ฌด์‹œ


ex9 ) ์—…๋ฌดID์— MAN์ด ํฌํ•จ๋˜์–ด์žˆ๋Š” ์‚ฌ์›๋“ค์˜ ์ด๋ฆ„,์—…๋ฌดID,๋ถ€์„œID๋ฅผ ์ถœ๋ ฅํ•˜์‹œ์˜ค

select last_name, job_id, department_id
from employees
where job_id like '%MAN%';


ex10 ) ์—…๋ฌดID๊ฐ€ IT๋กœ ์‹œ์ž‘ํ•˜๋Š” ์‚ฌ์›๋“ค์˜ ์ด๋ฆ„, ์—…๋ฌดID, ๋ถ€์„œID๋ฅผ ์ถœ๋ ฅํ•˜์‹œ์˜ค

select last_name, job_id, department_id
from employees
where job_id like 'IT%';


ex11 ) is null / is not null

์ปค๋ฏธ์…˜์„ ๋ฐ›๋Š” ์‚ฌ์›๋“ค์˜ ์ด๋ฆ„๊ณผ ๊ธ‰์—ฌ, ์ปค๋ฏธ์…˜์„ ์ถœ๋ ฅํ•˜์‹œ์˜ค

select last_name, salary, commission_pct
from employees
where commission_pct is not null;

์ปค๋ฏธ์…˜์„ ๋ฐ›์ง€ ์•Š๋Š” ์‚ฌ์›๋“ค์˜ ์ด๋ฆ„๊ณผ ๊ธ‰์—ฌ, ์ปค๋ฏธ์…˜์„ ์ถœ๋ ฅํ•˜์‹œ์˜ค

select last_name, salary, commission_pct
from employees
where commission_pct is null;


ex12 ) in์—ฐ์‚ฐ์ž(or์—ฐ์‚ฐ์ž์˜ ๋‹ค๋ฅธํ‘œํ˜„)

์—…๋ฌดID๊ฐ€ FI_MGR์ด๊ฑฐ๋‚˜ FI_ACCOUNT์ธ ์‚ฌ์›๋“ค์˜ ์‚ฌ์›๋ฒˆํ˜ธ,์ด๋ฆ„,์ง๋ฌด๋ฅผ ์ถœ๋ ฅํ•˜์‹œ์˜ค

select employee_id, last_name, job_id
from employees
where job_id='FI_MGR' or job_id='FI_ACCOUNT';


select employee_id, last_name, job_id
from employees
where job_id in('FI_MGR', 'FI_ACCOUNT');


ex13 ) between์—ฐ์‚ฐ์ž(and์—ฐ์‚ฐ์ž์˜ ๋‹ค๋ฅธ ํ‘œํ˜„) : ์ดˆ๊ณผ,๋ฏธ๋งŒ์—์„œ๋Š” ์‚ฌ์šฉํ• ์ˆ˜ ์—†๋‹ค

๊ธ‰์—ฌ๊ฐ€ 10000์ด์ƒ 20000์ดํ•˜์ธ ์‚ฌ์›์˜ ์‚ฌ์›๋ฒˆํ˜ธ,์ด๋ฆ„,๊ธ‰์—ฌ๋ฅผ ์ถœ๋ ฅํ•˜์‹œ์˜ค

select employee_id, last_name, salary
from employees
where salary>=10000 and salary<=20000;


select employee_id, last_name, salary
from employees
where salary between 10000 and 20000;



[๋ฌธ์ œ 4] ์—…๋ฌดID๊ฐ€ โ€˜SA_REPโ€™ ์ด๊ฑฐ๋‚˜ โ€˜AD_PRESโ€™ ์ด๋ฉด์„œ ๊ธ‰์—ฌ๊ฐ€ 15000๋ฅผ

์ดˆ๊ณผํ•˜๋Š” ์‚ฌ์›๋“ค์˜ ์ด๋ฆ„,์—…๋ฌดID,๊ธ‰์—ฌ๋ฅผ ์ถœ๋ ฅํ•˜์‹œ์˜ค

์ด๋ฆ„    ์—…๋ฌดID      ๊ธ‰ ์—ฌ
-----------------------------
King   AD_PRES    24000์›


[๋ฌธ์ œ 5] Employeesํ…Œ์ด๋ธ”์˜ ์—…๋ฌดID๊ฐ€ ์ค‘๋ณต๋˜์ง€ ์•Š๊ฒŒ ํ‘œ์‹œํ•˜๋Š” ์งˆ์˜๋ฅผ ์ž‘์„ฑํ•˜์‹œ์˜ค

 JOB_ID
-----------
AC_ACCOUNT
AC_MGR
   :