๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ“ฆ ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค (DB) ๐Ÿ“ฆ/๐Ÿ…พ ์˜ค๋ผํด DB & SQL

SELECT ๋ฌธ - ์ค‘๊ฐ„์ ๊ฒ€ ์˜ˆ์ œ

by Meteora_ 2021. 2. 8.
728x90
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
-- ๋ฌธ์ œ1) EMPLOYEES ํ…Œ์ด๋ธ”์—์„œ ๊ธ‰์—ฌ๊ฐ€ 3000์ด์ƒ์ธ ์‚ฌ์›์˜ ์‚ฌ์›๋ฒˆํ˜ธ, ์ด๋ฆ„, ๋‹ด๋‹น์—…๋ฌด, ๊ธ‰์—ฌ๋ฅผ ์ถœ๋ ฅํ•˜๋ผ.
SELECT employee_id, first_name, job_id, salary
FROM employees
WHERE salary >= 3000;
 
-- ๋ฌธ์ œ2) EMPLOYEES ํ…Œ์ด๋ธ”์—์„œ ๋‹ด๋‹น ์—…๋ฌด๊ฐ€ ST_MAN์ธ ์‚ฌ์›์˜ ์‚ฌ์›๋ฒˆํ˜ธ, ์„ฑ๋ช…, ๋‹ด๋‹น์—…๋ฌด, ๊ธ‰์—ฌ, ๋ถ€์„œ๋ฒˆํ˜ธ๋ฅผ ์ถœ๋ ฅํ•˜๋ผ.
SELECT employee_id, first_name, job_id, salary, department_id
FROM employees
WHERE job_id = 'ST_MAN';
 
-- ๋ฌธ์ œ3) EMPLOYEES ํ…Œ์ด๋ธ”์—์„œ ์ž…์‚ฌ์ผ์ž๊ฐ€ 2006๋…„ 1์›” 1์ผ ์ดํ›„์— ์ž…์‚ฌํ•œ ์‚ฌ์›์˜ ์ •๋ณด๋ฅผ 
-- ์‚ฌ์›๋ฒˆํ˜ธ, ์„ฑ๋ช…, ๋‹ด๋‹น์—…๋ฌด, ๊ธ‰์—ฌ, ์ž…์‚ฌ์ผ์ž, ๋ถ€์„œ๋ฒˆํ˜ธ๋ฅผ ์ถœ๋ ฅํ•˜๋ผ.
SELECT employee_id, first_name, job_id, salary, hire_date, department_id
FROM employees
-- WHERE hire_date > '06/01/01';
WHERE hire_date > TO_DATE('060101''YYMMDD');
 
-- ๋ฌธ์ œ4) EMPLOYEES ํ…Œ์ด๋ธ”์—์„œ ๊ธ‰์—ฌ๊ฐ€ 3000์—์„œ 5000์‚ฌ์ด์˜ ์‚ฌ์›์˜ ์„ฑ๋ช…, ๋‹ด๋‹น์—…๋ฌด, ๊ธ‰์—ฌ, ๋ถ€์„œ๋ฒˆํ˜ธ๋ฅผ ์ถœ๋ ฅํ•˜๋ผ.
SELECT first_name, job_id, salary, department_id
FROM employees
-- WHERE salary >= 3000 AND salary <= 5000;
WHERE salary BETWEEN 3000 AND 5000;
 
-- ๋ฌธ์ œ5) EMPLOYEES ํ…Œ์ด๋ธ”์—์„œ ์‚ฌ์›๋ฒˆํ˜ธ๊ฐ€ 145,152,203์ธ ์‚ฌ์›์˜ ์ •๋ณด๋ฅผ ์‚ฌ์›๋ฒˆํ˜ธ, ์„ฑ๋ช…, ๋‹ด๋‹น์—…๋ฌด, ๊ธ‰์—ฌ, ์ž…์‚ฌ์ผ์ž๋ฅผ ์ถœ๋ ฅํ•˜๋ผ
SELECT employee_id, first_name, job_id, salary, hire_date
FROM employees
WHERE employee_id IN(145152203);
 
