4์ฃผ์ฐจ๊น์ง ์๋ฃ!
๋ฐฉํ์ ์ฆ๊ธฐ๋ค ์ค๊ฒ ์ต๋๋ค~
๊ทธ๋ผ ์ค๋๋...SQL...์กฐ๋ง๊ฐ...์ ๋ณต!!!!!!!!!!!!!!!!!
๋ฐ์ดํฐ์ ๋ฌด๊ฒฐ์ฑ(๋ฐ์ดํฐ์ ๊ฒฐํจ์ด ์์)์ ์งํค๊ธฐ ์ํด ์ ํํ๋ ์กฐ๊ฑด์
๋๋ค.
mem _id CHAR(8) NOT NULL PRIMARY KEY
์ด ์ด๋ฆ ๋ค์ PRIMARY KEY๋ฅผ ๋ถ์ฌ์ฃผ๋ฉด ๊ธฐ๋ณธ ํค๋ก ์ค์ ๋ฉ๋๋ค.
PRIMARY KEY(mem_id)
ํ
์ด๋ธ์ ์ ์ผ ๋ง์ง๋ง์ PRIMARY KEY(์ด_์ด๋ฆ)์ ๋ถ์ฌ์ฃผ๋ฉด ๊ทธ ์ด์ด ๊ธฐ๋ณธ ํค๋ก ์ค์ ๋ฉ๋๋ค.
ALTER TABLE member
โ โ โ โ โ ADD CONSTRAINT
โ โ โ โ โ PRIMARY KEY(mem_id);
ALTER TABLE ๋ฌธ์ผ๋ก ๊ธฐ๋ณธ ํค๋ฅผ ์ค์ ํ ์ ์์ต๋๋ค. ํ
์ด๋ธ member๋ฅผ ๋ณ๊ฒฝํ๊ณ ์ ์ฝ์กฐ๊ฑด์ ์ถ๊ฐํ ํ mem_id ์ด์ ๊ธฐ๋ณธ ํค ์ ์ฝ์กฐ๊ฑด์ ์ค์ ํฉ๋๋ค.
FOREIGN KEY(mem_id) REFERENCES member(mem_id)
์ฐธ์กฐ ํ
์ด๋ธ(buy)์ ์ด(mem_id)์ด ๊ธฐ์ค ํ
์ด๋ธ(member)์ ์ฐธ์กฐํ์ฌ ์ด(mem_id)์ ๊ธฐ๋ณธ ํค๋ก ์ค์ ํ ์ ์์ต๋๋ค.
ALTER TABLE
โ โ โ โ โ ADD CONSTRAINT
โ โ โ โ โ FOREIGN KEY(mem_id)
โ โ โ โ โ REFERENCES member(mem_id);
ALTER TABLE ๋ฌธ์ผ๋ก ์ธ๋ ํค๋ฅผ ์ค์ ํ ์ ์์ต๋๋ค. ํ
์ด๋ธ buy๋ฅผ ์์ ํ๊ณ ์ ์ฝ์กฐ๊ฑด์ ์ถ๊ฐํ ํ mem_id์ ์ธ๋ ํค ์ ์ฝ์กฐ๊ฑด์ ์ค์ ํฉ๋๋ค.
email CHAR(30) NULL UNIQUE
์ค๋ณต๋์ง ์์ ์ด์ ๊ณ ์ ํค๋ก ์ค์ ํ ์ ์์ต๋๋ค.
โ ๊ณ ์ ํค ์ ์ฝ์กฐ๊ฑด๊ณผ ๋ค๋ฅด๊ฒ NULL ๊ฐ์ ํ์ฉํฉ๋๋ค. ๋, ๊ณ ์ ํค๋ ์ฌ๋ฌ ๊ฐ๋ฅผ ์ค์ ํ ์ ์์ต๋๋ค.
height TINYINT UNSIGNED NULL CHECK (height >= 100)
์ด์ ์ ์ ๋ค์ CHECK(์กฐ๊ฑด)์ ์ถ๊ฐํด์ฃผ๋ฉด ๋ฉ๋๋ค.
โ ALTER TABLE ๋ฌธ์ผ๋ก ์ ์ฝ์กฐ๊ฑด์ ์ถ๊ฐํ ์๋ ์์ต๋๋ค. ์ฒดํฌ ์ ์ฝ์กฐ๊ฑด์ ์ค์ ํ ํ์ ์กฐ๊ฑด์ ์๋ฐฐ๋๋ ๊ฐ์ ์
๋ ฅํ๋ฉด ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
๊ธฐ๋ณธ๊ฐ ์ ์๋ ๊ฐ์ ์ ๋ ฅํ์ง ์์์ ๋ ์๋์ผ๋ก ์ ๋ ฅ๋ ๊ฐ์ ๋ฏธ๋ฆฌ ์ง์ ํด ๋๋ ๋ฐฉ๋ฒ์ ๋๋ค. ์๋์ ๊ฐ์ด ์ ๋ ฅํ ์ ์์ต๋๋ค.
height TINYINT UNSIGNED NULL DEFAULT 160
ALTER TABLE member
โ โ โ โ โ ALTER COLUMN phone1 SET DEFAULT '02';
ALTER TABLE ์ฌ์ฉ ์ ์ด์ DEFAULT๋ฅผ ์ง์ ํ๊ธฐ ์ํด์๋ ALTER COLUMN ๋ฌธ์ ์ฌ์ฉํฉ๋๋ค.
INSERT INTO member VALUES('SPC', '์ฐ์ฃผ์๋ ', default, default);
๊ธฐ๋ณธ๊ฐ์ด ์ค์ ๋ ์ด์ ๊ธฐ๋ณธ๊ฐ์ ์
๋ ฅํ๋ ค๋ฉด default๋ผ๊ณ ์จ์ฃผ๊ณ , ์ํ๋ ๊ฐ์ ์
๋ ฅํ๋ ค๋ฉด ํด๋น ๊ฐ์ ์จ์ฃผ๋ฉด ๋ฉ๋๋ค.
๋ ๊ฐ์ ํ์ฉํ๋ ค๋ฉด ์๋ตํ๊ฑฐ๋ NULL์ ์ฌ์ฉํ๊ณ , ํ์ฉํ์ง ์์ผ๋ ค๋ฉด NOT NULL์ ์ฌ์ฉํฉ๋๋ค.
โ PRIMARY KEY๊ฐ ์ค์ ๋ ์ด์๋ ์๋์ผ๋ก NOT NULL๋ก ์ธ์๋ฉ๋๋ค.
โ NULL์ ๊ณต๋ฐฑ์ด๋ 0๊ณผ๋ ๋ค๋ฆ
๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ฐ์ฒด ์ค ํ๋์ธ ๋ทฐ๋
๋ก ๋๋ ์ ์์ต๋๋ค.
CREATE ๋ทฐ_์ด๋ฆ
AS
โ โ โ โ โ SELECT ๋ฌธ;
ํ์ํ๋ฉด ์กฐ๊ฑด์๋ ํ
์ด๋ธ๊ณผ ๋์ผํ๊ฒ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๋ทฐ๋ฅผ ์์ฑํ ๋ ๋ทฐ์ ์ด ์ด๋ฆ์ ํ ์ด๋ธ๊ณผ ๋ค๋ฅด๊ฒ ์ง์ ํ ์ ์์ผ๋ฉฐ(๋ณ์นญ), ๋์ด์ฐ๊ธฐ๋ ํ๊ธ๋ ๊ฐ๋ฅํฉ๋๋ค. ๋ณ์นญ์ ์ด ์ด๋ฆ ๋ค์ (') ๋๋ (")๋ก ๋ฌถ์ด์ฃผ๊ณ , ํ์์ AS๋ฅผ ๋ถ์ฌ์ค๋๋ค.
SELECT DISTINCT 'ํ์ ์์ด๋', 'ํ์ ์ด๋ฆ' FROM v_viewtest1;
โ ๋ทฐ๋ฅผ ์กฐํํ ๋๋ ์ด ์ด๋ฆ์ ๊ณต๋ฐฑ์ด ์์ผ๋ฉด ๋ฐฑํฑ(')์ผ๋ก ๋ฌถ์ด์ค์ผ ํฉ๋๋ค.
ALTER VIEW v_viewtest1
AS
โ โ โ โ โ .
โ โ โ โ โ .
โ โ โ โ โ .
๋ทฐ๋ฅผ ์์ ํ ๋๋ ALTER VIEW ๊ตฌ๋ฌธ์ ์ฌ์ฉํฉ๋๋ค.
DROP VIEW v_viewtest1;
๋ทฐ๋ฅผ ์ญ์ ํ ๋๋ DROP VIEW๋ฅผ ์ฌ์ฉํฉ๋๋ค.
DESCRIBE v_viewtest2;
๋ทฐ์ ์ ๋ณด๋ DESCRIBE ๋ฌธ์ผ๋ก ํ์ธํ ์ ์์ต๋๋ค.
SHOW CREATE VIEW v_viewtest2;
๋ทฐ์ ์์ค ์ฝ๋๋ SHOW CREATE VIEW ๋ฌธ์ผ๋ก ํ์ธํ ์ ์์ต๋๋ค.
๋ทฐ์ ์ค์ ๋ ์กฐ๊ฑด๋ง ์
๋ ฅ๋๋๋ก ์ง์ ํฉ๋๋ค.
๋ทฐ ๋๋ ํ
์ด๋ธ์ ์ํ๋ฅผ ํ์ธํฉ๋๋ค.
๊ธฐ์กด์ ๋ทฐ๊ฐ ์์ผ๋ฉด ๋ฎ์ด์ฐ๊ณ , ์์ผ๋ฉด ์๋ก ์์ฑํฉ๋๋ค. ์ฆ, DROP VIEW์ CREATE VIEW๋ฅผ ์ฐ์์ผ๋ก ์์ฑํ ํจ๊ณผ๋ฅผ ๊ฐ์ต๋๋ค.
p. 226 - market_db์ ํ์ ํ
์ด๋ธ(member) ์์ฑํ๊ณ , p. 229 - ๋ฐ์ดํฐ ์
๋ ฅํ ํ ์ธ์ฆ์ท!
p. 271 - ํ์ธ๋ฌธ์ 4๋ฒ ํ๊ณ ์ธ์ฆ์ท!