-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathstep01_Join1.sql
More file actions
77 lines (39 loc) · 1.66 KB
/
Copy pathstep01_Join1.sql
File metadata and controls
77 lines (39 loc) · 1.66 KB
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
--step01_Join1.sql
/*
물리적 조인(Join)
특정 칼럼(외래키)을 이용하여 두 개 이상의 테이블을 연결하는 DB 기법
<조인 절차>
1. 기본키가 포함된 테이블(master table) 생성
2. 기본키가 포함된 테이블에 레코드 삽입
3. 외래키가 포함된 테이블(transaction table) 생성
4. 외래키가 포함된 테이블에 레코드 삽입
* 조인 테이블 삭제 : 위 순서에 역순이다.
* 강제 테이블 삭제 : drop table 테이블명 cascade constraint;
*/
--1단계: 기본키가 포함된 테이블(원장: master table)생성
CREATE TABLE goods( --상품 테이블
gcode number(2) PRIMARY KEY,
gname VARCHAR(30),
price INT
);
--2단계: 기본키가 포함된 테이블에 레코드 삽입
INSERT INTO goods VALUES(10,'사과',5000);
INSERT INTO goods VALUES(20,'복숭아',8000);
INSERT INTO goods VALUES(30,'포도',3000);
--3단계: 외래키가 포함된 테이블(거래:transaction table)생성
CREATE TABLE sale(
gcode number(2) PRIMARY KEY,
sale_date date,
su number(3),
FOREIGN KEY(gcode) REFERENCES goods(gcode) --외래키 지정
);
--4단계: 외래키가 포함된 테이블에 레코드 삽입
INSERT INTO sale VALUES(10,sysdate,5);
INSERT INTO sale VALUES(20,sysdate,10);
INSERT INTO sale VALUES(30,sysdate,8);
INSERT INTO sale VALUES(40,sysdate,8); --오류: 참조무결성 제약조건 위배
COMMIT; --DB 반영
--5단계: 조인 KEY 이용
SELECT g.gcode, g.gname, s.sale_date, s.su
FROM goods g, sale s
WHERE g.gcode = s.gcode AND s.su >=8; --조인 조건 & 일반 조건