Super Kawaii Cute Cat Kaoani
๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

SQL

[SQL] SELECT๋ฌธ ์˜ต์…˜ ์ •๋ฆฌ

728x90

SQL - SELECT๋ฌธ


โœ๏ธ SELECT 

SQL์—์„œ SELECT๋ฌธ์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๋ช…๋ น์–ด


โœ๏ธ ๊ธฐ๋ณธ ๊ตฌ์กฐ 

SELECT [์—ด ์ด๋ฆ„]
FROM [ํ…Œ์ด๋ธ” ์ด๋ฆ„]
WHERE [์กฐ๊ฑด];

๐Ÿ“Ž WHERE 

WHERE์ ˆ์€ ํŠน์ • ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ํ–‰(row)๋งŒ์„ ๊ฒ€์ƒ‰

 

- userid๊ฐ€ bbk์ธ ํ–‰ ๊ฒ€์ƒ‰

SELECT * FROM usertbl WHERE userid='bbk';

 

 

๐Ÿ“Ž ๊ด€๊ณ„ ์—ฐ์‚ฐ์ž

AND, OR ๋“ฑ์˜ ๊ด€๊ณ„ ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์กฐ๊ฑด ์ง€์ •

 

- birthyear์ด 1970 ์ดํ›„์ด๊ณ , ํ‚ค๊ฐ€ 182 ์ด์ƒ์ธ ํ–‰ ์ถœ๋ ฅ

SELECT * FROM usertbl WHERE birthyear >= 1970 AND height >= 182;

 

 

๐Ÿ“Ž  BETWEEN ... AND ...

๋ฒ”์œ„๋ฅผ ์ง€์ •ํ•˜์—ฌ ๋ฐ์ดํ„ฐ ๊ฒ€์ƒ‰ ๊ฐ€๋Šฅ

 

- ํ‚ค 180 ~ 183

SELECT name, height FROM usertbl WHERE height BETWEEN 180 AND 183;

 

 

๐Ÿ“Ž  IN
๋ฆฌ์ŠคํŠธ ํ˜•์‹์œผ๋กœ ์—ฌ๋Ÿฌ ๊ฐ’์„ ์ง€์ •ํ•˜์—ฌ ๋ฐ์ดํ„ฐ ๊ฒ€์ƒ‰

 

- ๊ฒฝ๋‚จ, ์ „๋‚จ, ๊ฒฝ๋ถ ์ค‘ ๊ณ ํ–ฅ์ด ์ผ์น˜ํ•˜๋Š” ํ–‰

SELECT name, height FROM usertbl WHERE addr IN ('๊ฒฝ๋‚จ','์ „๋‚จ','๊ฒฝ๋ถ');

 

 

๐Ÿ“Ž  %(LIKE)

ํŠน์ • ํŒจํ„ด๊ณผ ์ผ์น˜ํ•˜๋Š” ๋ฐ์ดํ„ฐ ๊ฒ€์ƒ‰

 

- ์ด๋ฆ„์ด ๊น€์œผ๋กœ ์‹œ์ž‘ํ•˜๋Š”

SELECT name, height FROM usertbl WHERE name LIKE '๊น€%';

 

 

๐Ÿ“Ž  ์„œ๋ธŒ์ฟผ๋ฆฌ

์ฟผ๋ฆฌ ๋ฌธ ์•ˆ์— ๋˜ ๋‹ค๋ฅธ ์ฟผ๋ฆฌ๋ฌธ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ ๊ฒ€์ƒ‰

 

- ๊น€๊ฒฝํ˜ธ๋ณด๋‹ค ํ‚ค๊ฐ€ ํฐ ์‚ฌ๋žŒ

SELECT name, height FROM usertbl 
WHERE height >= (SELECT height FROM usertbl WHERE name='๊น€๊ฒฝํ˜ธ');

 

 

๐Ÿ“Ž  ANY

์กฐ๊ฑด์ด ํ•˜๋‚˜๋ผ๋„ ์ผ์น˜ํ•˜๋Š” ๋ฐ์ดํ„ฐ ๊ฒ€์ƒ‰

 

- ๊ฒฝ๋‚จ์ด ๊ณ ํ–ฅ์ธ ์‚ฌ๋žŒ ์ค‘ ํ•œ ๋ช…์˜ ํ‚ค๋ณด๋‹ค ํฐ ์‚ฌ๋žŒ

SELECT name, height FROM usertbl 
WHERE height >= ANY (SELECT height FROM usertbl WHERE addr='๊ฒฝ๋‚จ');

 

๐Ÿ“Ž  ALL
๋ชจ๋“  ์กฐ๊ฑด์ด ์ผ์น˜ํ•˜๋Š” ๋ฐ์ดํ„ฐ ๊ฒ€์ƒ‰

 

- ๊ฒฝ๋‚จ์ด ๊ณ ํ–ฅ์ธ ์‚ฌ๋žŒ๋“ค ๋ชจ๋‘๋ณด๋‹ค ํ‚ค๊ฐ€ ํฐ ์‚ฌ๋žŒ

SELECT name, height FROM usertbl 
WHERE height >= ALL (SELECT height FROM usertbl WHERE addr='๊ฒฝ๋‚จ');

 

๐Ÿ“Ž  ORDER BY

