ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

[WHERE] + ์กฐ๊ฑด๋ฌธ

SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
WHERE INTAKE_CONDITION != 'Aged'

๊ฐ™์€ ์กฐ๊ฑด๋ฌธ ๊ฒ€์‚ฌ๋Š” == ๊ฐ€ ์•„๋‹Œ =๋ฅผ ์“ด๋‹ค!

SELECT ANIMAL_ID, NAME FROM ANIMAL_INS
WHERE INTAKE_CONDITION = 'Sick'

[ORDER BY] ์ด๋ฆ„๊ธฐ์ค€ ์ •๋ ฌ, ์ด๋ฆ„์ด ๊ฐ™์„ ๊ฒฝ์šฐ ๋‚˜์ค‘์— ๋ณดํ˜ธํ•œ ๊ธฐ๊ฐ„ ์ˆœ ๋Œ€๋กœ ์ •๋ ฌ

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

์—ญ์ˆœ ์ •๋ ฌํ•˜๊ธฐ → DESC ์‚ฌ์šฉ

SELECT NAME, DATETIME FROM ANIMAL_INS
ORDER BY ANIMAL_ID DESC

DATE_FORMAT ์ง€์ •, 3์›”์ƒ ์—ฌ์ž ์ถœ๋ ฅ ** ์—ฐ์›”์ผ ๋Œ€์†Œ๋ฌธ์ž ์ฃผ์˜

SELECT MEMBER_ID, MEMBER_NAME, GENDER, **DATE_FORMAT(DATE_OF_BIRTH, '%Y-%m-%d') AS DATE_OF_BIRTH**
FROM MEMBER_PROFILE
WHERE MONTH(DATE_OF_BIRTH)=3
    AND TLNO is NOT NULL
    AND GENDER = 'W'
ORDER BY MEMBER_ID;

[GROUP BY] ํŠน์ •์ปฌ๋Ÿฝ ๊ทธ๋ฃนํ™”, HAVING → ๊ทธ๋ฃนํ™”ํ•œ ๊ฒฐ๊ณผ์— ์กฐ๊ฑด์„ ๊ฒ€

SELECT USER_ID, PRODUCT_ID
FROM ONLINE_SALE
GROUP BY USER_ID, PRODUCT_ID
    HAVING COUNT(*) >= 2
ORDER BY USER_ID ASC, PRODUCT_ID DESC
๋™๋ช…๋™๋ฌผ ์ˆ˜ ์ฐพ๊ธฐ

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

ํ‰๋ถ€์™ธ๊ณผ ๋˜๋Š” ์ผ๋ฐ˜์™ธ๊ณผ ์˜์‚ฌ ๋ชฉ๋ก ์ถœ๋ ฅ

SELECT DR_NAME, DR_ID, MCDP_CD, DATE_FORMAT(HIRE_YMD, '%Y-%m-%d') AS HIRE_YMD
FROM DOCTOR
WHERE MCDP_CD = 'CS'
    OR MCDP_CD = 'GS'
ORDER BY HIRE_YMD DESC, DR_NAME

MAX

SELECT MAX(PRICE) AS MAX_PRICE FROM PRODUCT

๊ฐ€์žฅ ๋น„์‹ผ ์‹ํ’ˆ ์ •๋ณด ์ถœ๋ ฅ

SELECT *
FROM FOOD_PRODUCT
WHERE PRICE = (SELECT MAX(PRICE) AS PRICE FROM FOOD_PRODUCT);

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

SELECT DATETIME
FROM ANIMAL_INS
WHERE DATETIME = (SElECT MAX(DATETIME) FROM ANIMAL_INS)

COUNT

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

SELECT COUNT(*)
FROM ANIMAL_INS
๊ณ ์–‘์ด์™€ ๊ฐœ๋Š” ๋ช‡๋งˆ๋ฆฌ ์žˆ์„๊นŒ

SELECT ANIMAL_TYPE, COUNT(ANIMAL_TYPE) AS count
FROM ANIMAL_INS
GROUP BY ANIMAL_TYPE
ORDER BY ANIMAL_TYPE

