๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์‹œ๋„/๊ตญ๋น„์ง€์›

[D+29] DB ํ…Œ์ด๋ธ” ์ƒ์„ฑ ๋ฐ ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€/์‚ญ์ œ, ์กฐํšŒ, ์„œ๋ธŒ์ฟผ๋ฆฌ

by ๐Ÿ‡๋ฐ•๋ด‰๋ด‰๐Ÿ‡ 2022. 11. 2.

 

 

๊ตญ๋น„์ง€์› D+29

-  DB ํ…Œ์ด๋ธ” ์ƒ์„ฑ ๋ฐ ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€/์‚ญ์ œ, ์กฐํšŒ, ์„œ๋ธŒ์ฟผ๋ฆฌ -

 


 

DB ํ…Œ์ด๋ธ” ์ƒ์„ฑ ๋ฐ ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€/์‚ญ์ œ

1. create

- table์„ ์ƒ์„ฑํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.

- table ์ƒ์„ฑ์‹œ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ์ง€์ •ํ•ด์ค€๋‹ค.

- ์ •๋ณด๋ฅผ ์ €์žฅํ•  ํ‘œ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

-- ํ…Œ์ด๋ธ” ์ƒ์„ฑ
create table usertbl 					-- ํšŒ์›ํ…Œ์ด๋ธ”
(
	userID char(20) not null primary key,		-- ์•„์ด๋””
    	name varchar(20) not null,			-- ์ด๋ฆ„
    	birthYear int not null,				-- ์ƒ๋…„
    	addr char(2) not null,				-- ์ง€์—ญ
	mobile1 char(3),				-- ๊ตญ๋ฒˆ
    	mobile2 char(8),				-- ์ „ํ™”๋ฒˆํ˜ธ
    	height smallint,				-- ํ‚ค
    	mDate date					-- ๊ฐ€์ž…์ผ
);

 

2. auto increment

- ํ…Œ์ด๋ธ”์˜ ๋ฒˆํ˜ธ๊ฐ€ ์ผ์ •ํ•˜๊ฒŒ ์ฆ๊ฐ€๋  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.

- primary key ๋˜๋Š” unique๋กœ ์„ค์ •๋œ๋‹ค.

- ๋ฐ์ดํ„ฐํ˜•์€ ์ˆซ์žํ˜•๋งŒ ๊ฐ€๋Šฅํ•˜๋‹ค.

- ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€์‹œ NULL๋กœ ์ง€์ •ํ•œ๋‹ค.

 

3. insert into

- ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•œ ๋’ค์— ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅํ• ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.

- ๋ฐ์ดํ„ฐ ์‚ฝ์ž…์‹œ ์—ด์€ ์ƒ๋žต ๊ฐ€๋Šฅํ•˜๋ฉฐ, ์ƒ๋žตํ•  ๊ฒฝ์šฐ values ๋‹ค์Œ์— ๋‚˜์˜ค๋Š” ๊ฐ’๋“ค์˜ ์ˆœ์„œ ๋ฐ ๊ฐœ์ˆ˜๊ฐ€ ํ…Œ์ด๋ธ”์— ์ •์˜๋œ ์—ด์˜ ์ˆœ์„œ ๋ฐ ๊ฐœ์ˆ˜์™€ ๋™์ผํ•ด์•ผ ํ•œ๋‹ค.

INSERT [INTO] ํ…Œ์ด๋ธ”๋ช… [(์—ด1, ์—ด2, ... )] VALUES (๊ฐ’1, ๊ฐ’2, ...);

-- ๋ฐ์ดํ„ฐ ์ž…๋ ฅ
INSERT INTO usertbl VALUES ('PSH', '๋ฐ•๋ด‰๋ด‰', 1997, '์ธ์ฒœ', '010', '12345678', 167, '1997-12-12');

INSERT INTO member(id, name, addr) VALUES ('1', '๋ฐ•๋ด‰๋ด‰', '์ธ์ฒœ');

 

4. update set

- ํŠน์ • ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ€๊ฒฝํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.

- set ๋‹ค์Œ์— ๋ณ€๊ฒฝํ•  ๊ฐ’๊ณผ where ๋‹ค์Œ์—” ๋ณ€๊ฒฝํ•  ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์„ค๋ช…์„ ์ž‘์„ฑํ•œ๋‹ค.

