Select
[Database] SQL ๋ฐ์ดํฐ ์กฐํํ๊ธฐ(SELECT)
SELECT ๋ฌธ๋ฒ
SELECT attribute(s) FROM table_name(s) WHERE condition(s);attribute(s) : projection attributes
condition(s) : selection_condition
id๊ฐ 9์ธ ์ข ์ฌ์์ ์ด๋ฆ๊ณผ ๋ถ์๋ฅผ ์๊ณ ์ถ์ :
SELECT name, position FROM employee WHERE id = 9;WHERE ์ ์ ํตํด ์ฐพ์ ์กฐ๊ฑด์ ์ค์ ํ ์ ์์ผ๋ฉฐ, WHERE๊ฐ ์๋ค๋ฉด ๋ชจ๋ tuple์ ๊ฒฐ๊ณผ๋ก ๊ฐ์ ธ์ด
๋๊ฐ์ ํ
์ด๋ธ์ ์ฐธ์กฐํ๋ SELECT
SELECT employee.id, employee.name position
FROM project, employee
WHERE project.id = 2002 and project.leader_id = employee.id;project.leader_id = employee.id๋ฅผ join condition์ด๋ผ ํจproject.id = 2002๋ฅผ selection condition์ด๋ผ๊ณ ํจemployee.id, employee.name position๋ฅผ projection attributes๋ผ๊ณ ํจ
AS ์ฌ์ฉํ๊ธฐ
๊ธฐ๋ฅ
ํ ์ด๋ธ์ด๋ attribute์ ๋ณ์นญ(alias)์ ๋ถ์ผ ๋ ์ฌ์ฉ
์๋ต ๊ฐ๋ฅํจ
์ฌ์ฉ
a AB b -> a๋ฅผ b๋ผ๋ ๋ณ์นญ์ผ๋ก ์ฌ์ฉํ๊ฒ ๋ค๋ ์๋ฏธ
table๊ณผ attribute ๋ชจ๋ AS๋ก ๋ณ์นญ ์ง์ ๊ฐ๋ฅ
table :
FROM employee AS E๋ผ๊ณ ์ฐ๋ฉด, ๋ค์WHERE์ ์์E.id๋ก ์ฌ์ฉํ ์ ์์attribute :
SELECT E.id AS leader_id๋ผ๊ณ ์ฐ๋ฉด, ๊ฒฐ๊ณผ๋ฌผ์ดid๋์leader_id๋ผ๊ณ ํ๊ธฐ๋จAS๋ฅผ ์๋ตํ ์ ์์. ์ SQL ๋ฌธ์ ์๋์ฒ๋ผ ์จ๋ ๋์ผํ ๊ฒฐ๊ณผ๊ฐ ๋์ด
DISTINCT ์ฌ์ฉํ๊ธฐ
๊ธฐ๋ฅ
SELECT ๊ฒฐ๊ณผ์์ ์ค๋ณต๋๋ tuples์ ์ ์ธํ๊ณ ์ถ์ ๋ ์ฌ์ฉํจ
SELECT ํค์๋ ๋ค์ ์จ์ค
์์)
LIKE ์ฌ์ฉํ๊ธฐ
๊ธฐ๋ฅ
WHERE ์กฐ๊ฑด์ ์์ ๋ฌธ์์ด pattern matchin์ ์ฌ์ฉ๋จ
reserved character
% : 0๊ฐ ์ด์์ ๊ฐ์๋ฅผ ๊ฐ๋ ๋ฌธ์์ด
_ : ํ๋์ ๋ฌธ์๋ฅผ ์๋ฏธ ๊ธ์ ์๋ฆฌ. ํ ๊ธ์๋น ํ ๊ธ์๋ฅผ ์๋ฏธํจ
escape character
\ : reserved character๋ฅผ ๋ณธ๋ฉด์ ๋ฌธ์๋ก ์ฌ์ฉํ๊ณ ์ถ์ ๋ ์ฌ์ฉ
์ฌ์ฉ ์์
์ด๋ฆ์ด N์ผ๋ก ์์ํ๊ฑฐ๋ N์ผ๋ก ๋๋๋ ์ฌ๋์ ์ฐพ์
์ด๋ฆ์ด NG๊ฐ ํฌํจ๋ ์ฌ๋์ ์ฐพ์
์ด๋ฆ์ด J๋ก ์์ํ๊ณ ์ด 4๊ธ์์ ์ด๋ฆ์ ๊ฐ์ง๋ ์ฌ๋์ ์ฐพ์
escape ๋ฌธ์์ ํจ๊ป LIKE ์ฌ์ฉํ๊ธฐ
%๋ก ์์ํ๊ฑฐ๋ _๋ก ๋๋๋ ํ๋ก์ ํธ ์ด๋ฆ์ ์ฐพ๊ณ ์ถ๋ค๋ฉด?
%์ _ ๊ฐ ํน๋ณ ๊ธฐํธ๋ก ์ฐ์ด๊ณ ์๋๋ฐ, ๋จ์ ๋ฌธ์๋ก ์ฌ์ฉํ๊ณ ์ถ๋ค๋ฉด?
๋ฌธ์ ์์ \๋ฅผ ๋ถ์
asterisk (*) ์ฌ์ฉํ๊ธฐ
๊ธฐ๋ฅ
์ ํ๋ tuples์ ๋ชจ๋ attributes๋ฅผ ๋ณด์ฌ์ฃผ๊ณ ์ถ์ ๋ ์ฌ์ฉํจ
FROM์ table์ ์ฌ๋ฌ๊ฐ ์ค์ ํ์ ๋, ํด๋น ํ ์ด๋ธ์ ๋ชจ๋ attributes๊ฐ ์์ฐจ์ ์ผ๋ก ์ถ๋ ฅ๋จ
์ฌ์ฉ ์์
ID๊ฐ 9์ธ ์์ง์์ ๋ชจ๋ attributes๋ฅผ ์๊ณ ์ถ๋ค
์ฃผ์์ฌํญ
index
SELECT๋ก ์กฐํํ ๋ ์กฐ๊ฑด๋ค์ ํฌํจํด์ ์กฐํํ๋ค๋ฉด, ์กฐ๊ฑด๊ณผ ๊ด๋ จ๋ attribtes์ index๊ฐ ๊ฑธ๋ ค์์ด์ผํจ. ๊ทธ๋ ์ง ์์ผ๋ฉด ๋ฐ์ดํฐ๊ฐ ๋ง์์ง์๋ก ์กฐํ ์๋๊ฐ ๋๋ ค์ง
index์ ๋ํด์๋ ๋ค์์ ๊ธฐ์
์ ๋ด์ฉ์ MySQL ๊ธฐ์ค์ผ๋ก, ๋ค๋ฅธ RDBMS์ SQL๋ฌธ๋ฒ๊ณผ๋ ๋ค๋ฆ
SELECT์ ๊ด๋ จํด์๋ ์ด ์ธ์๋ ๋ค์ํ ์กฐํ ๊ธฐ๋ฅ๋ค๊ณผ ์ธ๋ถ ์ฌํญ์ด ์์
์ฐธ๊ณ
Last updated