๐ 1. ๋ฌธ์ ์ค๋ช
โ ์คํจํ ์๋์ด๋ฆ์ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ณํ์ง ์๋๋ค๋ ๋ถ๋ถ์ด ๋ฌธ์ ์ ํต์ฌ 1์ฐจ ์๋ ์คํจWHERE ์ ์์ `LOWER(NAME)` ํด ์ฃผ์์ผ๋ ํ๋ฆผ์ฟผ๋ฆฌ๋ ๋์๊ฐ๊ณ ๊ฒฐ๊ณผ๋ ๋์ค์ง๋ง ๊ฒฐ๊ตญ WHERE์ ์์ LOWER()๊ณผ LIKE๋ฅผ ํจ๊ป ์ด ๊ฒ์ ๋ถํ์ํ ์ฒ๋ฆฌ๋ฅผ ํ๋ ๊ฒ์ด๋ค. MySQL์์ LIKE ์ฐ์ฐ์๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ณํ์ง ์๋๋ค. SELECT ANIMAL_ID, NAMEFROM ANIMAL_INSWHERE LOWER(ANIMAL_TYPE) = 'dog' AND LOWER(NAME) LIKE '%el%'ORDER BY NAME DESC; 2์ฐจ ์๋ ์คํจ์ด๋ฒ์๋ ORDER BY์ ์ LOWER() ํจ์๋ฅผ ์จ์ ์ ๋ ฌํ๋๋ ํ๋ ธ๋ค๊ณ ํจ.WHERE ์ ์ด๋ ์ ๋ ฌ์ด๋ ๋ณ๊ฐ๋๊น ์ ๋ ฌ์๋ LOW..
My Tech Blog (์ฟผ๋ฆฌ)
๐ 1. ํน์ ์ต์
์ด ํฌํจ๋ ์๋์ฐจ ๋ฆฌ์คํธ ๊ตฌํ๊ธฐ ๋ฌธ์ CAR_RENTAL_COMPANY_CAR ํ
์ด๋ธ์์ '๋ค๋น๊ฒ์ด์
' ์ต์
์ด ํฌํจ๋ ์๋์ฐจ ๋ฆฌ์คํธ๋ฅผ ์ถ๋ ฅํ๋ SQL๋ฌธ์ ์์ฑํด์ฃผ์ธ์. ๊ฒฐ๊ณผ๋ ์๋์ฐจ ID๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌํด์ฃผ์ธ์. โญ ์ ๋ต์ฝ๋SELECT * FROM CAR_RENTAL_COMPANY_CARWHERE OPTIONS LIKE '%๋ค๋น๊ฒ์ด์
%'ORDER BY CAR_ID DESC;๐ 2. ์๋์ฐจ ๋์ฌ ๊ธฐ๋ก์์ ์ฅ๊ธฐ/๋จ๊ธฐ ๋์ฌ ๊ตฌ๋ถํ๊ธฐ ๐ ํ๋ฆฐ์ฝ๋SELECT HISTORY_ID, CAR_ID, DATE_FORMAT(START_DATE, '%Y-%m-%d'), DATE_FORMAT(END_DATE, '%Y-%m-%d'), CASE WHEN DATEDIFF(END_DATE..
1. ๊ฒ์๊ธ ์์ ํ๋ update ๋ฉ์๋ ๋ง๋ค๊ธฐBbsDAO ํด๋์ค ํ๋จ์ ๋ฉ์๋ ์ถ๊ฐpublic int update(int bbsID, String bbsTitle, String bbsContent) { String SQL = "UPDATE BBS SET bbsTitle = ?, bbsContent = ? WHERE bbsID = ?"; PreparedStatement psmt = null; try { psmt = conn.prepareStatement(SQL); psmt.setString(1, bbsTitle); psmt.setString(2, bbsContent); psmt.setInt(3, bbsID); return p..
๐ 1. ๋ฌธ์ ์ค๋ช
๐ก 2. ์ ๊ทผ๋ฐฉ์FILE_PATH ์ถ๋ ฅ ์์๋ฅผ ๋ณด๊ณ '/home/grep/src/' + F.BOARD_ID + '/' + F.FILE_ID + F.FILE_NAME + F.FILE_EXT์ด๋ ๊ฒ ๋ฌธ์์ด์ด ๊ฒฐํฉ๋ ๊ตฌ์กฐ๋ผ๋ ๊ฑธ ์ ์ ์์๋ค. CONCAT์ผ๋ก ํด๋น ๋ฌธ์์ด์ ๋ชจ๋ ๊ฒฐํฉ ํด ์ค๋ค. ์ฒ์์๋ ํท๊ฐ๋ ค์ + ์ฐ์ฐ์๋ก ํ๋๋ฐ ,๋ก ๊ฒฐํฉ์ ํด ์ค์ผ ํ๋ค. ๋ ํ
์ด๋ธ ์กฐ์ธํ ๋๋ BOARD_ID ์ปฌ๋ผ์ ๊ธฐ์ค์ผ๋ก ์กฐ์ธ ํด ์ค๋ค. WHERE ์ ์์ ์๋ธ์ฟผ๋ฆฌ๋ฅผ ์ด๋ค. ๋จผ์ USED_GOODS_BOARD๋ฅผ ์กฐํ์ ์ปฌ๋ผ(VIEW) ๊ธฐ์ค์ผ๋ก ๋ด๋ฆผ์ฐจ์ ํด ์ฃผ๊ณ ๊ทธ ์ค ๊ฐ์ฅ ๋์ ๊ฒ๋ง ๊ฐ์ ธ์์ผ ํ๋๊น LIMIT1 ์ ๊ฑธ์ด์ค๋ค. ๋ง์ง๋ง์ผ๋ก FILE_ID๋ก ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌํ๋ฉด ๋~! ์ฝ๋คโญ 3. ์ ๋ต์ฝ๋..
1. ๋ฌธ์ ์ค๋ช
2. ์ ๊ทผ๋ฐฉ์ ๋จผ์ FISH_INFO ํ
์ด๋ธ์ด๋ FISH_NAME_INFO ํ
์ด๋ธ์ FISH_TYPE ์ปฌ๋ผ์ผ๋ก ์กฐ์ธ ํด ์ค๋ค. ๊ทธ๋ฆฌ๊ณ FISH_NAME์ผ๋ก GROUP BY ํด ์ฃผ๊ณ , LENGTH์ MAX ๊ฐ์ ๊ตฌํด์ฃผ๋ฉด ๋๋ค๊ณ ์๊ฐ ํ๋ค. ๐
๐ปโ๏ธ์ฒซ๋ฒ์งธ ์๋(์คํจ) ์ผ๋จ ์ด๊ฒ ๋ด๊ฐ ์ฒ์์ ์๊ฐํ๋ ์ฟผ๋ฆฌ์ด๋ค. ๋ฐ๋ก ๊ตฌ๋ฌธ ์ค๋ฅ๊ฐ ๋ด๋ค. GROUP BY์ ์ ์ง๊ณ๋์ง ์์ ์ปฌ๋ผ A.ID๊ฐ ์๋ค๊ณ ํ๋ ์ค๋ฅ ๋ฉ์ธ์ง๊ฐ ๋ด๋ค. ํ์ฌ GROUP BY ์ ์ B.FISH_NAME๋ง ์๊ณ , A.ID๋ GROUP BY์ ํฌํจ๋์ง ์์์ ์ค๋ฅ๊ฐ ๋ฐ์ํ ๊ฒ์ด๋ค. ORDER BY์ A.ID๋ฅผ ์ฌ์ฉํ ๋, ๊ทธ ์ด์ด GROUP BY ์ ์ ํฌํจ๋์ด ์์ง ์์ผ๋ฉด ๊ฒฐ๊ณผ๊ฐ ์๊ธฐ์น ์๊ฒ ๋ํ๋ ์ ์๋ค๊ณ ํ๋ค. ๊ทธ๋์ GROUP..
1. ๋ฌธ์ ์ค๋ช
2. ์ ๊ทผ๋ฐฉ์ & ์ ๋ต์ฝ๋SELF JOIN์ผ๋ก ๋ถ๋ชจ-์์ ๊ด๊ณ๋ฅผ ๋์ผํ ํ
์ด๋ธ ๋ด์์ ์กฐ์ธํด์ ํ์ด์ฃผ์.ํ๋์ ํ
์ด๋ธ์ ALIAS๋ฅผ ์ค์ ๋ง์น ๋ ๊ฐ์ ํ
์ด๋ธ์ด ์๋ ๊ฒ์ฒ๋ผ ๋ ๋ฒ ์ฐธ์กฐํ๋ ๊ฒ์ด๋ค. ๋ด๊ฐ ์๊ณ ์๋ ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ SELF JOIN ์์๋ ์ง์๋ณ ๋งค๋์ ๋ฅผ ๋ํ๋ธ 1๊ฐ์ ํ
์ด๋ธ์ ์๊ธฐ์์ ๊ณผ ์กฐ์ธํ๋ ๊ฒ์ด๋ค. ๋ ๊ณ์ธต์ฟผ๋ฆฌ์์๋ SELF JOIN์ด ๋ง์ด ์ฐ์ธ๋ค. ์ด ๋ฌธ์ ์์๋ ํ๋์ ํ
์ด๋ธ์ ๋ถ๋ชจ์ ์์ด๋์ ์์์ ์์ด๋, ๊ฐ์ฒด์ ํ์ง(GENOTYPE)์ด ๋ชจ๋ ๋ค์ด ์๋ค. ๋ถ๋ชจ์ ํ
์ด๋ธ์ P๋ก, ์์์ ํ
์ด๋ธ์ ๊ทธ๋ฅ A๋ผ๊ณ ๋ณ์นญ์ ์ค ๋ค ์์ํ
์ด๋ธ์ PARENT_ID์ปฌ๋ผ์ ๋ถ๋ชจ ํ
์ด๋ธ์ ID ๊ฐ์ผ๋ก ์กฐ์ธ ํ๋ค. ๊ทธ ํ WHERE ์ ์ `A.GENOTYPE & P.GENOTYPE ..
๐ ๋ชจ๋ ๋ ์ฝ๋ ์กฐํํ๊ธฐ10์ด์ปท ๋ฌธ์ SELECT *FROM ANIMAL_INSORDER BY ANIMAL_ID; ๐ฆ ์กฐ๊ฑด์ ๋ง๋ ํ์์ ๊ตฌํ๊ธฐSELECT COUNT(*)FROM USER_INFOWHERE YEAR(JOINED) = '2021' AND AGE BETWEEN 20 AND 29;๐ป Python ๊ฐ๋ฐ์ ์ฐพ๊ธฐ ๋ณดํต ์ฉ์ด๋ณด๋ค์ด ํธ๋ ๋ฐฉ๋ฒSELECT ID, EMAIL, FIRST_NAME, LAST_NAMEFROM DEVELOPER_INFOSWHERE SKILL_1 = 'Python' OR SKILL_2 = 'Python' OR SKILL_3 = 'Python'ORDER BY ID; ํ ๋ฒ ์๊ฐ ํด ๋ณด๊ณ ํ๋ฉด ์ด๋ ๊ฒ ใ
ใ
ใ
SELECT ID, EMAIL, FIRST_NAME, L..
๐์กฐ๊ฑด์ ๋ง๋ ๋์ ๋ฆฌ์คํธ ์ถ๋ ฅํ๊ธฐ ์๋๋ ์ ๋ต์ฒ๋ฆฌ ๋๋ ๋ชจ๋ ๋์ผํ ์ฝ๋์ด๋ค BETWEEN ์ฐ์ฐ์๋ก ํ๊ธฐSELECT BOOK_ID, DATE_FORMAT(PUBLISHED_DATE, '%Y-%m-%d') AS PUBLISHED_DATEFROM BOOKWHERE PUBLISHED_DATE BETWEEN '20210101' AND '20211231' AND CATEGORY LIKE '์ธ๋ฌธ'ORDER BY PUBLISHED_DATE; โญโญโญYEAR() ํจ์๋ก ํ๊ธฐ (์ ์ผ ๊ฐ๋จํ ์ฝ๋)SELECT BOOK_ID, DATE_FORMAT(PUBLISHED_DATE, '%Y-%m-%d') AS PUBLISHED_DATEFROM BOOKWHERE YEAR(PUBLISHED_DATE) = 2021 ..