UPDATE ํ…Œ์ด๋ธ”๋ช… SET ์—ด1=๊ฐ’1, ์—ด2=๊ฐ’2 WHERE ์กฐ๊ฑด;

-- ์ด๋ฆ„์ด ๋ฐ”๋น„ํ‚ด์ธ ์‚ฌ๋žŒ์˜ mobile1์„ 010์œผ๋กœ ๋ฐ”๊ฟ”๋ณด์ž
update usertbl 
set mobile1='010' 
where name='๋ฐ”๋น„ํ‚ด';

 

5. delete

- ํŠน์ • ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.

- update์™€ ๋‹ฌ๋ฆฌ ์–ด๋– ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ• ์ง€์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ ์„ค๋ช…๋งŒ ์ž‘์„ฑํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

- ํ–‰๋‹จ์œ„๋กœ ์‚ญ์ œ๋œ๋‹ค.

DELETE FROM ํ…Œ์ด๋ธ”๋ช… WHERE ์กฐ๊ฑด;

-- userID๊ฐ€ PSH์ธ ์‚ฌ๋žŒ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•˜์‹œ์˜ค
delete from usertbl
where userID='PSH';

 


DB ์กฐํšŒ

1. select

select๋Š” SQL์„ ์ž‘์„ฑํ•˜๋Š” ๊ตฌ์กฐ๋งŒ ์ž˜ ํŒŒ์•…ํ•˜๋ฉด ๋œ๋‹ค.

select : ์•Œ๊ณ  ์‹ถ์€ ๊ฒƒ์€ ๋ฌด์—‡์ธ๊ฐ€? => ์ปฌ๋Ÿผ
from : ์•Œ๊ณ  ์‹ถ์€๊ฒŒ ์–ด๋””์— ์žˆ๋Š”๊ฐ€? => ํ…Œ์ด๋ธ”
where : ์กฐ๊ฑด์€ ๋ฌด์—‡์ธ๊ฐ€? 

 

2. where

- ๋ช…๋ น์–ด์— ๋Œ€ํ•œ ์กฐ๊ฑด์„ ์ •์˜ํ•œ ์‹์ด๋‹ค.

- where์ ˆ์—๋Š” ํฌ๊ฒŒ ๋น„๊ต์—ฐ์‚ฐ, ๋…ผ๋ฆฌ์—ฐ์‚ฐ, ์ด์‚ฐ์—ฐ์‚ฐ, Like์—ฐ์‚ฐ์ด ์žˆ๋‹ค.

-- ๋น„๊ต์—ฐ์‚ฐ
-- ํ‚ค๊ฐ€ 175์ด์ƒ์ธ ํšŒ์›์„ ์กฐํšŒํ•œ๋‹ค.
select *
from usertbl
where height >= 175;

-- ๋…ผ๋ฆฌ์—ฐ์‚ฐ
-- ํ‚ค๊ฐ€ 175์ด์ƒ์ด๊ณ  1980๋…„ ์ดํ›„ ์ถœ์ƒ์ธ ํšŒ์›์„ ์กฐํšŒํ•œ๋‹ค.
select *
from usertbl
where height >= 175 and birthYear >= 1980;

-- ์ด์‚ฐ์—ฐ์‚ฐ
-- addr์ด ์„œ์šธ์ด๋‚˜ ๊ฒฝ๊ธฐ์— ์‚ฌ๋Š” ํšŒ์›์„ ์กฐํšŒํ•œ๋‹ค.
select *
from usertbl
where addr in ('์„œ์šธ', '๊ฒฝ๊ธฐ');

-- Like์—ฐ์‚ฐ
-- userID๊ฐ€ L๋กœ ์‹œ์ž‘ํ•˜๋Š” ํšŒ์›์˜ ์ •๋ณด๋ฅผ ์กฐํšŒํ•œ๋‹ค.
select *
from usertbl
where userID like 'L%';

 

3. order by

- ์กฐํšŒ ๊ฒฐ๊ณผ๋ฅผ ์ •๋ ฌํ•˜๋Š” ๊ตฌ๋ฌธ์œผ๋กœ ์กฐํšŒ ๊ฒฐ๊ณผ์—๋Š” ์‹ค์งˆ์ ์œผ๋กœ ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๋Š”๋‹ค.

