Skip to content

Latest commit

ย 

History

History
227 lines (205 loc) ยท 11.8 KB

File metadata and controls

227 lines (205 loc) ยท 11.8 KB

์—๋ฒ„๋…ธํŠธ : https://www.evernote.com/shard/s536/sh/71aea36d-67e7-4c3c-9bd0-04264889cd41/470eae7be57ba3cb289bd2e9cbe134bd

CMD ( ๊ณต๋ฐฑ ์ฃผ์˜)
mysql -u(username ๊ณต๋ฐฑ๊ฐ€๋Šฅ) -p(ํŒจ์Šค์›Œ๋“œ ๊ณต๋ฐฑX) : mysql ์„œ๋ฒ„ ์ ‘์†

ย  ย SQL๋ฌธ ์‚ฌ์šฉ์‹œ ๋ช…๋ น์–ด ๋์— ;(์„ธ๋ฏธ์ฝœ๋ก )์„ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค

ํ˜„์žฌ ์‚ฌ์šฉ์ค‘์ธ DBํ™•์ธ(;ํ•„์ˆ˜)
show databases; : db ๋ชฉ๋กํ™•์ธ
select databases(); : ํ˜„์žฌ ์‚ฌ์šฉ์ค‘์ธ dbํ™•์ธ
use (db์ด๋ฆ„) : ์‚ฌ์šฉ ํ•  DB์„ ํƒ
show tables; : db์•ˆ์˜ table ๋ชฉ๋ก ํ™•์ธ
desc ํ…Œ์ด๋ธ” : ํ•ด๋‹น ํ…Œ์ด๋ธ”์˜ ํƒ€์ž…์„ ์ •๋ ฌํ•œ๋‹ค.

SQL๋‚ด์˜ ์—ฐ์‚ฐ
์‚ฌ์น™์—ฐ์‚ฐ ์ค‘ + / ์šฐ์„ ์ˆœ์œ„์ด๋ฉฐ + - ํ›„์ˆœ์œ„์ด๋‹ค
NULL๊ฐ’์— ์‚ฌ์น™์—ฐ์‚ฐ์„ ํ•˜๋ฉด NULL์ด๋‹ค
๋ณต์žกํ•œ ์—ฐ์‚ฐ์„ ํ•  ๋•Œ๋Š” ๋‚ด์žฅํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•œ๋‹ค.
round(๋Œ€์ƒ, ๋ฐ˜์˜ฌ๋ฆผ ์œ„์น˜) : ๋ฐ˜์˜ฌ๋ฆผํ•œ๋‹ค(-์“ฐ๋ฉด ์ •์ˆ˜์ž๋ฆฌ)
select round(a,3),round(b,-3) from test : a์˜ ์†Œ์ˆ˜ 3๋ฒˆ์งธ์ž๋ฆฌ๊นŒ์ง€ ๋ฐ˜์˜ฌ๋ฆผํ•˜๊ณ  b์˜ ์ •์ˆ˜ 3๋ฒˆ์งธ ์ž๋ฆฌ๊นŒ์ง€ ๋ฐ˜์˜ฌ๋ฆผํ•œ๋‹คย 
sqrt(๋Œ€์ƒ) : ๋Œ€์ƒ์— ๋Œ€ํ•ด์„œ ๋ฃจํŠธ๋ฅผ ์”Œ์šด๋‹ค.
select sqrt(a) from test;
concat(๋ฌธ์ž1(ํ–‰), ๋ฌธ์ž2(ํ–‰)) :๋ฌธ์ž1๊ณผ ๋ฌธ์ž2๋ฅผ ๋”ํ•œ๋‹ค
select concat(a,b) from * : a,b ์—ด์„ ํ•ฉ์นœ๋‹ค
subtring(๋Œ€์ƒ, ๊ธฐ์ค€์ , ๊ฐฏ์ˆ˜) : ๋Œ€์ƒ์˜ ๊ธฐ์ค€์ ์„ ๊ธฐ์ค€์œผ๋กœ ํ•ด๋‹น ๊ฐฏ์ˆ˜๋งŒํผ ์ถœ๋ ฅ
select substring(a,1,2) from test : testํ…Œ์ด๋ธ”์˜ a์—ด์˜ย  1๋ฒˆ์งธ์—์„œ 2๊ฐœ ๋งŒํผ ์ถœ๋ ฅ
TRIM : ์ŠคํŽ˜์ด์Šค ์ œ๊ฑฐ
trim ('abcย  ย  ย ') = 'abc
charater_length : sql์—์„œ len์€ ๋ญ˜๊นŒ?ย 
๋‚ ์งœ์—ฐ์‚ฐ
current_timestamp : PC์˜ ์‹œ๊ฐ„ ๊ธฐ์ค€
select current_timestamp;
select current_timestamp + interval (๋”ํ•  ๋‚ ์งœ) (์ผ,์ฃผ,๋…„)
select current_timestamp + interval 1 day : ํ•˜๋ฃจ๋ฅผ ๋”ํ•œ๋‹ค
select current_timestamp + interval 2 week : 2์ฃผ์ผ์„ ๋”ํ•œ๋‹ค
DATEDIFF(๋‚ ์งœ1,๋‚ ์งœ2) : ๋‚ ์งœ1 - ๋‚ ์งœ2
select datediff(current_timestamp(),'2018-06-19'); : ์˜ค๋Š˜๋‚ ์งœ ๊ธฐ์ค€์œผ๋กœ 2018-12-31๋ฅผ ๋บ€๋‹ค
CASE๋ฌธ
์กฐ๊ฑด์— ๋งž๋Š” ๊ฐ’์„ ์ถœ๋ ฅํ•œ๋‹ค.
CASE : CASE๋ฌธ์„ ์‹œ์ž‘ํ•œ๋‹ค
WHEN (์กฐ๊ฑด) THEN (์ถœ๋ ฅ) : ์กฐ๊ฑด๋ฌธ์— ํ•ด๋‹นํ•˜๋Š” THEN์œผ๋กœ ์ถœ๋ ฅํ•œ๋‹ค
WHEN a = 1 THEN '๋‚จ์ž'
ELSE (์ถœ๋ ฅ) :
ELSE a = '๋ฏธ์ง€์ •'
END (์—ด์ด๋ฆ„) : CASE๋ฌธ์— ์ถœ๋ ฅ๋˜๋Š” ํ–‰์„ ์ƒ์„ฑํ•œ๋‹ค
END 'hi' : hi๋ผ๋Š” ํ–‰ ์ƒ์„ฑ

