์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |
- Absolute
- AGI
- ai
- AI agents
- AI engineer
- AI researcher
- ajax
- algorithm
- Algorithms
- aliases
- Array ๊ฐ์ฒด
- ASI
- bayes' theorem
- Bit
- Blur
- BOM
- bootstrap
- canva
- challenges
- ChatGPT
- Today
- In Total
A Joyful AI Research Journey๐ณ๐
*[53] 230315 SQL Ch 4. ๋ฐ์ดํฐ์ ์ถ๊ฐ, ์ญ์ , ๊ฐฑ์ : 16๊ฐ ํ ์ถ๊ฐํ๊ธฐ - INSERT, 17๊ฐ ์ญ์ ํ๊ธฐ - DELETE, 18๊ฐ ๋ฐ์ดํฐ ๊ฐฑ์ ํ๊ธฐ - UPDATE, 19๊ฐ ๋ฌผ๋ฆฌ์ญ์ ์ ๋ ผ๋ฆฌ์ญ์ [K-๋์งํธ ํธ๋ ์ด๋ 53์ผ] ๋ณธ๋ฌธ
*[53] 230315 SQL Ch 4. ๋ฐ์ดํฐ์ ์ถ๊ฐ, ์ญ์ , ๊ฐฑ์ : 16๊ฐ ํ ์ถ๊ฐํ๊ธฐ - INSERT, 17๊ฐ ์ญ์ ํ๊ธฐ - DELETE, 18๊ฐ ๋ฐ์ดํฐ ๊ฐฑ์ ํ๊ธฐ - UPDATE, 19๊ฐ ๋ฌผ๋ฆฌ์ญ์ ์ ๋ ผ๋ฆฌ์ญ์ [K-๋์งํธ ํธ๋ ์ด๋ 53์ผ]
yjyuwisely 2023. 3. 15. 10:45230315 Wed 53rd class
Ch 4. ๋ฐ์ดํฐ์ ์ถ๊ฐ, ์ญ์ , ๊ฐฑ์
์ง๋: p. 152 ~ (๊ต์ฌ: SQL ์ฒซ๊ฑธ์, ์ ์: ์์ฌ์ด ์์ธ ์)
MySQL Workbench Manual: https://dev.mysql.com/doc/workbench/en/
MySQL ํํ ๋ฆฌ์ผ: https://www.tutorialspoint.com/mysql/
SQLD ์์ฝ pdf: https://yurimac.tistory.com/40
์ฑ
์์ฝ (9p) pdf: https://brunch.co.kr/@ydy702/10
์ค๋ ๋ฐฐ์ด ๊ฒ ์ค ๊ธฐ์ตํ ๊ฒ์ ์ ๋ฆฌํ๋ค.
4์ฅ ๋ฐ์ดํฐ์ ์ถ๊ฐ, ์ญ์ , ๊ฐฑ์
์ฑ ์ ๋ชฉ์ฐจ
__16๊ฐ__ํ ์ถ๊ฐํ๊ธฐ - INSERT
1. INSERT๋ก ํ ์ถ๊ฐํ๊ธฐ
2. ๊ฐ์ ์ ์ฅํ ์ด ์ง์ ํ๊ธฐ
3. NOT NULL ์ ์ฝ
4. DEFAULT
__17๊ฐ__์ญ์ ํ๊ธฐ - DELETE
1. DELETE๋ก ํ ์ญ์ ํ๊ธฐ
2. DELETE ๋ช ๋ น ๊ตฌ
__18๊ฐ__๋ฐ์ดํฐ ๊ฐฑ์ ํ๊ธฐ - UPDATE
1. UPDATE๋ก ๋ฐ์ดํฐ ๊ฐฑ์ ํ๊ธฐ
2. UPDATE๋ก ๊ฐฑ์ ํ ๊ฒฝ์ฐ ์ฃผ์์ฌํญ
3. ๋ณต์์ด ๊ฐฑ์
4. NULL๋ก ๊ฐฑ์ ํ๊ธฐ
__19๊ฐ__๋ฌผ๋ฆฌ์ญ์ ์ ๋ ผ๋ฆฌ์ญ์
1. ๋ ์ข ๋ฅ์ ์ญ์ ๋ฐฉ๋ฒ
2. ์ญ์ ๋ฐฉ๋ฒ ์ ํํ๊ธฐ
16๊ฐ ํ ์ถ๊ฐํ๊ธฐ - INSERT
INSERT ๋ช ๋ น
INSERT INTO ํ
์ด๋ธ๋ช
VALUES(๊ฐ1, ๊ฐ2, ...)
16.1 INSERT๋ก ํ ์ถ๊ฐํ๊ธฐ
์์ 4-1) sample41 ํ ์ด๋ธ
SELECT * FROM sample41;
์์ 4-2) sample41 ํ ์ด๋ธ์ ์ด ๊ตฌ์ฑ ํ์ธํ๊ธฐ
DESC sample41;
์์ 4-3) sample41 ํ ์ด๋ธ์ ํ ์ถ๊ฐํ๊ธฐ
INSERT INTO sample41 VALUES(1, 'ABC', '2014-01-25');
์์ 4-4) sample41 ํ ์ด๋ธ
-- INSERT ๊ฒฐ๊ณผ ํ์ธํ๊ธฐ
SELECT * FROM sample41;
Point: INSERT ๋ช ๋ น์ผ๋ก ํ ์ด๋ธ์ ํ์ ์ถ๊ฐํ ์ ์๋ค.
16.2 ๊ฐ์ ์ ์ฅํ ์ด ์ง์ ํ๊ธฐ
INSERT์ ์ด ์ง์
INSERT INTO ํ
์ด๋ธ๋ช
(์ด1, ์ด2, ...) VALUES(๊ฐ1, ๊ฐ2, ...)
์์ 4-5) ์ด์ ์ง์ ํด ํ ์ถ๊ฐํ๊ธฐ
-- no ์ด๊ณผ a ์ด๋ง ์ง์ ํด ํ ์ถ๊ฐํ๊ธฐ
INSERT INTO sample41(a, no) VALUES('XYZ', 2);
SELECT * FROM sample41;
16.3 NOT NULL ์ ์ฝ
INSERT INTO sample41(no, a, b) VALUES(NULL, NULL, NULL);
no ์ด์ ๋ํด NULL ๊ฐ์ ํ์ฉํ์ง ์๋ NOT NULL ์ ์ฝ์ด ๊ฑธ๋ ค์๊ธฐ ๋๋ฌธ์ด๋ค.
์ ์ฝ: ํ
์ด๋ธ์ ์ ์ฅํ๋ ๋ฐ์ดํฐ๋ฅผ ์ค์ ์ผ๋ก ์ ํํ๋ ๊ฒ
Point: NOT NULL ์ ์ฝ์ด ๊ฑธ๋ ค์๋ ์ด์ NULL ๊ฐ์ ํ์ฉํ์ง ์๋๋ค.
์์ 4-6) NOT NULL ์ ์ฝ ํํผํ๊ธฐ
-- no์ด์ 3์ ์ง์ ํด ํ ์ถ๊ฐ
INSERT INTO sample41(no, a, b) VALUES(3, NULL, NULL);
SELECT * FROM sample41;
16.4 DEFAULT
์์ 4-7) sample411์ ์ด ๊ตฌ์ฑ ํ์ธํ๊ธฐ
DESC sample411;
create table sample411)
no int not null 1, -- ์ด๋ช
, ์๋ฃํ, ์ ์ฝ ์กฐ๊ฑด, ๋ํดํธ
d int 0 -- ์ด๋ช
, ์๋ฃํ, (์ ์ฝ ์กฐ๊ฑด ์์), ๋ํดํธ
)
์์ 4-8) sample411์ ํ ์ถ๊ฐํ๊ธฐ
-- ๊ฐ์ ์๋ตํ์ง ์๊ณ ํ ์ถ๊ฐํ๊ธฐ
INSERT INTO sample411(no, d) VALUES (1,1);
SELECT * FROM sample411;
์์ 4-9) ๋ช
์์ ์ผ๋ก ๋ํดํธ ์ง์
์ ์ ์ฐ์ด๋ ๋ฐฉ๋ฒ์ด๋ค.
-- DEFAULT๋ก ๊ฐ์ ์ง์ ํด ํ ์ถ๊ฐํ๊ธฐ
INSERT INTO sample411(no, d) VALUES(2, DEFAULT);
SELECT * FROM sample411;
- ์๋ฌต์ ์ผ๋ก ๋ํดํธ ์ ์ฅ
์์ 4-10) ์๋ฌต์ ์ผ๋ก ๋ํดํธ ์ง์
-- ์๋ฌต์ ์ผ๋ก ๋ํดํธ ๊ฐ์ ๊ฐ์ง๋ ํ ์ถ๊ฐํ๊ธฐ
INSERT INTO sample411(no) VALUES(3);
SELECT * FROM sample411;
Point: ์ด์ ์ง์ ํ์ง ์์ผ๋ฉด ๋ํดํธ๊ฐ์ผ๋ก ํ์ด ์ถ๊ฐ๋๋ค.
17๊ฐ ์ญ์ ํ๊ธฐ - DELETE
DELETE ๋ช ๋ น
DELETE FROM ํ
์ด๋ธ๋ช
WHERE ์กฐ๊ฑด์
17.1 DELETE๋ก ํ ์ญ์ ํ๊ธฐ
DELETE ๋ช ๋ น
DELETE FROM ํ
์ด๋ธ๋ช
WHERE ์กฐ๊ฑด์
์์ 4-11) sample41 ํ ์ด๋ธ
-- sample41 ํ
์ด๋ธ์ ์ ์ฅ๋ ๋ฐ์ดํฐ ํ์ธ
SELECT * FROM sample41;
Point: DELETE ๋ช ๋ น์ผ๋ก ํ์ ์ญ์ ํ ์ ์๋ค.
์์ 4-12) sample41์์ ํ ์ญ์ ํ๊ธฐ
-- sample41 ํ
์ด๋ธ์์ no ์ด์ด 3์ธ ํ ์ญ์ ํ๊ธฐ
DELETE FROM sample41 WHERE no = 3;
SELECT * FROM sample41;
Point: DELETE ๋ช ๋ น์ WHERE ์กฐ๊ฑด์ ์ผ์นํ๋ '๋ชจ๋ ํ'์ ์ญ์ ํ๋ค.
17.2 DELETE ๋ช ๋ น ๊ตฌ
์ญ์์ฃผ: MySQL์์๋ DELETE ๋ช ๋ น์์ ORDER BY ๊ตฌ์ LIMIT ๊ตฌ๋ฅผ ์ฌ์ฉํด ์ญ์ ํ ํ์ ์ง์ ํ ์ ์๋ค.
18๊ฐ ๋ฐ์ดํฐ ๊ฐฑ์ ํ๊ธฐ - UPDATE
UPDATE ๋ช ๋ น
UPDATE ํ
์ด๋ธ๋ช
SET ์ด1 = ๊ฐ1, ์ด2 = ๊ฐ2, ... WHERE ์กฐ๊ฑด
18.1 UPDATE๋ก ๋ฐ์ดํฐ ๊ฐฑ์ ํ๊ธฐ
UPDATE ๋ช ๋ น
UPDATE ํ
์ด๋ธ๋ช
SET ์ด๋ช
= ๊ฐ WHERE ์กฐ๊ฑด์
์์ 4-13) sample41 ํ ์ด๋ธ
SELECT * FROM table41;
๋ฌธ๋ฒ์ 'SET ์ด๋ช
= ๊ฐ'์ด๋ค.
=: ๋์
์ฐ์ฐ์
๊ฐฑ์ ํด์ผ ํ ์ด๊ณผ ๊ฐ์ด ๋ณต์์ธ ๊ฒฝ์ฐ์๋ '์ด = ๊ฐ'์ ์ฝค๋ง(,)๋ก ๊ตฌ๋ถํ์ฌ ๋ฆฌ์คํธ ํ์์ผ๋ก ์ง์ ํ ์ ์๋ค.
์์ 4-14) sample41์ ์ ๊ฐ์ ๊ฐฑ์ ํ๊ธฐ
ํ ์ง์ ์ WHERE no = 2๋ก ํ๋ค. (์กฐ๊ฑด์)
๊ฐฑ์ ํ ๊ฐ์ SET b = '2014-09-07'๋ก ํ๋ค. (SET ์ด๋ช
= ๊ฐ)
SELECT * FROM sample41;
UPDATE sample41 SET b = '2014-09-07' WHERE no = 2;
SELECT * FROM sample41;
Point: UPDATE ๋ช
๋ น์ผ๋ก ํ์ ์
๊ฐ์ ๊ฐฑ์ ํ ์ ์๋ค.
Point: UPDATE ๋ช
๋ น์์๋ WHERE ์กฐ๊ฑด์ ์ผ์นํ๋ '๋ชจ๋ ํ'์ด ๊ฐฑ์ ๋๋ค.
18.2 UPDATE๋ก ๊ฐฑ์ ํ ๊ฒฝ์ฐ ์ฃผ์์ฌํญ
์์ 4-15) UPDATE ๋ช ๋ น์ผ๋ก ์ฆ๊ฐ ์ฐ์ฐํ๊ธฐ
SELECT * FROM sample41;
UPDATE sample41 SET no = no + 1;
SELECT * FROM sample41;
18.3 ๋ณต์์ด ๊ฐฑ์
UPDATE ๋ช ๋ น
UPDATE ํ
์ด๋ธ๋ช
SET ์ด๋ช
1 = ๊ฐ1, ์ด๋ช
2 = ๊ฐ2, ... WHERE ์กฐ๊ฑด์
-- ๋ ๊ตฌ๋ฌธ์ผ๋ก ๋๋์ด UPDATE ๋ช
๋ น ์คํ
UPDATE sample41 SET a = 'xxx' WHERE no = 2;
UPDATE sample41 SET b = '2014-01-01' WHERE no = 2;
-- ํ๋๋ก ๋ฌถ์ด์ UPDATE ๋ช
๋ น ์คํ
UPDATE sample41 SET a = 'xxx', b = '2014-01-01' WHERE no = 2;
18.4 NULL๋ก ๊ฐฑ์ ํ๊ธฐ
์์ 4-20) NULL ์ด๊ธฐํ
UPDATE sample41 SET a = NULL;
SELECT * FROM sample41;
19๊ฐ ๋ฌผ๋ฆฌ์ญ์ ์ ๋ ผ๋ฆฌ์ญ์ p. 174
๋ฌผ๋ฆฌ์ญ์ : DELETE
๋
ผ๋ฆฌ์ญ์ : UPDATE (์ญ์ ํ ๊ฒ์ผ๋ก ๊ฐ์ , ๋์์)
๋ฌผ๋ฆฌ์ญ์ ์ ๋ ผ๋ฆฌ์ญ์ ๋ ์ ์ฉ SQL ๋ช ๋ น์ด ๋ฐ๋ก ์กด์ฌํ์ง ์๋๋ค. ์์คํ ์ค๊ณ ๋ถ์ผ์ ๊ดํ ๊ฒ์ผ๋ก ์์คํ ์ ๊ตฌ์ถํ ๋ ์์ฃผ ์ฌ์ฉํ๋ ๋ง์ด๋ค.
ํ์๊ฐ์ | ||||||||
member | ||||||||
id | password | name | address | gender | state | state | ||
abc | 1234 | ์ ์๋ฐ | 1 | 1 | ํ์ฌ ํ์ | |||
def | 5678 | ์ด์์ต | 1 -> 2 | 2 | ํํด(ํ์์ด ์ง์ ) | |||
ghi | 9876 | ํ๊ธธ๋ | 1 -> 3 | 3 | ํํด(๋ธ๋๋ฆฌ์คํธ) |
3๋ฒ ํ์์ ๊ฒฝ์ฐ ๋ง์น ์ญ์ ๊ฐ ๋ ๊ฒ์ฒ๋ผ ๋ง๋ค์ด์ค์ผ ํ๋ค.
ํํด ๋ฒํผ์ ๋๋ ์ ๋(ํ์๊ฐ์
ํ๋ฉด)
update member set state = 2 where id = 'def'
๋ธ๋๋ฆฌ์คํธ๋ฒํผ(๊ด๋ฆฌ์ ํ๋ฉด)
update member set state = 3 where id = 'ghi'
-> delete ํ ๊ฑด ์๋๋ฐ, delete ํ ๊ฒ ์ฒ๋ผ ๋ณด์ฌ์ค๋ค.
ํ์๋ชฉ๋ก๋ฆฌ์คํธ
select * from member where state = 1
19.1 ๋ ์ข ๋ฅ์ ์ญ์ ๋ฐฉ๋ฒ
๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ๋ ๋ฐ์ ๋ ๊ฐ์ง ์ฌ๊ณ ๋ฐฉ์์ด ์๋ค.
๋ฌผ๋ฆฌ ์ญ์ : SQL์ DELETE ๋ช ๋ น์ ์ฌ์ฉํด ์ง์ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ์๋ ์ฌ๊ณ ๋ฐฉ์์ด๋ค.
๋
ผ๋ฆฌ ์ญ์ : ํ
์ด๋ธ์์ ์ค์ ๋ก ํ์ ์ญ์ ํ๋ ๋์ , UPDATE ๋ช
๋ น์ ์ด์ฉํด '์ญ์ ํ๋๊ทธ'์ ๊ฐ์ ์ ํจํ๊ฒ ๊ฐฑ์ ํด๋์๋ ๋ฐ์์ ์ํ ์ญ์ ๋ฐฉ๋ฒ์ด๋ค.
- ์ฅ์ : ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ์ง ์๊ธฐ ๋๋ฌธ์ ์ญ์ ๋๊ธฐ ์ ์ ์ํ๋ก ๊ฐ๋จํ ๋๋๋ฆด ์ ์๋ค.
- ๋จ์ : ์ญ์ ํด๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅ๊ณต๊ฐ์ด ๋์ด๋์ง ์๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํฌ๊ธฐ๊ฐ ์ฆ๊ฐํจ์ ๋ฐ๋ผ ๊ฒ์์๋๊ฐ ๋จ์ด์ง๋ค. ์ดํ๋ฆฌ์ผ์ด์
์ธก ํ๋ก๊ทธ๋จ์์๋ ์ญ์ ์์๋ ๋ถ๊ตฌํ๊ณ UPDATE ๋ช
๋ น์ ์คํํ๋ฏ๋ก ํผ๋์ ์ผ๊ธฐํ๋ค.
19.2 ์ญ์ ๋ฐฉ๋ฒ ์ ํํ๊ธฐ
๋ฌผ๋ฆฌ์ญ์ ์์
- ์ฌ์ฉ์๊ฐ ํํด
- ํ๋์จ์ด์ ์ ํ: ๋ฐ์ดํฐ๋ฅผ ์ง์ด๋ค.
๋
ผ๋ฆฌ์ญ์ ์์
- ์ฃผ๋ฌธ ์ทจ์
Point: ๋ฌผ๋ฆฌ์ญ์ ์ ๋ ผ๋ฆฌ์ญ์ ๋ ์ฉ๋์ ๋ง๊ฒ ์ ํํ๋ค.