์ค‘๋ณต ๊ฐ’ ์ œ๊ฑฐ

COUNT(DISTINCT) ํ™œ์šฉํ•˜๊ธฐ !!!

LIKE ๊ตฌ๋ฌธ → WHERE์ ˆ์— ์‚ฌ์šฉ๋จ. ๋ถ€๋ถ„์ ์œผ๋กœ ์ผ์น˜ํ•˜๋Š” ์ปฌ๋Ÿผ์„ ์ฐพ์„ ๋•Œ ์‚ฌ์šฉ

  • ์‚ฌ์šฉ ์˜ˆ์‹œ
    • -A๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋ฌธ์ž๋ฅผ ์ฐพ๊ธฐ-- SELECT ์ปฌ๋Ÿผ๋ช… FROM ํ…Œ์ด๋ธ” WHERE ์ปฌ๋Ÿผ๋ช… LIKE 'A%'
    • -A๋กœ ๋๋‚˜๋Š” ๋ฌธ์ž ์ฐพ๊ธฐ-- SELECT ์ปฌ๋Ÿผ๋ช… FROM ํ…Œ์ด๋ธ” WHERE ์ปฌ๋Ÿผ๋ช… LIKE '%A'
    • -A๋ฅผ ํฌํ•จํ•˜๋Š” ๋ฌธ์ž ์ฐพ๊ธฐ-- SELECT ์ปฌ๋Ÿผ๋ช… FROM ํ…Œ์ด๋ธ” WHERE ์ปฌ๋Ÿผ๋ช… LIKE '%A%'
    • -A๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋‘๊ธ€์ž ๋ฌธ์ž ์ฐพ๊ธฐ-- SELECT ์ปฌ๋Ÿผ๋ช… FROM ํ…Œ์ด๋ธ” WHERE ์ปฌ๋Ÿผ๋ช… LIKE 'A_'
    • -์ฒซ๋ฒˆ์งธ ๋ฌธ์ž๊ฐ€ 'A''๊ฐ€ ์•„๋‹Œ ๋ชจ๋“  ๋ฌธ์ž์—ด ์ฐพ๊ธฐ-- SELECT ์ปฌ๋Ÿผ๋ช… FROM ํ…Œ์ด๋ธ” WHERE ์ปฌ๋Ÿผ๋ช… LIKE'[^A]'
    • -์ฒซ๋ฒˆ์งธ ๋ฌธ์ž๊ฐ€ 'A'๋˜๋Š”'B'๋˜๋Š”'C'์ธ ๋ฌธ์ž์—ด ์ฐพ๊ธฐ-- SELECT ์ปฌ๋Ÿผ๋ช… FROM ํ…Œ์ด๋ธ” WHERE ์ปฌ๋Ÿผ๋ช… LIKE '[ABC]' SELECT ์ปฌ๋Ÿผ๋ช… FROM ํ…Œ์ด๋ธ” WHERE ์ปฌ๋Ÿผ๋ช… LIKE '[A-C]'
# ์ง„๋ฃŒ๊ณผ๋ณ„ ์ด ์˜ˆ์•ฝ ํšŸ์ˆ˜ ์ถœ๋ ฅํ•˜๊ธฐ

SELECT MCDP_CD AS '์ง„๋ฃŒ๊ณผ์ฝ”๋“œ', COUNT(*) AS '5์›”์˜ˆ์•ฝ๊ฑด์ˆ˜'
FROM APPOINTMENT
WHERE APNT_YMD LIKE '2022-05%'
GROUP BY MCDP_CD
ORDER BY COUNT(*), MCDP_CD ASC

JOIN

SELECT PRODUCT_CODE, SUM(B.SALES_AMOUNT*A.PRICE) AS SALES
FROM PRODUCT A
JOIN OFFLINE_SALE B
ON A.PRODUCT_ID = B.PRODUCT_ID
GROUP BY PRODUCT_CODE
ORDER BY SALES DESC, PRODUCT_CODE