- select๋ฌธ์˜ ๊ฐ€์žฅ ๋’ค์— ์œ„์น˜ํ•œ๋‹ค.

-- ์ •๋ ฌ order by
select *
from usertbl
order by mDate;

select *
from usertbl
order by mDate asc;

select *
from usertbl
order by mDate desc;

 

4. distinct

- ์ค‘๋ณต๋œ row๋ฅผ ํ•˜๋‚˜๋งŒ ์ถœ๋ ฅํ•˜๋„๋ก ํ•œ๋‹ค.

- ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ปฌ๋Ÿผ์„ ์„ ํƒ์‹œ์— distinct๊ฐ€ ๋ฌดํšจ๊ฐ€ ๋œ๋‹ค.

-- ์ค‘๋ณต์ œ๊ฑฐ distinct
select distinct addr
from usertbl;

 


DB ์„œ๋ธŒ์ฟผ๋ฆฌ

- ์ฟผ๋ฆฌ์•ˆ์— ์žˆ๋Š” ์ฟผ๋ฆฌ

- ํ”ผ์—ฐ์‚ฐ์ž์˜ ๋ช…ํ™•ํ•œ ๊ฐ’์„ ๋„์ถœํ•˜๊ธฐ ์–ด๋ ค์šธ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.

 

์„œ๋ธŒ์ฟผ๋ฆฌ๋Š” ๊ฒฐ๊ณผ์— ๋”ฐ๋ผ์„œ ๋‹ค๋ฅด๊ฒŒ ์ž‘์„ฑํ•˜๋Š”๋ฐ ๋งŒ์•ฝ ๊ฒฐ๊ณผ๊ฐ’์ด ๋‹จ์ผ ๊ฐ’์ผ ๊ฒฝ์šฐ์—” ๋‹จ์ˆœํžˆ ์ฟผ๋ฆฌ์•ˆ์— ์ฟผ๋ฆฌ๋ฅผ ๋„ฃ๋Š” ํ˜•์‹์œผ๋กœ ๊ฐ’์„ ์ž‘์„ฑํ•ด์ฃผ๋ฉด ๋˜์ง€๋งŒ, ๋งŒ์•ฝ ์ฟผ๋ฆฌ์˜ ๊ฒฐ๊ณผ๊ฐ€ ๋ณต์ˆ˜๊ฐ’์ผ ๊ฒฝ์šฐ์—๋Š” ANY๋‚˜ ALL์„ ์‚ฌ์šฉํ•ด ๊ธฐ์ค€์„ ์ •ํ•ด์ค„ ํ•„์š”๊ฐ€ ์žˆ๋‹ค.

ANY๋Š” or์™€ ๋น„์Šทํ•œ ๊ฐœ๋…์ด๊ณ , ALL์€ and์™€ ๋น„์Šทํ•œ ๊ฐœ๋…์œผ๋กœ ๋‹จ์ผ ๊ธฐ์ค€์„ ์—ฐ์‚ฐ์— ๋งž์ถฐ ๊ฐ€์ ธ์˜ค๊ฒŒ ๋œ๋‹ค.

 

-- ๊น€๊ฒฝํ˜ธ๋ณด๋‹ค ํ‚ค๊ฐ€ ํฐ ํšŒ์› ์ •๋ณด๋ฅผ ์กฐํšŒํ•ด๋ผ
select *
from usertbl
where height > (select height from usertbl where name='๊น€๊ฒฝํ˜ธ');

-- ๊ฒฝ๋‚จ์—์„œ ์‚ฌ๋Š” ์‚ฌ๋žŒ๋“ค๋ณด๋‹ค ํ‚ค๊ฐ€ ํฐ ์‚ฌ๋žŒ์„ ์กฐํšŒํ•ด๋ผ
-- ANY(=or)
select *
from usertbl
where height > any(select height from usertbl where addr='๊ฒฝ๋‚จ');

-- ALL(=and)
select *
from usertbl
where height > all(select height from usertbl where addr='๊ฒฝ๋‚จ');

 

 

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€