SQL-insert,update,delete

parkeuยท2022๋…„ 10์›” 18์ผ
0

ABC๋ถ€ํŠธ์บ ํ”„

๋ชฉ๋ก ๋ณด๊ธฐ
42/55

Insert๋ฌธ

๊ธฐ๋ณธํ˜•์‹

insert into ํ…Œ์ด๋ธ” [์—ด1, ์—ด2, ..] values [๊ฐ’1, ๊ฐ’2, ...]

ํ…Œ์ด๋ธ” ์ƒ์„ฑํ•˜๊ณ  ๊ฐ ์—ด์— ๋ฐ์ดํ„ฐ ์ž…๋ ฅ

create table doit_dml (
col_1 int,
col_2 nvarchar(50),
col_3 datetime
)
--go --์œ„ ์•„๋ž˜ ๊ตฌ๋ถ„ํ•˜๋Š” ์—ญํ• (์—†์–ด๋„ ๋ฌธ์ œ์•ˆ๋ ์ˆ˜์žˆ๋‹ค.)
insert into doit_dml(col_1, col_2, col_3) --์ปฌ๋Ÿผ๋ช… ์ƒ๋žต ๊ฐ€๋Šฅ
values (1, 'DoItSQL', '2021-01-01')

select * from doit_dml
insert into doit_dml(col_1, col_2)
values (3, N'3๋ฒˆ์งธ ์—ด ์ƒ๋žต')

๋‹ค์Œ๊ณผ ๊ฐ™์ด๋„ ๊ฐ€๋Šฅ

select * from doit_dml
insert into doit_dml(col_1, col_3, col_2)
values(4, '2021-01-03',N'์—ด์ˆœ์„œ๋ณ€๊ฒฝ')
select * from doit_dml
insert into doit_dml(col_1, col_2, col_3)
values(5, N'๋ฐ์ดํ„ฐ ์ž…๋ ฅ5', '2021-01-03'), (6,N'๋ฐ์ดํ„ฐ ์ž…๋ ฅ6', '2021-01-03'), (7, N'๋ฐ์ดํ„ฐ ์ž…๋ ฅ7', '2021-01-03')

update๋ฌธ

๊ธฐ๋ณธํ˜•์‹

update [ํ…Œ์ด๋ธ”๋ช…] set [์—ด1=๊ฐ’1, ์—ด2=๊ฐ’2, ...] where [์—ด] = [์กฐ๊ฑด]

update๋ฅผ where์ ˆ ์—†์ด ์ˆ˜ํ–‰ํ•˜๋ฉด ์ „์ฒด ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ •ํ•˜๊ฒŒ ๋˜๋ฏ€๋กœ ์ฃผ์˜ !

update doit_dml
set col_2 = N'๋ฐ์ดํ„ฐ ์ˆ˜์ •'
where col_1 = 3

update ๋ฌธ์œผ๋กœ ์ „์ฒด ์—ด ๋ฐ์ดํ„ฐ ์ˆ˜์ •

update doit_dml
set col_1 = col_1 + 10


Delete๋ฌธ

๊ธฐ๋ณธ ํ˜•์‹

delete [ํ…Œ์ด๋ธ”์ด๋ฆ„] where [์—ด] = [์กฐ๊ฑด]

delete๋ฌธ์œผ๋กœ ํŠน์ • ์—ด ๋ฐ์ดํ„ฐ ์‚ญ์ œ : where๋ฌธ ์‚ฌ์šฉ

delete doit_dml
where col_1 = 13

ํ…Œ์ด๋ธ” ์‚ญ์ œ

drop table doit_dml
drop table doit_notnull

์™ธ๋ž˜ํ‚ค๋กœ ์ž…๋ ฅ๋œ ๋ฐ์ดํ„ฐ ์ž…๋ ฅ, ์‚ญ์ œ

๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค
๋ฐ์ดํ„ฐ์˜ ๋ฌด๊ฒฐ์„ฑ์„ ์œ ์ง€ํ•ด์•ผ ํ•˜๋ฏ€๋กœ ๋ถ€๋ชจ ํ…Œ์ด๋ธ”์— ์—†๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ž์‹ ํ…Œ์ด๋ธ”์ด ๊ฐ€์ง€๋ฉด ์•ˆ๋˜๋Š” ๊ฒƒ์ด ์›์น™

  • ์ž์‹ ํ…Œ์ด๋ธ”์— ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅํ•  ๋•Œ ๋ถ€๋ชจ ํ…Œ์ด๋ธ”์— ํ•ด๋‹น ๋ฐ์ดํ„ฐ๊ฐ€ ์—†์œผ๋ฉด ์˜ค๋ฅ˜ ๋ฐœ์ƒ
    -> ๋ถ€๋ชจ ํ…Œ์ด๋ธ”์— ๋ฐ์ดํ„ฐ๋ฅผ ๋จผ์ € ์ž…๋ ฅํ•˜์—ฌ ํ•ด๊ฒฐ
  • ๋ถ€๋ชจ ํ…Œ์ด๋ธ”์˜ ๋ฐ์ดํ„ฐ๋งŒ ์‚ญ์ œํ•˜๋ ค๊ณ  ํ•˜๋ฉด ์™ธ๋ž˜ํ‚ค ์ œ์•ฝ์กฐ๊ฑด ๋•Œ๋ฌธ์— ์˜ค๋ฅ˜ ๋ฐœ์ƒ
    -> ์ž์‹ ํ…Œ์ด๋ธ”์˜ ๋ฐ์ดํ„ฐ ๋จผ์ € ์‚ญ์ œ ํ›„ ๋ถ€๋ชจ ํ…Œ์ด๋ธ” ๋ฐ์ดํ„ฐ ์‚ญ์ œ
  • ํ…Œ์ด๋ธ” ์‚ญ์ œ : ๋ฐ์ดํ„ฐ๊ฐ€ ์—†๊ณ  ์™ธ๋ž˜ํ‚ค ์„ค์ •๋งŒ ์ž˜ ๋˜์–ด์žˆ์–ด๋„ ์˜ค๋ฅ˜ ๋ฐœ์ƒ
    -> ์ œ์•ฝ ์กฐ๊ฑด์„ ์ œ๊ฑฐํ•ด ํ…Œ์ด๋ธ” ์‚ญ์ œ ์ง„ํ–‰
create table doit_parent(
col_1 int primary key
)

create table doit_child(
col_1 int
)

alter table doit_child
add foreign key (col_1)
references doit_parent(col_1)


๋‹ค๋ฅธ ํ…Œ์ด๋ธ”์— ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ ์ž…๋ ฅ

insert ... select ๋ฌธ์˜ ๊ธฐ๋ณธ ํ˜•์‹

insert ๋Œ€์ƒ ํ…Œ์ด๋ธ”
select ์—ด from ๊ธฐ์กด ํ…Œ์ด๋ธ”

doit_stock ํ…Œ์ด๋ธ”์— ์ €์žฅํ•˜๋Š” ์ฟผ๋ฆฌ

create table doit_stock(
date datetime,
symbol nvarchar(255),
[open] float,
[high] float,
[low] float,
[close] float,
adj_close float,
volume bigint
);
insert doit_stock
select * from stock
where symbol >= 'MSFT' and date >= '2021-01-01' and date < '2021-02-01'; 
--between์€ a์™€b๋ชจ๋‘ ๋ฒ”์œ„ ํฌํ•จ!
--between '2021-01-01' and '2021-01-31'๋„ ๊ฐ€๋Šฅ

์ƒˆ ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•˜์—ฌ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ ์ž…๋ ฅํ•˜๊ธฐ

๊ธฐ๋ณธ ํ˜•์‹

select ์—ด into ์ƒˆ๋กœ์šด ํ…Œ์ด๋ธ” from ๊ธฐ์กด ํ…Œ์ด๋ธ”

doit_stock2ํ…Œ์ด๋ธ” ์ž๋™ ์ƒ์„ฑ ๋’ค ์ €์žฅ

select * from doit_stock2
select * into doit_stock2 from stock
where symbol = 'msft'
and date between '2021-01-01' and '2021-01-31'

profile
๋ฐฐ๊ณ ํŒŒ์šฉ.

0๊ฐœ์˜ ๋Œ“๊ธ€