** INS์—๋Š” ์—†๊ณ  OUT์—๋Š” ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์‚ฌํ•ด์•ผํ•˜๋ฏ€๋กœ

OUT๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ณ‘ํ•ฉ

select์™€ order by ์‹œ ์•ž์— ํ…Œ์ด๋ธ” ์ด๋ฆ„ ๋ถ™์—ฌ์ค˜์•ผ ์˜ค๋ฅ˜ ์•ˆ๋‚จ!!

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

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

DATEDIFF ๋‚ ์งœ ๋ฉฐ์น  ์ฐจ์ด์ธ์ง€ ๊ณ„์‚ฐ! ์ž๋™์ฐจ ํ‰๊ท  ๋Œ€์—ฌ ๊ธฐ๊ฐ„ ๊ตฌํ•˜๊ธฐ

SELECT CAR_ID, ROUND(AVG(DATEDIFF(END_DATE, START_DATE)+1), 1) AS AVERAGE_DURATION
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY 
GROUP BY CAR_ID
HAVING AVG(DATEDIFF(END_DATE, START_DATE)+1) >= 7
ORDER BY AVERAGE_DURATION DESC, CAR_ID DESC

** ์ค‘๋ณต์ œ๊ฑฐ DISTINCT

** ๋ฌธ์ž์—ด ์ฐพ๊ธฐ LIKE

%EL ์ด๋ผ๊ณ  ํ•˜๋ฉด ๋์ž๋ฆฌ๊ฐ€ EL์ธ ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ๊ฒŒ๋ฉ๋‹ˆ๋‹ค.

EL%๋ผ๊ณ  ํ•˜๋ฉด ์ฒ˜์Œ์ด EL์ธ ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ๊ฒŒ๋ฉ๋‹ˆ๋‹ค.

%EL%๋ผ๊ณ  ํ•˜๊ฒŒ๋œ๋‹ค๋ฉด ์–ด๋”˜๊ฐ€์— EL์ด ๋“ค์–ด๋งŒ ์žˆ์œผ๋ฉด ๋ฉ๋‹ˆ๋‹ค

JOIN 3๊ฐœ

SELECT C.APNT_NO, A.PT_NAME, C.PT_NO, C.MCDP_CD, B.DR_NAME, C.APNT_YMD
FROM APPOINTMENT C
JOIN (SELECT PT_NAME, PT_NO FROM PATIENT) A
JOIN (SELECT MCDP_CD, DR_NAME, DR_ID FROM DOCTOR) B
ON A.PT_NO = C.PT_NO and B.DR_ID = C.MDDR_ID
WHERE C.MCDP_CD = 'CS'
AND C.APNT_CNCL_YN = 'N'
AND C.APNT_YMD LIKE '2022-04-13%'
GROUP BY PT_NAME
ORDER BY C.APNT_YMD

IF Data REGEXP ('^[0-9]+$')

์ •๊ทœํ‘œํ˜„์‹

^ : ์‹œ์ž‘ํ•˜๋Š” ๋ฌธ์ž์—ด์„ ์ฐพ์Œ
[]: ์•ˆ์— ๋‚˜์—ด๋œ ํŒจํ„ด์— ํ•ด๋‹นํ•˜๋Š” ๋ฌธ์ž์—ด ์ฐพ์Œ
$ : ~~$ ๋กœ ๋๋‚˜๋Š” ๋ฌธ์ž์—ด์„ ์ฐพ์Œ
+ : 1ํšŒ์ด์ƒ ๋‚˜ํƒ€๋‚˜๋Š” ๋ฌธ์ž ์ฐพ์Œ
{m,n} : mํšŒ ์ด์ƒ nํšŒ ์ดํ•˜ ๋ฐ˜๋ณต๋˜๋Š” ๋ฌธ์ž ์ฐพ์Œ
"[A-z]+"	๋Œ€์ƒ ๋ฌธ์ž์—ด์—์„œ ์•ŒํŒŒ๋ฒณ์ด ํ•œ ๊ฐœ ์ด์ƒ์ธ ๋ฌธ์ž์—ด์„ ์ฐพ์Œ
"^[0-9]+"	ํ•œ ๊ฐœ ์ด์ƒ์˜ ์ˆซ์ž๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋ฌธ์ž์—ด์„ ์ฐพ์Œ
[^๋ฌธ์ž] : ๊ด„ํ˜ธ ์•ˆ์˜ ๋ฌธ์ž๋ฅผ ํฌํ•จํ•˜์ง€ ์•Š์€ ๋ฌธ์ž์—ด์„ ์ฐพ์Œ