๋ฐ์ดํ„ฐ ๊ฒ€์ƒ‰(select)
DML์˜ ์–ธ์–ด์ด๋‹ค.
select (์—ด์ด๋ฆ„) from (ํ…Œ์ด๋ธ”๋ช…) : ์—ด๋งŒ ์ง€์ •
select (์—ด์ด๋ฆ„) from (ํ…Œ์ด๋ธ”๋ช…) where (์กฐ๊ฑด์‹) : ์—ด๊ณผ ํ–‰ ์ง€์ •
์—ด ์ด๋ฆ„์˜ *(์•„์Šคํ…Œ๋ฆฌํฌ)๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ „๋ถ€๋ฅผ ๋œปํ•œ๋‹ค
ex) select * from test (testํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ์—ด ๊ฒ€์ƒ‰)
์กฐ๊ฑด์‹
ย = : ๊ฐ™๋‹ค
<> : ๊ฐ™์ง€ ์•Š๋‹ค.
< > <= >= : ๋น„๊ต์—ฐ์‚ฐ์ž
and or not(and๊ฐ€ or ์šฐ์„ ์ˆœ์œ„ ๋†’๋‹ค)
like (ํŒจํ„ด)
ํŒจํ„ด -> % ์ž„์˜์˜ ์—ฌ๋Ÿฌ๋ฌธ์ž, _ : ์ž„์˜์˜ ๋ฌธ์žํ•˜๋‚˜

