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

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

๐Ÿ›’ ์˜จ๋ผ์ธ ๋งˆ์ผ“(์‡ผํ•‘๋ชฐ) ํ…Œ์ด๋ธ” ์˜ˆ์ œ

by Meteora_ 2021. 2. 17.
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

๋Œ“๊ธ€