SELECT ๋ฌธ์ ๊ธฐ์ด ๋ฌธ๋ฒ์ ์์๋ณด์~! SELECT ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์๋์ ๊ฐ์ ๊ตฌ์กฐ์ด๋ค. ํ ์ด๋ธ์์ ์ฐพ๊ณ ์ํ๋ ์ด์ ์ถ๋ ค์ ๋ณด์ฌ์ค๋ค.
SELECT ์ด์ด๋ฆ FROM ํ ์ด๋ธ์ด๋ฆ;
์ ์ํ์์ ์ถ๊ฐ์ ์ผ๋ก ์ด์ ๋ง๋ถ์ด๋ฉด ๋ค์ํ๊ฒ ์ฌ์ฉํ ์ ์๋ค.
โถ WHERE
SELECT ์ด์ด๋ฆ FROM ํ
์ด๋ธ์ด๋ฆ WHERE ์กฐ๊ฑด;
SELECT * FROM userTable WHERE name='ํค๋ฆฝ';
์์ฒ๋ผ WHERE ๋ค์ ์กฐ๊ฑด์ ๋ถ์ด๋ฉด ์ํ๋ ํ๋ง ๋ณผ ์ ์๋ค. ์๋ userTable์ด๋ผ๋ ํ ์ด๋ธ์์ name์ด์ด 'ํค๋ฆฝ'์ธ ํ์ ๋ชจ๋ ์ด์ ๊ฒ์ํ๋ ๊ฒ์ด๋ค. WHERE ๋ค์ ์ค๋ ์กฐ๊ฑด์์ ํํ๋ ๋ค์ํ๋ค.
SELECT name, addr FROM userTable WHERE birthYear >= 1990 AND birthYear <=2000 ;
<, >, = ๊ณผ ๊ฐ์ ์ฐ์ฐ์๋ ์ฌ์ฉํ ์ ์๊ณ ์กฐ๊ฑด๋ฌธ์ด ์ฌ๋ฌ๊ฐ๋ผ๋ฉด AND/OR๋ก ์ด์ด์ค ์ ์๋ค. ๊ทธ๋ฆฌ๊ณ ์์ ๋ช ๋ น์ด๋ ์๋์ฒ๋ผ ๋ฐ๊ฟ ์ ์๋ค.
SELECT name, addr FROM userTable WHERE birthYear BETWEEN 1990 AND 2000 ;
BETWEEN .. AND์ ๋ป ๊ทธ๋๋ ์ฌ์ด๊ฐ์ ๋ํ๋ธ๋ค. ๊ทธ๋์ ๋น์ฐํ BETWEEN .. AND๋ ์ฐ์๋ ์ซ์๋ง ์ฌ ์ ์๋ค. BETWEEN '์์ธ' AND '๋ถ์ฐ' ๊ฐ์๊ฑด ์๋๋ค.
SELECT name, addr FROM userTable WHERE addr IN ('์ ์ฃผ', '์์ธ', '๊ด์ฃผ');
์์ SQL๋ฌธ์ WHERE addr='์ ์ฃผ' OR addr='์์ธ' OR addr='๊ด์ฃผ' ์ ๊ฐ์ ์๋ฏธ์ด๋ค. addr์ด IN์์ ๋ฌธ์์ธ ํ์ name, addr์ด์ ๊ฒ์ํ ๊ฒ์ด๋ค.
SELECT name, addr FROM userTable WHERE name LIKE '๋ฐ*';
๋ฌธ์์ด์ ์ผ๋ถ๋ฅผ ๊ฒ์ํ๊ณ ์ถ์ ๋๋ ์์ฒ๋ผ LIKE๋ฅผ ์ฌ์ฉํ๋ฉด๋๋ค. ์๋ ๋ฌธ์์ด์ ๋งจ ์ ๊ธ์๊ฐ '๋ฐ'์ธ ํ์ ์ฐพ๋ ๊ฒ์ด๋ค. ํ ๊ธ์๋ง ๋งค์นํ ์๋์๋ค. '_ํค๋ฆฝ'์ผ๋ก ํ๋ฉด ๋งจ ์ ํ ๊ธ์ ๋ค์์ด 'ํค๋ฆฝ'์ธ ํ์ ์ฐพ๋๋ค.
โถ ์๋ธ์ฟผ๋ฆฌ - ANY/SOME, ALL
SELECT ์ด์ด๋ฆ FROM ํ
์ด๋ธ์ด๋ฆ WHERE ์กฐ๊ฑด ๊ด๊ณ์ฐ์ฐ์ (SELECT ์ด์ด๋ฆ FROM ํ
์ด๋ธ์ด๋ฆ WHERE ์กฐ๊ฑด) ;
์๋ธ์ฟผ๋ฆฌ๋ ์์์ ()์์ ์๋ ๊ฒ์ ์๋ธ์ฟผ๋ฆฌ๋ผ๊ณ ํ๋ค. ๋ณต์กํด๋ณด์ด์ง๋ง ๊ฐ๋จํ๋ค. ( )์์ ๋ฐํ๋ ๊ฐ์๋ฐ๋ฅธ ์กฐ๊ฑด์ ๋ง๋ ํ์ ์ฐพ๋ ๊ฒ์ด๋ค. ์์๋ฅผ ๋ณด๋ฉด ๋น ๋ฅด๊ฒ ์ดํดํ ์ ์๋ค.
SELECT * FROM userTable WHERE birthYear > (SELECT birthYear FROM userTabel WHERE name='์ฅ๋ฒ๊ฝ');
์์ SQL๋ฌธ์์ ( )๋ userTable์์ name์ด์ด '์ฅ๋ฒ๊ฝ'์ธ ํ์ birthYear์ ์ถ๋ ฅํ ๊ฒ์ด๋ค. ์ฅ๋ฒ๊ฝ์ birthYear๊ฐ 2018์ผ ๋, ๊ฒฐ๊ตญ ์์ SQL๋ฌธ์ SELECT * FROM userTable WHERE birthYear > 2018๊ณผ ๊ฐ์์ง๋ ๊ฒ์ด๋ค.
์์ฒ๋ผ Error Code 1242๊ฐ ์ถ๋ ฅ๋ ๊ฒ์ด๋ค. ๋ง๊ทธ๋๋ก ์๋ธ์ฟผ๋ฆฌ๊ฐ ๋ ๊ฐ์ด์์ ํ์ ๋ฐํํ๋ค๋ ๊ฒ์ด๋ค. ์ฌ๊ธฐ์ ANY๋ฅผ ์จ๋ณด์!
SELECT * FROM userTable WHERE birthYear > ANY (SELECT birthYear FROM userTabel WHERE name='์ฅ๋ฒ๊ฝ');
์ด๋ ๊ฒ ๋๋ฉด birthYear๊ฐ 2018๋ณด๋ค ํฌ๊ฑฐ๋ 2017๋ณด๋ค ํฐ ํ์ด ์ถ๋ ฅ๋๋ค. ๊ฒฐ๊ตญ 2017๋ณด๋ค ํฐ ํ์ด ์ถ๋ ฅ๋๋ ๊ฒ์ด๋ค. ANY๋ฅผ ALL๋ก ๋ฐ๊ฟ์ค๋ค๋ฉด, birthYear๊ฐ 2018๋ณด๋ค ํฌ๊ณ 2017๋ณด๋ค ํฐ ํ์ด ์ถ๋ ฅ๋๋ค. ๊ฒฐ๊ตญ birthYear๊ฐ 2018๋ณด๋ค ํฐ ํ์ด ์ถ๋ ฅ๋๋ ๊ฒ์ด๋ค. ANY๋ OR์ฐ์ฐ์, ALL์ AND์ฐ์ฐ์์ ๋น์ทํ๋ค๊ณ ์๊ฐํ๋ฉด ํธํ๋ค!
โถORDER BY
SELECT ์ด์ด๋ฆ FROM ํ ์ด๋ธ์ด๋ฆ ORDER BY ์ด์ด๋ฆ;
ORDER BY๋ ์ถ๋ ฅ ์์๋ฅผ ์ ํด์ฃผ๋ ๊ฒ์ด๋ค. ORDER BY ๋ค์์ค๋ ์ด ์ด๋ฆ์ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์์ ์ถ๋ ฅํ๋ค. ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ถ๋ ฅํ๊ณ ์ถ๋ค๋ฉด ๋งจ ๋ค์ DESC๋ฅผ ๋ง๋ถ์ธ๋ค. ์ค๋ฆ์ฐจ์์ ASC์ด๋ค.
SELECT * FROM userTable ORDER BY name DESC;
์ SQL์ userTable์ ๋ชจ๋ ์ด์ name์ ๊ธฐ์ค์ผ๋ก ๋ด๋ฆผ์ฐจ์ํ๋ ๊ฒ์ด๋ค.
SELECT * FROM userTable ORDER BY name DESC, birthYear ASC;
๊ธฐ์ค์ ์ฌ๋ฌ๊ฐ๋ก ํ๊ณ ์ถ์ ๋๋ , ๋ก ์ด์ด์ฃผ๋ฉด๋๋ค. ์๋ name์ผ๋ก ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌํ๋ ์ด๋ฆ์ด ๊ฐ์ ๊ฒฝ์ฐ birthYear๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌํ๋ค๋ ๊ฒ์ด๋ค. ์ฐธ๊ณ ๋ก ORDER BY์ ์ ๋งจ ๋ค์ ๋์์ผํจ์ ์์ง ๋ง์!!
โถDISTINCT
์ค๋ณต์ ์ ์ธํ ํ์ ์ถ๋ ฅํ๋ค.
SELECT DISTINCT ์ด์ด๋ฆ FROM ํ
์ด๋ธ์ด๋ฆ;
โถLIMIT
SELECT ์ด์ด๋ฆ FROM ํ
์ด๋ธ์ด๋ฆ LIMIT (์์์ ,) ๊ฐ์;
์ถ๋ ฅํ ํ์ ๊ฐ์๋ฅผ ์ ํ ์ ์๋ค.
SELECT * FROM userTable ORDER BY score DESC LIMIT 5;
๋ง์ฝ, userTable์์ score๊ฐ ๊ฐ์ฅ ๋์ ์์ 5๊ฐ์ ํ์ ์ถ๋ ฅํ๊ณ ์ถ๋ค๋ฉด ์์ ๊ฐ์ด ์ฌ์ฉํ ์ ์๋ค.
SELECT * FROM userTable ORDER BY score DESC LIMIT 3, 5;
๊ฐ์๋ฅผ ์ ์์์ ์ ์ ํ ์๋ ์๋ค. score๊ฐ ๊ฐ์ฅ ๋์ ์์ 3๋ฒ์งธ๋ถํฐ 5๊ฐ์ ํ์ ์ถ๋ ฅํ๊ณ ์ถ์ ๋ ์์ฒ๋ผ ์ฌ์ฉํ๋ค.
โถCREATE TABLE ... SELECT
CREATE TABLE ์๋ก์ดํ
์ด๋ธ์ด๋ฆ (SELECT ๋ณต์ฌํ ์ด์ด๋ฆ FROM ๊ธฐ์กดํ
์ด๋ธ์ด๋ฆ;
ํ ์ด๋ธ์ ์ํ๋ ์ด์ ๋ณต์ฌํด์ ์๋ก์ด ํ ์ด๋ธ์ ๋ง๋ค ์๋ ์๋ค!
CREATE TABLE userTable2 (SELECT name, score FROM userTable);
์๋ userTable์์ name, score ์ด์ userTable2๋ฅผ ๋ง๋ค์ด ๋ณต์ฌํ๋ ๊ฒ์ด๋ค.
'IT > MySQL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
MySQL ๋์ SQL (1) | 2018.08.21 |
---|---|
MySQL ์ค๋ฅ ์ฒ๋ฆฌ(์กฐ๊ฑด ํธ๋ค๋ฌ) (1) | 2018.08.21 |
MySQL max_allowed_packet (1) | 2018.08.15 |
MySQL ASCII(์์คํค ์ฝ๋) BLOB๋ก ๋ณด์ผ ๋ (1) | 2018.08.15 |
MySQL ๋ฐ์ดํฐ ํ ๋ณํ (0) | 2018.08.14 |
DB ์ด๋ฆ, ํ ์ด๋ธ ์ด๋ฆ, ํ๋ ์ด๋ฆ ์กฐํํ๊ธฐ (0) | 2018.08.12 |
MySQL ์ฌ์ฉ์ ๊ด๋ฆฌํ๊ธฐ (0) | 2018.08.10 |
MySQL Data ๊ฒฝ๋ก ๋ณ๊ฒฝ (0) | 2018.08.05 |