order by (์ •๋ ฌ๊ธฐ์ค€ ์—ด): ์ •๋ ฌ๋ช…๋ น์–ด
default๋กœ๋Š” ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ๋˜์–ด์žˆ๋‹ค.
desc : ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ๋‹ค.
๋ฌธ์ž์—ด ์ •๋ ฌ ๊ธฐ์ค€ : ์‚ฌ์ „์ˆœ
order by (๊ธฐ์ค€์—ด1),(๊ธฐ์ค€์—ด2) : ์ˆœ์„œ์ค‘์š”ย  ๊ตฌ๋ถ„์€ ,(์‰ผํ‘œ)
ex) select * from test order by a,b desc : ํ…Œ์ŠคํŠธ ํ…Œ์ด๋ธ”์— ๋Œ€ํ•ด a๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ ํ›„ b๋กœ ๋‚ด๋ฆผ์ฐจ์ˆœ ํ•œ๋‹ค
NULL์€ ๊ฐ€์žฅ ์ž‘์€๊ฐ’์œผ๋กœ ์ทจ๊ธ‰ํ•œ๋‹ค.
LIMIT (์ถœ๋ ฅํ•  ํ–‰์ˆ˜) OFFSET(์‹œ์ž‘ํ–‰+1) :ย  ๊ฒฐ๊ณผ ๊ฐ’ ์ œํ•œ
select * from test limit 2 offset 0 : ์ฒซ๋ฒˆ์งธ ์—ด์„ ์‹œ์ž‘์œผ๋กœ 2๊ฐœ์˜ ๊ฐ’ ์ถœ๋ ฅ

๋ฐ์ดํ„ฐ์ถ”๊ฐ€(insert into)
DML์˜ ์–ธ์–ด์ด๋‹ค.
insert into (ํ…Œ์ด๋ธ”๋ช…) values(๊ฐ’1, ๊ฐ’2,...๊ฐ’n) : ํ–‰์— ๋งž๊ฒŒ ๊ฐ’ ์ž…๋ ฅ
insert into test values(1,'์•ˆ๋…•') : test ํ…Œ์ด๋ธ”์— 1์˜ ๊ฐ’๊ณผ '์•ˆ๋…•'์„ ์ถ”๊ฐ€
insert into ํ…Œ์ด๋ธ”๋ช…(ํŠน์ • ์—ด) values(ํŠน์ •์—ด์— ๋งž๋Š” ๊ฐ’) : ํŠน์ • ์—ด์—๋งŒ ๊ฐ’์„ ์ž…๋ ฅ
insert into test(a) values(1) : a์˜ ์—ด์˜ 1์ด๋ผ๋Š” ๊ฐ’ ์ž…๋ ฅ
๋ฐ์ดํ„ฐ์ˆ˜์ •(update)
DML์˜ ์–ธ์–ด์ด๋‹ค.
update ํ…Œ์ด๋ธ”๋ช… set ์ˆ˜์ •ํ•  ๊ฐ’ (where {์กฐ๊ฑด})
update test set a = 2 where b = 'ํ—ฌ๋กœ์šฐ' : testํ…Œ์ด๋ธ”์˜ b์˜ ๊ฐ’์ด ํ—ฌ๋กœ์šฐ์ธ a์˜ ๊ฐ’์„ 2๋กœ ์ˆ˜์ •ํ•œ๋‹ค

๋ฐ์ดํ„ฐ์‚ญ์ œ(delete)
DML์˜ ์–ธ์–ด์ด๋‹ค.
delete from ํ…Œ์ด๋ธ”๋ช… (where {์กฐ๊ฑด}) : ํ•ด๋‹น ํ…Œ์ด๋ธ”์˜ ๊ฐ’์„ ์‚ญ์ œํ•œ๋‹ค
delete from test : ํ…Œ์ŠคํŠธ ํ…Œ์ด๋ธ” ๊ฐ’ ์‚ญ์ œ
where๋ฌธ์ด ์—†์„ ๊ฒฝ์šฐ ๋ฐ์ดํ„ฐ ์‚ญ์ œ / ์กฐ๊ฑด๋ฌธ์ด ์žˆ์„ ์‹œ ํ•ด๋‹น ์กฐ๊ฑด๋ฌธ์— ํ•ด๋‹นํ•˜๋Š” ๊ฐ’๋งŒ ์‚ญ์ œ
ํ…Œ์ด๋ธ” ์ž์ฒด ์‚ญ์ œ๊ฐ€ ์•„๋‹˜ย 