-- ๋ฌธ์ œ6) EMPLOYEES ํ…Œ์ด๋ธ”์—์„œ ์ž…์‚ฌ์ผ์ž๊ฐ€ 05๋…„๋„์— ์ž…์‚ฌํ•œ ์‚ฌ์›์˜ ์ •๋ณด๋ฅผ ์‚ฌ์›๋ฒˆํ˜ธ, ์„ฑ๋ช…, ๋‹ด๋‹น์—…๋ฌด, ๊ธ‰์—ฌ, ์ž…์‚ฌ์ผ์ž, ๋ถ€์„œ๋ฒˆํ˜ธ๋ฅผ ์ถœ๋ ฅํ•˜๋ผ.
SELECT employee_id, first_name, job_id, salary, hire_date, department_id
FROM employees
WHERE hire_date LIKE '05%';
 
-- ๋ฌธ์ œ7) EMPLOYEES ํ…Œ์ด๋ธ”์—์„œ ๋ณด๋„ˆ์Šค๊ฐ€ ์—†๋Š” ์‚ฌ์›์˜ ์‚ฌ์›๋ฒˆํ˜ธ, ์„ฑ๋ช…, ๋‹ด๋‹น์—…๋ฌด, ๊ธ‰์—ฌ, ์ž…์‚ฌ์ผ์ž, ๋ณด๋„ˆ์Šค, ๋ถ€์„œ๋ฒˆํ˜ธ๋ฅผ ์ถœ๋ ฅํ•˜๋ผ.
SELECT employee_id, first_name, job_id, salary, hire_date, salary * nvl(commission_pct, 0)as comm, department_id
FROM employees
WHERE commission_pct IS NOT NULL;
 
-- ๋ฌธ์ œ8) EMPLOYEES ํ…Œ์ด๋ธ”์—์„œ ๊ธ‰์—ฌ๊ฐ€ 1100์ด์ƒ์ด๊ณ  JOB์ด ST_MAN์ธ ์‚ฌ์›์˜ ์‚ฌ์›๋ฒˆํ˜ธ, ์„ฑ๋ช…, ๋‹ด๋‹น์—…๋ฌด, ๊ธ‰์—ฌ, ์ž…์‚ฌ์ผ์ž, ๋ถ€์„œ๋ฒˆํ˜ธ๋ฅผ ์ถœ๋ ฅํ•˜๋ผ
SELECT employee_id, first_name, job_id, salary, hire_date, department_id
FROM employees
WHERE salary >= 1100 AND job_id = 'ST_MAN';
 
-- ๋ฌธ์ œ9) EMPLOYEES ํ…Œ์ด๋ธ”์—์„œ ๊ธ‰์—ฌ๊ฐ€ 10000์ด์ƒ์ด๊ฑฐ๋‚˜ JOB์ด ST_MAN์ธ ์‚ฌ์›์˜ ์‚ฌ์›๋ฒˆํ˜ธ, ์„ฑ๋ช…, ๋‹ด๋‹น์—…๋ฌด, ๊ธ‰์—ฌ, ์ž…์‚ฌ์ผ์ž, ๋ถ€์„œ๋ฒˆํ˜ธ๋ฅผ ์ถœ๋ ฅํ•˜๋ผ
SELECT employee_id, first_name, job_id, salary, hire_date, department_id
FROM employees
WHERE salary >= 10000 OR job_id = 'ST_MAN';
 
-- ๋ฌธ์ œ10) EMPLOYEES ํ…Œ์ด๋ธ”์—์„œ JOB์ด ST_MAN, SA_MAN, SA_REP๊ฐ€ ์•„๋‹Œ ์‚ฌ์›์˜ ์‚ฌ์›๋ฒˆํ˜ธ, ์„ฑ๋ช…, ๋‹ด๋‹น์—…๋ฌด, ๊ธ‰์—ฌ, ๋ถ€์„œ๋ฒˆํ˜ธ๋ฅผ ์ถœ๋ ฅํ•˜๋ผ
SELECT employee_id, first_name, job_id, salary, department_id
FROM employees
WHERE job_id NOT IN('ST_MAN''SA_MAN''SA_REP');
 
-- ๋ฌธ์ œ11) ์—…๋ฌด๊ฐ€ PRESIDENT์ด๊ณ  ๊ธ‰์—ฌ๊ฐ€ 12000์ด์ƒ์ด๊ฑฐ๋‚˜ ์—…๋ฌด๊ฐ€ SA_MAN์ธ ์‚ฌ์›์˜ ์‚ฌ์›๋ฒˆํ˜ธ, ์ด๋ฆ„, ์—…๋ฌด, ๊ธ‰์—ฌ๋ฅผ ์ถœ๋ ฅํ•˜๋ผ.
SELECT employee_id, first_name, job_id, salary
FROM employees
WHERE job_id = 'AD_PRES'
    AND salary >= 12000
    OR job_id = 'SA_MAN';
 