๊ฒฐ๊ณผ ์ •๋ ฌํ•˜์—ฌ ์ถœ๋ ฅ

 

์˜ค๋ฆ„์ฐจ์ˆœ (ASC)

mdate ๊ธฐ์ค€ ์˜ค๋ฆ„์ฐจ์ˆœ

SELECT name, mdate FROM usertbl ORDER BY mdate;

 

๋‚ด๋ฆผ์ฐจ์ˆœ (DESC)

mdate ๊ธฐ์ค€ ๋‚ด๋ฆผ์ฐจ์ˆœ

SELECT name, mdate FROM usertbl ORDER BY mdate DESC;

 

 

๐Ÿ“Ž  DINSTINCT

์ค‘๋ณต๋œ ๊ฐ’ ์ œ๊ฑฐํ•˜์—ฌ ์ถœ๋ ฅ

 

- addr ์ค‘๋ณต ๊ฐ’์€ ํ•˜๋‚˜๋กœ ์ฒ˜๋ฆฌ

SELECT DISTINCT addr FROM usertbl;

 

 

๐Ÿ“Ž  LIMIT

๊ฒฐ๊ณผ์˜ ๊ฐœ์ˆ˜ ์ œํ•œํ•˜์—ฌ ์ถœ๋ ฅ

 

- ํ‚ค ํฐ ์‚ฌ๋žŒ top5

SELECT name, height FROM usertbl ORDER BY height DESC LIMIT 5;

 

 

๐Ÿ“Ž  CREATE TABLE ... SELECT

๊ธฐ์กด ํ…Œ์ด๋ธ” ๊ธฐ๋ฐ˜์œผ๋กœ ์ƒˆ๋กœ์šด ํ…Œ์ด๋ธ” ์ƒ์„ฑ

 

- buytbl๊ณผ ๋‚ด์šฉ์ด ๋˜‘๊ฐ™์€ ํ…Œ์ด๋ธ” ์ƒ์„ฑ

CREATE TABLE buytbl2 (SELECT * FROM buytbl);

 

 

๐Ÿ“Ž  VIEW ๋งŒ๋“ค๊ธฐ

ํŠน์ • ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฐ€์ƒ ํ…Œ์ด๋ธ” ์ƒ์„ฑ

 

- ํ‚ค๊ฐ€ ํฐ 3๋ช…์„ ๋ทฐ ํ…Œ์ด๋ธ”์— ์ €์žฅ

CREATE VIEW v_memberh AS SELECT * FROM usertbl ORDER BY height DESC LIMIT 3;

 

- ํ‚ค ๋ณ€๊ฒฝ ํ›„ ๊ฐ’ ํ™•์ธ (์กฐ์šฉํ•„ ํ‚ค๋ฅผ 195๋กœ ๋ณ€๊ฒฝ ํ›„ ๋ทฐ ํ…Œ์ด๋ธ”์—๋„ ์ ์šฉ๋จ.)

 

๐Ÿ“Ž  GROUP BY

๋ฐ์ดํ„ฐ ๊ทธ๋ฃนํ™”ํ•˜์—ฌ ์ง‘๊ณ„ํ•จ์ˆ˜ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

 

- userid๋กœ ๊ทธ๋ฃน ์ง€์–ด amount์˜ ํ•ฉ ํ™•์ธ

SELECT userid, SUM(amount) FROM buytbl GROUP BY userid;

 

๐Ÿ“Ž  AS

์ปฌ๋Ÿผ์ด๋‚˜ ํ…Œ์ด๋ธ”์— ๋ณ„์นญ ์ง€์ •ํ•˜์—ฌ ๊ฐ€๋…์„ฑ ๋†’์ž„

 

- ์ด ๊ตฌ๋งค ๊ฐœ์ˆ˜

SELECT userid AS '์‚ฌ์šฉ์ž ์•„์ด๋””', SUM(amount) AS '์ด ๊ตฌ๋งค ๊ฐœ์ˆ˜' FROM buytbl GROUP BY userid;

 

 

- ์ด ๊ตฌ๋งค ์•ก

 

๐Ÿ“Ž  ์ง‘๊ณ„ํ•จ์ˆ˜ - COUNT

ํŠน์ • ์—ด์˜ ๋ฐ์ดํ„ฐ ํ•จ์ˆ˜ ์„ธ๊ธฐ

 

- ์ง€์—ญ๋งˆ๋‹ค์˜ ์‚ฌ๋žŒ ์ˆ˜ ์ถœ๋ ฅ

SELECT addr AS '์ง€์—ญ ๋ช…', COUNT(addr) AS '์‚ฌ๋žŒ ์ˆ˜' FROM usertbl GROUP BY addr ORDER BY COUNT(addr) DESC;

 

 

๐Ÿ“Ž  HAVING

GROUP BY์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜์—ฌ ๊ทธ๋ฃน ์กฐ๊ฑด ์ง€์ •

 

- ์ด ๊ตฌ๋งค์•ก 1000 ๋„˜๋Š” ์‚ฌ์šฉ์ž ์ถœ๋ ฅ

SELECT userid AS '์‚ฌ์šฉ์ž', SUM(price*amount) AS '์ด ๊ตฌ๋งค์•ก' FROM buytbl GROUP BY userid HAVING SUM(price*amount) > 1000;

 

 

 

728x90