DB

MySql : ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค SQL ๊ณ ๋“์  Kit ๋‹ต

PYT 2020. 7. 29. 01:25
๋ฐ˜์‘ํ˜•

(์ถœ์ฒ˜ :https://programmers.co.kr/design/logo)


SELECT

๋ชจ๋“  ๋ ˆ์ฝ”๋“œ ์กฐํšŒํ•˜๊ธฐ

SELECT * FROM ANIMAL_INS
cs

์—ญ์ˆœ ์ •๋ ฌํ•˜๊ธฐ

SELECT NAME, DATETIME FROM ANIMAL_INS ORDER BY ANIMAL_ID DESC
cs

์•„ํ”ˆ ๋™๋ฌผ ์ฐพ๊ธฐ

SELECT NAME, DATETIME FROM ANIMAL_INS ORDER BY ANIMAL_ID DESCSELECT ANIMAL_ID, NAME 
FROM ANIMAL_INS 
WHERE INTAKE_CONDITION='Sick'
ORDER BY ANIMAL_ID
cs

์–ด๋ฆฐ ๋™๋ฌผ ์ฐพ๊ธฐ

SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
WHERE INTAKE_CONDITION <> 'Aged'
ORDER BY ANIMAL_ID
cs

๋™๋ฌผ์˜ ์•„์ด๋””์™€ ์ด๋ฆ„

SELECT ANIMAL_ID, NAME FROM ANIMAL_INS
ORDER BY ANIMAL_ID
cs

์—ฌ๋Ÿฌ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌํ•˜๊ธฐ

SELECT ANIMAL_ID, NAME, DATETIME
FROM ANIMAL_INS
ORDER BY NAME, DATETIME DESC
cs

์ƒ์œ„ n๊ฐœ ๋ ˆ์ฝ”๋“œ

SELECT NAME
FROM ANIMAL_INS
ORDER BY DATETIME
LIMIT 1
cs

SUM, MAX, MIN

 

์ตœ๋Œ“๊ฐ’ ๊ตฌํ•˜๊ธฐ

SELECT DATETIME
FROM ANIMAL_INS 
ORDER BY DATETIME DESC
LIMIT 1
cs

์ตœ์†Ÿ๊ฐ’ ๊ตฌํ•˜๊ธฐ

SELECT DATETIME
FROM ANIMAL_INS
ORDER BY DATETIME
LIMIT 1
cs

๋™๋ฌผ ์ˆ˜ ๊ตฌํ•˜๊ธฐ

SELECT COUNT(ANIMAL_ID)
FROM ANIMAL_INS
cs

์ค‘๋ณต ์ œ๊ฑฐํ•˜๊ธฐ

SELECT COUNT(DISTINCT NAME)
FROM ANIMAL_INS
WHERE NAME IS NOT NULL
cs

GROUP BY

 

๊ณ ์–‘์ด์™€ ๊ฐœ๋Š” ๋ช‡ ๋งˆ๋ฆฌ ์žˆ์„๊นŒ

SELECT ANIMAL_TYPE, COUNT(ANIMAL_TYPE)
FROM ANIMAL_INS
GROUP by ANIMAL_TYPE
order by ANIMAL_TYPE
cs

๋™๋ช… ๋™๋ฌผ ์ˆ˜ ์ฐพ๊ธฐ

SELECT NAME, COUNT(NAME) AS COUNT
FROM ANIMAL_INS
GROUP by NAME
HAVING COUNT(NAME) > 1
ORDER BY NAME
cs

์ž…์–‘ ์‹œ๊ฐ ๊ตฌํ•˜๊ธฐ(1)

SELECT HOUR(DATETIME)AS HOUR, COUNT(DATETIME)AS COUNT
FROM ANIMAL_OUTS
WHERE HOUR(DATETIME) BETWEEN 9 AND 19
GROUP BY HOUR
ORDER BY HOUR
cs

์ž…์–‘ ์‹œ๊ฐ ๊ตฌํ•˜๊ธฐ(2)

SET @HOUR := -1;
 
SELECT (@HOUR := @HOUR + 1) AS HOUR,
(SELECT COUNT(*FROM ANIMAL_OUTS WHERE HOUR(DATETIME)=@HOUR)AS COUNT
FROM ANIMAL_OUTS
WHERE @HOUR < 23
cs

IS NULL

 

์ด๋ฆ„์ด ์—†๋Š” ๋™๋ฌผ์˜ ์•„์ด๋””

SELECT ANIMAL_ID
FROM ANIMAL_INS
WHERE NAME IS NULL
cs

์ด๋ฆ„์ด ์žˆ๋Š” ๋™๋ฌผ์˜ ์•„์ด๋””

SELECT ANIMAL_ID
FROM ANIMAL_INS
WHERE NAME IS NOT NULL
ORDER BY ANIMAL_ID
cs

NULL ์ฒ˜๋ฆฌํ•˜๊ธฐ

SELECT ANIMAL_TYPE, IFNULL(NAME,'No name')as NAME, SEX_UPON_INTAKE
FROM ANIMAL_INS
ORDER BY ANIMAL_ID
cs

JOIN

 

์—†์–ด์ง„ ๊ธฐ๋ก ์ฐพ๊ธฐ

SELECT A.ANIMAL_ID, A.NAME
FROM ANIMAL_OUTS A
LEFT OUTER JOIN ANIMAL_INS B ON A.ANIMAL_ID = B.ANIMAL_ID
WHERE B.ANIMAL_ID IS NULL
cs

์žˆ์—ˆ๋Š”๋ฐ์š” ์—†์—ˆ์Šต๋‹ˆ๋‹ค

SELECT A.ANIMAL_ID, A.NAME
FROM ANIMAL_INS A
LEFT OUTER JOIN ANIMAL_OUTS B ON A.ANIMAL_ID = B.ANIMAL_ID
WHERE A.DATETIME > B.DATETIME
ORDER BY A.DATETIME
cs

์˜ค๋žœ ๊ธฐ๊ฐ„ ๋ณดํ˜ธํ•œ ๋™๋ฌผ(1)

SELECT A.NAME, A.DATETIME
FROM ANIMAL_INS A
LEFT OUTER JOIN ANIMAL_OUTS B ON A.ANIMAL_ID = B.ANIMAL_ID
WHERE B.DATETIME IS NULL
ORDER BY DATETIME LIMIT 3
cs

๋ณดํ˜ธ์†Œ์—์„œ ์ค‘์„ฑํ™”ํ•œ ๋™๋ฌผ

SELECT A.ANIMAL_ID,A.ANIMAL_TYPE,A.NAME
FROM ANIMAL_INS A
RIGHT OUTER JOIN ANIMAL_OUTS B ON A.ANIMAL_ID = B.ANIMAL_ID
WHERE A.SEX_UPON_INTAKE LIKE '%Intact%' AND B.SEX_UPON_OUTCOME NOT LIKE '%Intact%'
ORDER BY B.ANIMAL_ID
cs

String, Date

 

๋ฃจ์‹œ์™€ ์—˜๋ผ ์ฐพ๊ธฐ

SELECT ANIMAL_ID, NAME, SEX_UPON_INTAKE
FROM ANIMAL_INS
WHERE NAME IN('Lucy','Ella','Pickle','Rlgan','Sabrina','Mitty')
ORDER BY ANIMAL_ID
cs

์ด๋ฆ„์— el์ด ๋“ค์–ด๊ฐ€๋Š” ๋™๋ฌผ ์ฐพ๊ธฐ

SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
WHERE NAME LIKE '%el%' AND ANIMAL_TYPE = 'dog'
ORDER BY NAME
cs

 

์ค‘์„ฑํ™” ์—ฌ๋ถ€ ํŒŒ์•…ํ•˜๊ธฐ

SELECT ANIMAL_ID, NAME,
CASE SEX_UPON_INTAKE
 WHEN 'Intact Male' THEN 'X'
 WHEN 'Intact Female' THEN 'X'
 ELSE 'O'
END AS ์ค‘์„ฑํ™”
FROM ANIMAL_INS
ORDER BY ANIMAL_ID
cs

 

์˜ค๋žœ ๊ธฐ๊ฐ„ ๋ณดํ˜ธํ•œ ๋™๋ฌผ(2)

SELECT A.ANIMAL_ID, A.NAME
FROM ANIMAL_INS A INNER JOIN ANIMAL_OUTS B ON A.ANIMAL_ID = B.ANIMAL_ID
ORDER BY DATEDIFF(B.DATETIME, A.DATETIME) DESC LIMIT 2
cs

DATETIME์—์„œ DATE๋กœ ํ˜• ๋ณ€ํ™˜

SELECT ANIMAL_ID, NAME, DATE_FORMAT(DATETIME'%Y-%m-%d') AS ๋‚ ์งœ
FROM ANIMAL_INS
ORDER BY ANIMAL_ID
cs

 

๋ฐ˜์‘ํ˜•