if data regexp('^[0-9]+$')

IF๋ฌธ

if ( ์กฐ๊ฑด๋ฌธ, ์ฐธ์ผ๋•Œ ๊ฐ’, ๊ฑฐ์ง“์ผ๋•Œ ๊ฐ’) 
SELECT IF(required, 'ํ•„์ˆ˜' '์„ ํƒ') AS 'ํ•„์ˆ˜์—ฌ๋ถ€' FROM TABLE

SELECT 
	A.seq, 
	IF(A.seq <= 3, 'A', 'B') AS if_result 
FROM Table A

CASW ~ WHEN ์กฐ๊ฑด๋ฌธ

CASE 
    WHEN ์กฐ๊ฑด1 THEN '์กฐ๊ฑด1 ๋ฐ˜ํ™˜๊ฐ’'
    WHEN ์กฐ๊ฑด2 THEN '์กฐ๊ฑด2 ๋ฐ˜ํ™˜๊ฐ’'
    ELSE '์ถฉ์กฑ๋˜๋Š” ์กฐ๊ฑด ์—†์„๋•Œ ๋ฐ˜ํ™˜๊ฐ’'
END

SELECT 
	seq, 
	CASE
		WHEN (u.seq BETWEEN 1 AND 3) THEN 'A'
		WHEN (u.seq BETWEEN 4 AND 6) THEN 'B'
        ELSE 'C'
	END AS case_result
FROM Table u

๋ฌธ์ž์—ด ์ž๋ฅด๊ธฐ

SUBSTRING(๋ฌธ์ž์—ด , ์‹œ์ž‘์œ„์น˜, ๊ธธ์ด)

SELECT SUBSTRING("WWW.Google.COM", 3);
SELECT SUBSTRING("WWW.Google.COM", 3, 5);
SELECT SUBSTRING("WWW.Google.COM" FROM 5);
SELECT SUBSTRING("WWW.Google.COM" FROM 2 FOR 2);

#W.Google.COM
#W.Goo
#Google.COM
#WW

๋ฌธ์ž์—ด ํ•ฉ์น˜๊ธฐ

SELECT CONCAT(๋ฌธ์ž์—ด1, ๋ฌธ์ž์—ด2 [, ๋ฌธ์ž์—ด3 ...]) FROM [์กฐํšŒ ํ…Œ์ด๋ธ”๋ช…]

SELECT CONCAT('HA','BBB',' ','FOR','CD') FROM DUAL;
SELECT CONCAT('999','.','111') FROM DUAL;
SELECT CONCAT('HA','BBB',NULL,'FOR','CD') FROM DUAL;

#HABBB FORCD
#999.111
#NULL

mysql ์ˆซ์ž,๋ฌธ์ž ์‚ฌ์ด์— - ๋„ฃ๊ธฐ
ex) 201512 ๋ผ๋Š”๋ฌธ์ž๋ฅผ 2015-12๋ผ๊ณ  ๋ฐ”๊พธ๊ณ  ์‹ถ์„๋•Œ ์“ฐ๋Š”ํ•จ์ˆ˜

update money set 

month = concat(substr(MONTH,1,4),'-',substr(MONTH,5,6))

number = concat(substring(month,1,4),'0',substring(month,5,6))
๋ฐ˜์‘ํ˜•