ํ…Œ์ด๋ธ” ์ถ”๊ฐ€(CREATE)
DDL์˜ ์–ธ์–ด์ด๋‹ค.
CREATE TABLE ํ…Œ์ด๋ธ”์ด๋ฆ„ (์—ด์ด๋ฆ„ ์—ดํƒ€์ž… ์†์„ฑ) : ํ…Œ์ด๋ธ”์ด๋ฆ„๋ช…์œผ๋กœ ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•œ๋‹ค.
CREATE TABLE test_2 (ย 
ย ย  ย ย ย  ย ย ย  ย ย ย  ย ย ย ย  ย ย ย  ย  ย  no int not null,
ย ย  ย ย ย  ย ย ย  ย ย ย  ย ย ย  ย ย ย  ย ย  ย  a varchar(10),
ย ย  ย ย ย  ย ย ย  ย ย ย  ย ย  ย ย ย  ย ย ย  ย  b date);
ย ย  ย ย ย  ย ย  ย ย ย  ย ย ย  ย  : test_2๋ผ๋Š” ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•˜๋ฉด์„œ no๋ผ๋Š” intํ˜•์„ ๋งŒ๋“ค๊ณ  NULL๊ฐ’์„ ํ—ˆ์šฉ์•ˆํ•œ๋‹ค.
ย ย  ย ย ย  ย ย ย ย  ย ย ย  ย  ย  ย a๋Š” varchar(10)์œผ๋กœ ์ƒ์„ฑํ•˜๊ณ , b๋Š” dateํ˜•์‹์œผ๋กœ ์ƒ์„ฑํ•œ๋‹ค.
ํ…Œ์ด๋ธ” ์ค‘๋ณต๋ช…์€ ํ—ˆ์šฉ๋˜์ง€ ์•Š๋Š”๋‹ค.

ALTER TABLE ํ…Œ์ด๋ธ”๋ช… ๋ช…๋ น์–ด(ADD,DROP,MODIFY,CHANGE)ย  : ์ถ”๊ฐ€ ์ˆ˜์ • ๋ณ€๊ฒฝ ์‚ญ์ œ
DDL์˜ ์–ธ์–ด์ด๋‹ค.
ADD ํ–‰์ด๋ฆ„ ํ–‰ํƒ€์ž… : ์—ด์„ ์ถ”๊ฐ€ํ•œ๋‹ค
alter table test add c int(10) : c์—ด์„ ์ถ”๊ฐ€ํ•˜๊ณ  intํ˜•์œผ๋กœ ์„ ์–ธํ•œ๋‹ค
alter table test add d varchar(10) : d์—ด์„ ์ถ”๊ฐ€ํ•˜๊ณ  varchar(10)์œผ๋กœ ์„ ์–ธ
,(์‰ผํ‘œ)๋ฅผ ํ†ตํ•ด ์—ฌ๋Ÿฌ์—ด์„ ํ•œ๋ฒˆ์— ์ถ”๊ฐ€ ๊ฐ€๋Šฅ
after (์—ด์ด๋ฆ„) : ํ•ด๋‹น ์—ด ๋‹ค์Œ์œผ๋กœ ์ถ”๊ฐ€ํ•œ๋‹ค
after b : b์—ด ๋‹ค์Œ์œผ๋กœ ์—ด ์ถ”๊ฐ€
first : ์—ด ๋งจ์ฒ˜์Œ์œผ๋กœ ์ถ”๊ฐ€ํ•œ๋‹คย 
DROP ํ–‰์ด๋ฆ„: ํ–‰์„ ์‚ญ์ œํ•œ๋‹ค
alter table test drop d : dํ–‰์„ ์‚ญ์ œํ•œ๋‹ค.
์‚ญ์ œ์‹œ ๋ณต๊ตฌ ๋ถˆ๊ฐ€๋Šฅ
MODIFY ํ–‰์ด๋ฆ„ ํ–‰ํƒ€์ž… (์ƒˆ๋กœ์šด ์กฐ๊ฑด ์ถ”๊ฐ€)ย  : ํ–‰์˜ ํƒ€์ž… ๋ณ€๊ฒฝ
alter table test modify c char(10) : Cํ–‰์˜ ํ˜•์‹์„ int์—์„œ char(10)์œผ๋กœ ๋ณ€๊ฒฝํ•œ๋‹ค.
์ƒˆ๋กœ์šด ์กฐ๊ฑด์€ is not null๊ณผ unique ๋“ฑ์ด ์žˆ๋‹ค.
CHANGE ์›๋ž˜ํ–‰์ด๋ฆ„ ๋ฐ”๊ฟ€ํ–‰์ด๋ฆ„ (๋ฐ”๊ฟ€ํ˜•์‹) : ํ–‰์˜ ์ด๋ฆ„๊ณผ ํƒ€์ž…๋ณ€๊ฒฝ :
alter table test change c d : ํ–‰ C์˜ ์ด๋ฆ„์„ D๋กœ ๋ณ€๊ฒฝํ•œ๋‹ค.
alter table test change c d date : ํ–‰ C๋ฅผ D๋กœ ์ด๋ฆ„๋ณ€๊ฒฝํ•˜๋ฉด์„œ ํ˜•์‹์„ date๋กœ ํ•œ๋‹ค