-- ๋ฌธ์ œ12) ์—…๋ฌด๊ฐ€ AD_PRES ๋˜๋Š” SA_MAN์ด๊ณ  ๊ธ‰์—ฌ๊ฐ€ 12000์ด์ƒ์ธ ์‚ฌ์›์˜ ์‚ฌ์›๋ฒˆํ˜ธ, ์ด๋ฆ„, ์—…๋ฌด, ๊ธ‰์—ฌ๋ฅผ ์ถœ๋ ฅํ•˜๋ผ.
SELECT employee_id, first_name, job_id, salary
FROM employees
WHERE job_id = 'AD_PRES'
    OR job_id = 'SA_MAN'
        AND salary >= 12000;
 
 
-- scott
--6) emp ํ…Œ์ด๋ธ”์—์„œ ์‚ฌ์›๋ฒˆํ˜ธ๊ฐ€ 7698 ์ธ ์‚ฌ์›์˜ ์ด๋ฆ„, ์—…๋ฌด, ๊ธ‰์—ฌ๋ฅผ ์ถœ๋ ฅํ•˜์‹œ์˜ค.
SELECT ename, job, sal
FROM emp
WHERE empno = 7698;
 
-- 7) emp ํ…Œ์ด๋ธ”์—์„œ ์‚ฌ์›์ด๋ฆ„์ด SMITH์ธ ์‚ฌ๋žŒ์˜ ์ด๋ฆ„๊ณผ ์›”๊ธ‰, ๋ถ€์„œ๋ฒˆํ˜ธ๋ฅผ ๊ตฌํ•˜์‹œ์˜ค.
SELECT ename, sal, deptno
FROM emp
WHERE ename = 'SMITH';
 
-- 8) ์›”๊ธ‰์ด 2500์ด์ƒ 3500๋ฏธ๋งŒ์ธ ์‚ฌ์›์˜ ์ด๋ฆ„, ์ž…์‚ฌ์ผ, ์›”๊ธ‰์„ ๊ตฌํ•˜์‹œ์˜ค.
SELECT ename, hiredate, sal
FROM emp
WHERE sal >= 2500 AND sal < 3500;
 
-- 9) ๊ธ‰์—ฌ๊ฐ€ 2000์—์„œ 3000์‚ฌ์ด์— ํฌํ•จ๋˜์ง€ ์•Š๋Š” ์‚ฌ์›์˜ ์ด๋ฆ„, ์—…๋ฌด, ๊ธ‰์—ฌ๋ฅผ ์ถœ๋ ฅํ•˜์‹œ์˜ค.
SELECT ename, job, sal
FROM emp
WHERE sal NOT BETWEEN 2000 AND 3000;
 
-- 10) 81๋…„ 05์›” 01์ผ๊ณผ 81๋…„ 12์›” 03์ผ ์‚ฌ์ด์— ์ž…์‚ฌํ•œ ์‚ฌ์›์˜ ์ด๋ฆ„, ๊ธ‰์—ฌ, ์ž…์‚ฌ์ผ์„ ์ถœ๋ ฅํ•˜์‹œ์˜ค.
SELECT ename, sal, hiredate
FROM emp
WHERE hiredate BETWEEN '81/05/01' AND '81/12/03';
 
-- 11) empํ…Œ์ด๋ธ”์—์„œ ์‚ฌ์›๋ฒˆํ˜ธ๊ฐ€ 7566,7782,7934์ธ ์‚ฌ์›์„ ์ œ์™ธํ•œ ์‚ฌ๋žŒ๋“ค์˜ ์‚ฌ์›๋ฒˆํ˜ธ,์ด๋ฆ„,
--    ์›”๊ธ‰์„ ์ถœ๋ ฅํ•˜์‹œ์˜ค.
SELECT empno, ename, sal
FROM emp
WHERE empno NOT IN(7566,7782,7934);
 
