πŸ“¦ 데이터 베이슀 (DB) πŸ“¦/πŸ…Ύ 였라클 DB & SQL

πŸ›’ 온라인 λ§ˆμΌ“(μ‡Όν•‘λͺ°) ν…Œμ΄λΈ” 예제

Meteora_ 2021. 2. 17. 18:15
728x90

온라인 λ§ˆμΌ“ TABLE을 λ§Œλ“€μ–΄λ³΄μ„Έμš”.

μ˜ˆμ œλ‚΄μš© ┐

-----------------------------------------------------------------

PRODUCT(μƒν’ˆ) : μƒν’ˆλ²ˆν˜Έ, μƒν’ˆλͺ…, μƒν’ˆκ°€κ²©, μƒν’ˆμ„€λͺ…

CONSUMER(μ†ŒλΉ„μž) : μ†ŒλΉ„μž ID, 이름, λ‚˜μ΄
CART(μž₯λ°”κ΅¬λ‹ˆ) : μž₯λ°”κ΅¬λ‹ˆ λ²ˆν˜Έ, μ†ŒλΉ„μž ID, μƒν’ˆλ²ˆν˜Έ, μˆ˜λŸ‰

μƒν’ˆ ν…Œμ΄λΈ”μ— μƒν’ˆμ„ λ“±λ‘ν•©λ‹ˆλ‹€(κ°œμˆ˜λŠ” μ›ν•˜λŠ” λŒ€λ‘œ).
μ†ŒλΉ„μžλ₯Ό λ“±λ‘ν•©λ‹ˆλ‹€.
μ†ŒλΉ„μžκ°€ μ‡Όν•‘ν•œ μƒν’ˆμ„ μΆ”κ°€ν•©λ‹ˆλ‹€.
μ‡Όν•‘ν•œ μƒν’ˆμ„ 좜λ ₯ν•©λ‹ˆλ‹€.

-------------------------------------------------------------------

 

도식

 

 

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
--μƒν’ˆ ν…Œμ΄λΈ”
CREATE TABLE PRODUCT(
PRODUCTID NUMBER PRIMARY KEY,
NAME VARCHAR(50),
PRICE NUMBER,
PRODUCT_DESC VARCHAR2(500)
);
 
--μ†ŒλΉ„μž ν…Œμ΄λΈ”
CREATE TABLE CONSUMER(
USERID VARCHAR2(50CONSTRAINT PK_USER PRIMARY KEY,
NAME VARCHAR2(50NOT NULL,
AGE NUMBER(3)
);
 
--μž₯λ°”κ΅¬λ‹ˆ ν…Œμ΄λΈ”
CREATE TABLE CART(
CARTID NUMBER CONSTRAINT PK_CART PRIMARY KEY,
USERID VARCHAR2(50),  -- μ™Έλž˜ν‚€
PRODUCTID NUMBER,    -- μ™Έλž˜ν‚€
AMOUNT NUMBER
);
 
--μ™Έλž˜ν‚€ μƒμ„±
ALTER TABLE CART
ADD
CONSTRAINT FK_PRODUCT_ID FOREIGN KEY(PRODUCTID)
REFERENCES PRODUCT(PRODUCTID);
 
ALTER TABLE CART
ADD
CONSTRAINT FK_USER_ID FOREIGN KEY(USERID)
REFERENCES CONSUMER(USERID);
 
--μ‹œν€€μŠ€
 
CREATE SEQUENCE PRODUCT_SEQ
INCREMENT BY 1
START WITH 1000;
 
--μƒν’ˆν…Œμ΄λΈ”μ— μƒν’ˆ λ“±λ‘
 
INSERT INTO PRODUCT(PRODUCTID, NAME, PRICE, PRODUCT_DESC)
VALUES(PRODUCT_SEQ.NEXTVAL,'μƒˆμš°κΉ‘'1500,'λ§›μžˆμ–΄μš”');
 
INSERT INTO PRODUCT(PRODUCTID, NAME, PRICE, PRODUCT_DESC)
VALUES(PRODUCT_SEQ.NEXTVAL,'ν¬ν…Œμ΄ν† μΉ©'2300,'μ§œμš”');
 
INSERT INTO PRODUCT(PRODUCTID, NAME, PRICE, PRODUCT_DESC)
VALUES(PRODUCT_SEQ.NEXTVAL,'컀피'2500,'λλ‚΄μ€˜μš”');
 
--μ†ŒλΉ„μžλ₯Ό λ“±λ‘ν•©λ‹ˆλ‹€
 
INSERT INTO CONSUMER(USERID, NAME, AGE)
VALUES('HGD','홍길동',24);
 
INSERT INTO CONSUMER(USERID, NAME, AGE)
VALUES('SCH','μ„±μΆ˜ν–₯',16);
 
INSERT INTO CONSUMER(USERID, NAME, AGE)
VALUES('JSD','μ •μˆ˜λ™',28);
 
-- μ†ŒλΉ„μžκ°€ μ‡Όν•‘ν•œ μƒν’ˆμ„ μΆ”κ°€ν•©λ‹ˆλ‹€.
 
INSERT INTO CART(CARTID, USERID, PRODUCTID, AMOUNT)
VALUES(1'SCH'10012);
 
INSERT INTO CART(CARTID, USERID, PRODUCTID, AMOUNT)
VALUES(2'SCH'10001);
 
INSERT INTO CART(CARTID, USERID, PRODUCTID, AMOUNT)
VALUES(3'HGD'10012);
 
-- μ‡Όν•‘ν•œ μƒν’ˆμ„ μΆœλ ₯ν•©λ‹ˆλ‹€.

SELECT *
FROM cart
WHERE userid = 'SCH'
 
SELECT c.userid, c.productid, p.name, p.price
FROM cart c, product p
WHERE c.productid = p.productid AND c.userid = 'SCH';
 
--μ„±μΆ˜ν–₯이 λ­˜ μ‡Όν•‘ν–ˆλŠ”μ§€ λ‚˜μ˜΅λ‹ˆλ‹€.
 
cs
λŒ“κΈ€μˆ˜0