ํ…Œ์ด๋ธ” ์‚ญ์ œ(DROP)
DDL์˜ ์–ธ์–ด์ด๋‹ค.
DROP TABLE ํ…Œ์ด๋ธ”๋ช… : ํ…Œ์ด๋ธ”๋ช…์˜ ์ •์˜๋œ ํ…Œ์ด๋ธ”์„ ์™„์ „์‚ญ์ œํ•œ๋‹ค.
DROP TABLE test : test์˜ ํ…Œ์ด๋ธ”์„ ์‚ญ์ œํ•œ๋‹ค.
๋ณต๊ตฌ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.

๋‚ด๋ถ€ํ•จ์ˆ˜
COUNT(์—ด์ด๋ฆ„ or * ) : ํ–‰์˜ ๊ฐฏ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.
select count(*) from test : test์˜ ํ–‰ ๊ฐฏ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค
where ๋ฌธ์„ ์ด์šฉํ•˜์—ฌ ์กฐ๊ฑด์— ๋งž๋Š” ๊ฐฏ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ๋‹ค.
count(distant ์—ด์ด๋ฆ„)์œผ๋กœ ๊ณ ์œ ์˜ ๊ฐ’๋งŒ ์…€ ์ˆ˜ ์žˆ๋‹ค.
SUM(์—ด์ด๋ฆ„ / * ๋ถˆ๊ฐ€๋Šฅ) : ํ•ฉ๊ณ„๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.ย 
select sum(a) from test : test์˜ a์—ด์˜ ๋ชจ๋“  ๊ฐ’์„ ํ•ฉํ•ด์„œ ์ถœ๋ ฅํ•œ๋‹ค

  • ๋Š” ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค (์—ด๋“ค์ด ์ „๋ถ€ intํ˜•๋„ ๋ถˆ๊ฐ€๋Šฅ)
    ๋ฌธ์žํ˜•์€ ์—ฐ์‚ฐ๋ถˆ๊ฐ€๋Šฅ
    AVG(์—ด์ด๋ฆ„ / * ๋ถˆ๊ฐ€๋Šฅ) : ํ‰๊ท ์„ ์ถœ๋ ฅํ•œ๋‹ค.
    select avg(a) from test : test์˜ a์—ด์˜ ํ‰๊ท ๊ฐ’์„ ์ถœ๋ ฅํ•œ๋‹ค.
    sum ๋‚ด์šฉ๊ณผ ๋™์ผย 
    MIN(์—ด์ด๋ฆ„ / * ๋ถˆ๊ฐ€๋Šฅ) : ํ•ด๋‹น์—ด์˜ ์ตœ์†Ÿ๊ฐ’์„ ์ถœ๋ ฅํ•œ๋‹ค.
    select min(a) from test : test์˜ a์—ด์˜ ์ตœ์†Ÿ๊ฐ’์„ ์ถœ๋ ฅํ•œ๋‹ค
    sum ๋‚ด์šฉ๊ณผ ๋™์ผ
    MAX(์—ด์ด๋ฆ„ / * ๋ถˆ๊ฐ€๋Šฅ) : ํ•ด๋‹น์—ด์˜ ์ตœ๋Œ“๊ฐ’์„ ์ถœ๋ ฅํ•œ๋‹ค.
    select max(a)ย  from test : test์˜ ์—ด์˜ ์ตœ๋Œ“๊ฐ’์„ ์ถœ๋ ฅํ•œ๋‹ค.
    sum ๋‚ด์šฉ์™€ ๋™์ผ
    DISTANT : ์ค‘๋ณต์„ ์ œ๊ฑฐํ•œ๋‹ค
    select distant * from test : ํ…Œ์ŠคํŠธ์˜ ์ค‘๋ณต๊ฐ’์„ ์ œ๊ฑฐํ•˜๊ณ  ์ถœ๋ ฅํ•œ๋‹ค.
    IN(๊ฐ’) : ๊ฐ’์ผ ์ผ์น˜ํ•˜๋Š”๊ฒƒ๋งŒ ์ถœ๋ ฅ
    select * from a IN (1,2,3,4,5) : a์˜ ๊ฐ’์ด 1,2,3,4,5 ์ผ์น˜ํ• ๊ฒฝ์šฐ ์ถœ๋ ฅํ•œ๋‹ค.
    COALESCE(๋ฐ”๊ฟ€ ๊ฐ’) : NULL๊ฐ’์„ ๋ณ€๊ฒฝํ•œ๋‹ค.ย 
    select coalesce(a) from test;

