ํฐ์คํ ๋ฆฌ ๋ทฐ
ํ๋ก๊ทธ๋๋จธ์ค: SQL - String, Date
dirmathfl 2020. 10. 28. 18:54๋ฌธ์
๋ฌธ์ ํ์ด
๋ฌธ์ ์์๋ ํน์ ์กฐ๊ฑด์ด ์ผ์นํ๋์ง ํ์ธํ์ฌ ๋ง์กฑํ๋ ๊ฐ๋ค๋ง ๋ฐํํ๋ ๋ฌธ์ ๊ฐ ๋์จ๋ค. ์ด๋ฅผ ์ํด ํ๋ ๊ฐ์ ํ์ธํ์ฌ์ผ ํ๋ค. ํ๋์ ๊ฐ๋ค์ ํ์ธํ๊ธฐ ์ํด์๋ `IN`, `LIKE`์ `REGEXP`๋ฅผ ํ์ฉํ๋ฉด ์ํ๋ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ์ ธ์ฌ ์ ์๋ค.
์ฝ๋
๋ฃจ์์ ์๋ผ ์ฐพ๊ธฐ
SELECT ANIMAL_ID, NAME, SEX_UPON_INTAKE
FROM ANIMAL_INS
WHERE NAME IN ('Lucy', 'Ella', 'Pickle', 'Rogan', 'Sabrina', 'Mitty')
`Python`์ `in` ์ฐ์ฐ๊ณผ ๋์ผํ ๊ธฐ๋ฅ์ ํ๋ `IN`์ ํ์ฉํ์ฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ค.
์ด๋ฆ์ el์ด ๋ค์ด๊ฐ๋ ๋๋ฌผ ์ฐพ๊ธฐ
SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
WHERE NAME LIKE '%EL%' AND ANIMAL_TYPE = 'Dog'
ORDER BY NAME
`%EL%`๋ฅผ ์ ๋ ฅํ๋ฉด, EL์ ์ ๋ค๋ก ์ด๋ค ๋ฌธ์๊ฐ ์๋ ๋๋ฏ๋ก, el์ด ๋ค์ด๊ฐ๋ ๋๋ฌผ์ ์ฐพ์ ์ ์๋ค.
์ค์ฑํ ์ฌ๋ถ ํ์ ํ๊ธฐ
SELECT
ANIMAL_ID, NAME,
IF (SEX_UPON_INTAKE REGEXP 'Neutered|Spayed', 'O', 'X') AS ์ค์ฑํ
FROM ANIMAL_INS
์ค์ฑํ๊ฐ ๋๋ฉด, ๋ ๊ฐ์ง๋ก ํ๋ ๊ฐ์ด ๋ฌ๋ผ์ง๊ฒ ๋๋ฏ๋ก `REGEXP`๋ฅผ ์ฌ์ฉํ์ฌ ์กฐ๊ฑด์ ๊ฒ์ํ๋ฉด ์ํ๋ ๋ต์ ์ฐพ์ ์ ์๋ค.
์ค๋ ๊ธฐ๊ฐ ๋ณดํธํ ๋๋ฌผ(2)
SELECT OUTS.ANIMAL_ID, OUTS.NAME
FROM ANIMAL_INS INS
RIGHT JOIN ANIMAL_OUTS OUTS
ON OUTS.ANIMAL_ID = INS.ANIMAL_ID
WHERE INS.ANIMAL_ID IS NOT NULL
ORDER BY INS.DATETIME - OUTS.DATETIME
LIMIT 2
์์ ๋ค๋ฃฌ ์ค๋ ๊ธฐ๊ฐ ๋ณดํธํ ๋๋ฌผ(1)๊ณผ ์ ์ฌํ์ง๋ง, ์ ์์ ๊ฐ ๋๋ฌผ ์ค ๊ฐ์ฅ ๋ณดํธ๊ธฐ๊ฐ์ด ๊ธด ๋๋ฌผ์ด๋ผ๋ ์กฐ๊ฑด์ด ๋ค๋ฅด๋ค. ์ด๋ฅผ ์ํด `ORDER BY INS.DATETIME - OUTS.DATETIME`์ ํตํด ์ ๋ ฌํด์ฃผ๋ฉด ๋๋ค.
DATETIME์์ DATE๋ก ํ ๋ณํ
SELECT ANIMAL_ID, NAME, DATE_FORMAT(DATETIME, '%Y-%m-%d') AS ๋ ์ง
FROM ANIMAL_INS
`DATA_FORMAT`์ ํตํด ํ๋์ ์๊ฐ ๊ฐ์ ๋ณ๊ฒฝํ ์ ์๋ค. (%Y, %y, %M, %m, %D, %d)๋ ๊ฐ๊ธฐ ๋ค๋ฅธ ๊ฐ์ ๋ํ๋ธ๋ค.
'๐จโ๐ป ์ฝ๋ฉํ ์คํธ > ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค: ๊ฑฐ์ค๋ฆ๋ (0) | 2020.10.29 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค: SQL - GROUP BY (0) | 2020.10.28 |
ํ๋ก๊ทธ๋๋จธ์ค: SQL - JOIN (0) | 2020.10.28 |
ํ๋ก๊ทธ๋๋จธ์ค: ์ค ์๋ ๋ฐฉ๋ฒ (2) | 2020.10.26 |
ํ๋ก๊ทธ๋๋จธ์ค: ๋ฉ๋ฆฌ ๋ฐ๊ธฐ (0) | 2020.10.26 |