-- 12) ๋ถ€์„œ๋ฒˆํ˜ธ 30(deptno)์—์„œ ๊ทผ๋ฌดํ•˜๋ฉฐ ์›” 2,000๋‹ฌ๋Ÿฌ ์ดํ•˜๋ฅผ ๋ฐ›๋Š” 81๋…„05์›”01์ผ ์ด์ „์— ์ž…์‚ฌํ•œ ์‚ฌ์›์˜ ์ด๋ฆ„, ๊ธ‰์—ฌ, ๋ถ€์„œ๋ฒˆํ˜ธ, ์ž…์‚ฌ์ผ์„ ์ถœ๋ ฅํ•˜์‹œ์˜ค.
SELECT ename, sal, deptno, hiredate
FROM emp
WHERE deptno = 30
    AND sal <= 2000
        AND hiredate < '81/05/01';
 
-- 13) empํ…Œ์ด๋ธ”์—์„œ ๊ธ‰์—ฌ๊ฐ€ 2,000์™€ 5,000 ์‚ฌ์ด๊ณ  ๋ถ€์„œ๋ฒˆํ˜ธ๊ฐ€ 10 ๋˜๋Š” 30์ธ ์‚ฌ์›์˜ ์ด๋ฆ„๊ณผ ๊ธ‰์—ฌ,๋ถ€์„œ๋ฒˆํ˜ธ๋ฅผ ๋‚˜์—ดํ•˜์‹œ์˜ค.
SELECT ename, sal, deptno
FROM emp
WHERE (sal BETWEEN 2000 AND 5000
    AND (deptno = 10 OR deptno = 30);
 
-- 14) ์—…๋ฌด๊ฐ€ SALESMAN ๋˜๋Š” MANAGER์ด๋ฉด์„œ ๊ธ‰์—ฌ๊ฐ€ 1,600, 2,975 ๋˜๋Š” 2,850์ด ์•„๋‹Œ ๋ชจ๋“  ์‚ฌ์›์˜ ์ด๋ฆ„, ์—…๋ฌด ๋ฐ ๊ธ‰์—ฌ๋ฅผ ํ‘œ์‹œํ•˜์‹œ์˜ค.
SELECT ename, job, sal
FROM emp
WHERE (job = 'SALESMAN' OR job = 'MANAGER')
    AND sal NOT IN(160029752850);
 
-- 15) empํ…Œ์ด๋ธ”์—์„œ ์‚ฌ์›์ด๋ฆ„ ์ค‘ S๊ฐ€ ํฌํ•จ๋˜์ง€ ์•Š์€ ์‚ฌ๋žŒ๋“ค ์ค‘ ๋ถ€์„œ๋ฒˆํ˜ธ๊ฐ€ 20์ธ ์‚ฌ์›๋“ค์˜ ์ด๋ฆ„๊ณผ ๋ถ€์„œ๋ฒˆํ˜ธ๋ฅผ ์ถœ๋ ฅํ•˜์‹œ์˜ค.
SELECT ename, deptno
FROM emp
WHERE deptno = 20  
    AND ename NOT LIKE '%S%';
 
-- 16) empํ…Œ์ด๋ธ”์—์„œ ์ด๋ฆ„์— A์™€ E๊ฐ€ ์žˆ๋Š” ๋ชจ๋“  ์‚ฌ์›์˜ ์ด๋ฆ„์„ ํ‘œ์‹œํ•˜์‹œ์˜ค.
SELECT ename
FROM emp
WHERE ename LIKE '%A%'
    AND ename LIKE '%E%';
 
-- 17) empํ…Œ์ด๋ธ”์—์„œ ๊ด€๋ฆฌ์ž๊ฐ€ ์—†๋Š” ๋ชจ๋“  ์‚ฌ์›์˜ ์ด๋ฆ„๊ณผ ์—…๋ฌด๋ฅผ ํ‘œ์‹œํ•˜์‹œ์˜ค.
SELECT ename, mgr, job
FROM emp
WHERE mgr IS NULL;
 
-- 18) empํ…Œ์ด๋ธ”์—์„œ ์ปค๋ฏธ์…˜ ํ•ญ๋ชฉ์ด ์ž…๋ ฅ๋œ ์‚ฌ์›๋“ค์˜ ์ด๋ฆ„๊ณผ ๊ธ‰์—ฌ, ์ปค๋ฏธ์…˜์„ ๊ตฌํ•˜์‹œ์˜ค.
SELECT ename, sal, comm 
FROM emp
WHERE comm IS NOT NULL
    AND comm <> 0;
--    AND comm != 0;
 
 
 
 
cs

๋Œ“๊ธ€