์†์„ฑ(attribute)
NOT NULL : NULL ๊ฐ’์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค
PRIMARY KEY : ๊ธฐ๋ณธํ‚ค๋กœ ์„ค์ •ํ•œ๋‹ค.ย 
๊ธฐ๋ณธํ‚ค๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ NOT NULL๋กœ ํ•ด์•ผํ•œ๋‹ค.
์ค‘๋ณต๋˜์ง€ ์•Š์€ ๊ฐ’์œผ๋กœ ํ•ด์•ผํ•œ๋‹ค
UNIQUE : ์ค‘๋ณต๋˜์ง€ ์•Š์€ ๊ฐ’๋งŒ ํ—ˆ์šฉํ•œ๋‹ค.

Group by
ํŠน์ • ์—ด์„ ๊ธฐ์ค€์œผ๋กœ ์ง‘๊ณ„๋ฅผ ํ•˜๊ณ  ์ž ํ•  ๋•Œ ์‚ฌ์šฉ
ํŠน์ • ์กฐ๊ฑด์„ ์ถฉ์กฑํ•˜๋Š” ๊ฒƒ๋งŒ selectํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด having
select * from test group by a : test ํ…Œ์ด๋ธ”์„ a๋กœ ๊ทธ๋ฃน์„ ๋งŒ๋“ค์–ด ์ถœ๋ ฅํ•œ๋‹ค.
select * from test group by a having a > 5 : a์˜ ๊ฐ’์ด 5๊ฐ€ ๋„˜๋Š” ๊ฒƒ๋“ค๋งŒ ๊ทธ๋ฃนํ™” ํ•˜์—ฌ ์ถœ๋ ฅํ•œ๋‹ค.
๋’ค์— order by ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ •๋ ฌํ•ด์„œ ์ถœ๋ ฅ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

Subquery
SQL์•ˆ์˜ ๋˜ ๋‹ค๋ฅธ SQL์„ ์˜๋ฏธํ•œ๋‹ค.
()๋ฅผ ํ†ตํ•ด์„œ ์„œ๋ธŒ์ฟผ๋ฆฌ๋ฅผ ์„ ์–ธํ•œ๋‹ค
(select ์—ด์ด๋ฆ„ from ํ…Œ์ด๋ธ”๋ช…)
select * from test where a = (select no from test_2) : test a์˜ ๊ฐ’์ด test_2์˜ no์˜ ๊ฐ’์ด ๊ฐ™์„ ๋•Œ๋งŒ ์ถœ๋ ฅํ•œ๋‹ค.
select ๋ฌธ์ด ์•„๋‹Œ update๋‚˜ insert ๋“ฑ ๋‹ค๋ฅธ๋ฐ์—์„œ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•˜๋‹ค
exists๋กœ ์„ ์–ธํ•˜์—ฌ ์„œ๋กœ ๋‹ค๋ฅธํ…Œ์ด๋ธ”์˜ ๊ฐ’์„ ๋น„๊ตํ•œ๋‹ค
select * from test whereย exists (selectย  * from test_2 where aย  = no) : ์„œ๋ธŒ์ฟผ๋ฆฌ ์•ˆ์—์„œ test a์˜ ๊ฐ’๊ณผ test_2์˜ no๊ฐ€ ๊ฐ™์„ ๋•Œ ์ถœ๋ ฅ

