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
|
/*
Join
๋๊ฐ์ด์์ ํ
์ด๋ธ์ ์ฐ๊ฒฐํด์ ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ํ๋ ๋ฐฉ๋ฒ์ด๋ค.
๋ณดํต ๋ ๊ฐ ์ด์์ ํ(ROW) ๊ณตํต๋ ๊ฐ ๊ธฐ๋ณธํค, ์ธ๋ํค๋ฅผ ์ฌ์ฉํด์ ์กฐ์ธํ๋ค.
๊ธฐ๋ณธํค(Primary key) : ํ
์ด๋ธ์์ ์ค๋ณต์ด ๋์ง ์๋ ํค
์ธ๋ ํค(Foreign Key): ๋ค๋ฅธ ์ผ์ด๋ธ์์ PK,UK์ธ ๊ฒฝ์ฐ๊ฐ ใ
ใถ์
inner JOIN =๊ต์งํฉ *****
full outer JOIN = ํฉ์งํฉ
cross Join
outer Join
left ***
Right ***
self Join ******
*/
--inner Join
--ansi SQL
SELECT e.employee_id, e.first_name,
e.department_id, d.department_id,
d.department_name
FROM employees e INNER JOIN departments d
ON e.department_id = d.department_id;
--ORACLE
SELECT employee_id, first_name,
e.department_id, d.department_id,
department_name, d.location_id
FROM employees e, departments d
WHERE e.department_id = d.department_id;
SELECT e.employee_id, e.first_name,
e.job_id, j.job_id,
j.job_title
FROM employees e, jobs j
WHERE e.job_id = j.job_id
AND e.job_id = 'IT_PROG';
--cross join
--ANSI
SELECT e.employee_id,e.first_name
,e.department_id, d.department_id,
d.department_name
FROM employees e CROSS JOIN departments d;
--ORACLE
SELECT e.employee_id,e.first_name
,e.department_id, d.department_id,
d.department_name
FROM employees e, departments d;
--full outer join
--ANSI
SELECT e.employee_id,e.first_name
,e.department_id, d.department_id,
d.department_name
FROM employees e FULL OUTER JOIN departments d
ON e.department_id = d.department_id;
--ORACLE left outer join + right outer join
SELECT e.employee_id,e.first_name
,e.department_id, d.department_id,
d.department_name
FROM employees e, departments d
WHERE e.department_id = d.department_id(+)
UNION
SELECT e.employee_id,e.first_name
,e.department_id, d.department_id,
d.department_name
FROM employees e, departments d
WHERE e.department_id(+) = d.department_id;
--Outer join
--left
--ANSI
SELECT e.employee_id,e.first_name
,e.department_id, d.department_id,
d.department_name
FROM employees e LEFT OUTER JOIN departments d
ON e.department_id = d.department_id;
--ORACLE
SELECT e.employee_id,e.first_name
,e.department_id, d.department_id,
d.department_name
FROM employees e, departments d
WHERE e.department_id = d.department_id(+);
--์ฐจ์งํฉ
SELECT e.employee_id,e.first_name
,e.department_id, d.department_id,
d.department_name
FROM employees e, departments d
WHERE e.department_id = d.department_id(+)
AND e.department_id IS NULL;
--๋์นญ์ฐจ์งํฉ
SELECT e.employee_id,e.first_name
,e.department_id, d.department_id,
d.department_name
FROM employees e FULL OUTER JOIN departments d
ON e.department_id = d.department_id
WHERE e.department_id IS NULL
OR d.department_id IS NULL;
--SELF join :๋์ผํ ํ
์ด๋ธ์ ์กฐ์ธ, ์๊ธฐํ
์ด๋ธ์ ์๋ ๋ฐ์ดํฐ ์ฐพ๊ธฐ
SELECT a.employee_id, a.first_name,
a.manager_id, b.employee_id,
b.first_name
-- b๋ ์์ฌ์ ๋ํ์ ๋ณด
FROM employees a , employees b -- a: ์ฌ์ b: ์์ฌ
WHERE a.manager_id = b.employee_id;
--๊ณ์ธตํ ๊ตฌ์กฐ ์ค๋ฆ, ๋ด๋ฆผ
SELECT a.employee_id, a.first_name AS"์ฌ์",
a.manager_id AS "์ฌ์์ ์์ฌ", b.employee_id,
b.first_name AS "์์ฌ"
FROM employees a, employees b
WHERE a.manager_id = b.employee_id(+)
CONNECT BY PRIOR a.manager_id = a.employee_id; -- ์ํฅ์
|
cs |
'๐ฆ ๋ฐ์ดํฐ ๋ฒ ์ด์ค (DB) ๐ฆ > ๐ พ ์ค๋ผํด DB & SQL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
JOIN๋ฌธ - ๋ฌธ์ 2 (0) | 2021.02.10 |
---|---|
JOIN๋ฌธ - ๋ฌธ์ 1 (0) | 2021.02.10 |
ORDER, GROUP BY๋ฌธ - ๋ฌธ์ 4 (Scott) (0) | 2021.02.10 |
GROUP BY๋ฌธ - ๋ฌธ์ 3 (0) | 2021.02.10 |
Power, Trunc, Trim, Round๋ฑ ๊ฐ์ข ํจ์ํ์ฉ - ๋ฌธ์ 2 (0) | 2021.02.10 |
๋๊ธ