์ธ๋ฑ์Šค(INDEX on)
์–ด๋–ค ๋ฐ์ดํ„ฐ๊ฐ€ ์–ด๋””์— ์žˆ๋‹ค๋Š” ์œ„์น˜๋ฅผ ์•Œ๊ณ ์žˆ๋Š” ์ฃผ์†Œ๋ก
์ฃผ์†Œ๋กœ ์ ‘๊ทผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์†๋„๊ฐ€ ๋น ๋ฅด๋‹ค.
create index ์ธ๋ฑ์Šค์ด๋ฆ„ on ํ…Œ์ด๋ธ”๋ช…(์—ด์ด๋ฆ„) : ํ…Œ์ด๋ธ”์˜ ์—ด์ด๋ฆ„์— ๋งž๋Š” ์ธ๋ฑ์Šค๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.
create index test_index on test(a) : testํ…Œ์ด๋ธ”์˜ a๋ฅผ index_test๋กœ ์ง€์ •ํ•œ๋‹ค
show index from ์ธ๋ฑ์Šคํ…Œ์ด๋ธ”๋ช… : ์ธ๋ฑ์Šคํ…Œ์ด๋ธ”์„ ์ถœ๋ ฅํ•œ๋‹ค.
EXPLAIN(possible keys, key) : ์ธ๋ฑ์Šค ํ™•์ธ
ex) explain select * from test_index;
drop index ์ธ๋ฑ์Šค๋ช… on ํ…Œ์ด๋ธ”๋ช… : ํ…Œ์ด๋ธ” ์ค‘์— ์ธ๋ฑ์Šค๋ช…์— ํ•ด๋‹นํ•˜๋Š” ์ธ๋ฑ์Šค๋ฅผ ์‚ญ์ œํ•œ๋‹ค
ex) drop index test_index on testย 

๋ทฐ(VIEW as)
๊ฐ€์ƒํ…Œ์ด๋ธ”์ด๋‹ค.
์‚ฝ์ž…, ์‚ญ์ œ, ๊ฐฑ์‹ , ์—ฐ์‚ฐ์ด ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ์ œ์•ฝ์ด ๋”ฐ๋ฅธ๋‹ค
ALTER VIEW๋กœ ๋ทฐ์˜ ์ •์˜๋ฅผ ๋ณ€๊ฒฝ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.
๊ธฐ์กด์ •์˜๋œ ํ…Œ์ด๋ธ”์ด ์‚ฌ๋ผ์ง€๋ฉด ๋ทฐ๋„ ์‚ฌ๋ผ์ง„๋‹ค.
create view ๋ทฐ์ด๋ฆ„ as select ์—ด์ด๋ฆ„ from ํ…Œ์ด๋ธ”๋ช…ย  : ๋ทฐ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค
ex) create view test_view as select * from testย 
drop view ๋ทฐ์ด๋ฆ„ : ๋ทฐ๋ฅผ ์‚ญ์ œํ•˜๋Š” ๋ช…๋ น์–ด
ex) drop view test_view : test_view๋ฅผ ์‚ญ์ œํ•œ๋‹ค.

์กฐ์ธ(JOIN)
UNION : ํ•ฉ์ง‘ํ•ฉ
select ์—ด์ด๋ฆ„ from ํ…Œ์ด๋ธ”1 union select ์—ด์ด๋ฆ„ from ํ…Œ์ด๋ธ”2 : ํ…Œ์ด๋ธ”1๊ณผ ํ…Œ์ด๋ธ”2๋ฅผ ํ•ฉ์ง‘ํ•ฉํ•œ๋‹ค.
ex) select * from test union select * from test_2ย 
ํ•ฉ์ง‘ํ•ฉ์‹œ ์ค‘๋ณต๋œ ๋ฐ์ดํ„ฐ๋Š” ์ง€์›Œ์ง„๋‹ค.
์ค‘๋ณต ํ—ˆ์šฉ์‹œ union all๋กœ ์ง€์ •ํ•œ๋‹ค.
๋‘ ๊ฐœ์˜ ํ…Œ์ด๋ธ”๋งŒ ๊ฒฐํ•ฉ๋˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ ์—ฌ๋Ÿฌ๊ฐœ์˜ ํ…Œ์ด๋ธ”๋„ ๊ฐ€๋Šฅํ•˜๋‹ค.
ex) select * from test union select * from test_2 union select * from test_3
INTERSECT : ๊ต์ง‘ํ•ฉ(mysql์—์„œ ์ง€์›์•ˆ๋จ)
ex) select ์—ด์ด๋ฆ„ from ํ…Œ์ด๋ธ”๋ช…ย  intersect select ์—ด์ด๋ฆ„ from ํ…Œ์ด๋ธ”๋ช…2
EXCEPT : ์ฐจ์ง‘ํ•ฉย (mysql์—์„œ ์ง€์›์•ˆ๋จ)
ex) select ์—ด์ด๋ฆ„ from ํ…Œ์ด๋ธ”๋ช… EXCEPT select ์—ด์ด๋ฆ„ from ํ…Œ์ด๋ธ”๋ช…2
select * from ํ…Œ์ด๋ธ”1, ํ…Œ์ด๋ธ”2, : ๊ณต์ง‘ํ•ฉ
ex) select * from test,test_2
ํ•ฉ์ง‘ํ•ฉ์€ ๋‘ ๊ฐœ์˜ ํ…Œ์ด๋ธ”์„ ํ•ฉํ•ด์„œ ์ถœ๋ ฅํ•˜์ง€๋งŒ ๊ณต์ง‘ํ•ฉ์€ ํ…Œ์ด๋ธ”Xํ…Œ์ด๋ธ”์„ ํ•˜์—ฌ ์ถœ๋ ฅํ•œ๋‹ค.
INNER JOIN : ๋‘ ๊ฐœ์˜ ํ…Œ์ด๋ธ”์„ ํ•ฉํ•œ๋‹ค.
select ์—ด์ด๋ฆ„ from ํ…Œ์ด๋ธ”๋ช… inner join ํ…Œ์ด๋ธ”๋ช…2 on ๋น„๊ต๊ฐ’
ex) select * from test inner join test_2 on test.a = test_2.noย 
์—ด์ด๋ฆ„์„ ์„ ์–ธ ํ•  ๋•Œ ํ…Œ์ด๋ธ”์˜ ์ด๋ฆ„์ด ์ค‘๋ณต๋˜์ง€ ์•Š์œผ๋ฉด ํ…Œ์ด๋ธ”๋ช…์„ ์ƒ๋žตํ•  ์ˆ˜ ์žˆ๋‹ค.
exย  select * from test inner join test_2 on a = noย 
ํ•ฉํ•  ๋•Œ NULL๊ฐ’์ด ์กด์žฌํ•  ๊ฒฝ์šฐ ํ•ด๋‹น ํ–‰์€ ๋ฌด์‹œํ•˜๊ณ  ๊ฒฐํ•ฉํ•œ๋‹ค.
LEFT JOIN : ๋‘ ๊ฐœ์˜ ํ…Œ์ด๋ธ”์€ ์ขŒ์ธก ํ…Œ์ด๋ธ” ๊ธฐ์ค€์œผ๋กœ ํ•ฉํ•œ๋‹ค.
select ์—ด์ด๋ฆ„ from ํ…Œ์ด๋ธ”๋ช… left join ํ…Œ์ด๋ธ”๋ช…2 on ๋น„๊ต๊ฐ’
ex) select * from test left join test_2 on a = no
NULL๊ฐ’์ด ์žˆ์–ด๋„ ๊ฒฐํ•ฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
RIGHT JOINย  : ๋‘ ๊ฐœ์˜ ํ…Œ์ด๋ธ”์€ ์šฐ์ธก ํ…Œ์ด๋ธ” ๊ธฐ์ค€์œผ๋กœ ํ•ฉํ•œ๋‹ค.
select ์—ด์ด๋ฆ„ from ํ…Œ์ด๋ธ”๋ช… right join ํ…Œ์ด๋ธ”๋ช…2 on ๋น„๊ต๊ฐ’
ex) select * from test left join test_2 on a = no
NULL๊ฐ’์ด ์žˆ์–ด๋„ ๊ฒฐํ•ฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.