์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- ์๋ฐ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค
- ์๋ฐ๊ธฐ์ด
- Streamlit๊ธฐ์ด
- db
- ์๋ฐํ๋ก๊ทธ๋๋ฐ
- ์น๋์๋ณด๋ ๊ธฐ์ด
- ์๋๋ก์ด๋ ์ฑ ๊ฐ๋ฐ
- ์๋๋ก์ด๋ ์คํ๋์ค
- streamlit
- RESTful API
- ์น๋์๋ณด๋ ์ ์
- ์๋ฐ์คํฌ๋ฆฝํธ
- MySQL
- ํ์ด์ฌ
- JavaScript
- Android
- ์๋ฐ๊ณต๋ถ
- ์๋ฐ์คํฌ๋ฆฝํธ ๊ณต๋ถ
- ์คํธ๋ฆผ๋ฆฟ ๊ธฐ๋ณธ
- ํ๋ค์ค
- ์คํธ๋ฆผ๋ฆฟ
- ํ์ด์ฌ๊ณต๋ถ
- Streamlit๊ธฐ๋ณธ
- Pandas
- serverless
- ์๋ฐ์ด๋ณด
- Flutter
- java
- ํ๋ค์ค๊ณต๋ถ
- Today
- Total
๋ชฉ๋ก๐ข๏ธDB/MySQL (27)
ruriruriya
MySQL์ GROUP BY์ HAVING์ ํจ๊ป ์ฌ์ฉํ์ฌ ์กฐ๊ฑด์ ๋ง๋ ๊ทธ๋ฃน์ ํํฐ๋งํ๋ ๋ฐฉ๋ฒ GROUP BY๋ ๋ฐ์ดํฐ๋ฅผ ๊ทธ๋ฃนํํ๋ ๋ฐ ์ฌ์ฉ๋๋ฉฐ, HAVING์ GROUP BY๋ก ๊ทธ๋ฃนํ๋ ๋ฐ์ดํฐ์ ์กฐ๊ฑด์ ์ ์ฉํ๋ ๋ฐ ์ฌ์ฉ๋๋ค. ์๋ฅผ ๋ค์ด, ํ์ ํ ์ด๋ธ์ด ์๋ค๊ณ ๊ฐ์ ํด๋ณด์.. ์ด ํ ์ด๋ธ์๋ ํ์ ์ด๋ฆ๊ณผ ๊ฐ ํ์์ ์ฑ์ ์ด ์๋ค. (ํ๊ท ๊ฐ์ ๋ด๊ธฐ ์ํด ์ ์๋ฅผ ํ๋ฒ ๋ ์ถ๊ฐํ๋ค...(๋๋ฒ ์งธ insert ๋ฌธ)) INSERT INTO students (student_name, grade) VALUES ('Alice', 90), ('Bob', 85), ('Charlie', 75), ('David', 95), ('Emma', 88), ('Frank', 82), ('Grace', 79), ('Henry', 91), ..
MySQL์์ CASE ๋ฌธ๊ณผ IF ๋ฌธ์ ์กฐ๊ฑด๋ถ ๋ก์ง์ ์ํํ๋๋ฐ ์ฌ์ฉ๋๋ค. ์ด๋ฅผ ํตํด ์กฐ๊ฑด์ ๋ฐ๋ผ ๋ค๋ฅธ ๊ฐ์ ๋ฐํํ๊ฑฐ๋ ํน์ ์กฐ๊ฑด์ ๋ฐ๋ผ ๋ค๋ฅธ ์์ ์ ์ํํ ์ ์๋ค. ์ฌ์ฉํ ํ ์ด๋ธ(books) 1. CASE๋ฌธ ์ฌ์ฉ๋ฐฉ๋ฒ SQL์ case ๋ฌธ์ ๋ค๋ฅธ ์ธ์ด๋ ๋น์ทํ๊ฒ ์ฐ์ธ๋ค. ์๋๋ case์ ๊ธฐ๋ณธ ๊ตฌ์กฐ์ด๋ค. ์์ ๋ก ์ด๋ป๊ฒ ์๋๋๋์ง ์์๋ณด์. CASE ์ปฌ๋ผ๋ช WHEN ๊ฐ1 THEN ๊ฒฐ๊ณผ WHEN ๊ฐ2 THEN ๊ฒฐ๊ณผ ... ELSE ๋๋จธ์ง ๊ฒฐ๊ณผ๊ฐ END ์์ 01 - ์ถํ๋ ๋๊ฐ 2000๋ ์ด์์ธ ์ฑ ๋ค์, '์ต๊ทผ์ฑ ' ์ด๋ผ๊ณ ํ๊ณ , ๊ทธ๋ ์ง ์์ ์ฑ ๋ค์ '์์ ์ฑ '์ด๋ผ๊ณ ํ์ฌ, type ์ด๋ผ๋ ์ปฌ๋ผ์ ์ถ๊ฐํ์ฌ ๊ฐ์ ธ์ค์์ค. select * , case when released_year >= 2000 then '์ต๊ทผ์ฑ ..
MySQL์์๋ ๋ ์ง์ ์๊ฐ์ ์ ์ฅํ๊ธฐ ์ํด ๋ค์ํ ๋ฐ์ดํฐ ํ์ ์ ์ ๊ณตํ๋ค. DATE: ๋ ์ง(๋ , ์, ์ผ)๋ง์ ์ ์ฅํ๋ค. ์์: 'YYYY-MM-DD' (์: '2023-12-01') TIME: ์๊ฐ(์, ๋ถ, ์ด)๋ง์ ์ ์ฅํ๋ค. ์์: 'HH:MM:SS' (์: '15:30:00') DATETIME: ๋ ์ง์ ์๊ฐ์ ํจ๊ป ์ ์ฅํ๋ค. ์์: 'YYYY-MM-DD HH:MM:SS' (์: '2023-12-01 15:30:00') TIMESTAMP: ๋ ์ง์ ์๊ฐ์ ์ ์ฅํ๋ฉฐ, ๋ฐ์ดํฐ๊ฐ ์ฝ์ ๋๊ฑฐ๋ ์ ๋ฐ์ดํธ๋ ์๊ฐ์ ๊ธฐ๋กํ๋ ๋ฐ ์ฌ์ฉ๋๋ค. TIMESTAMP๋ ํน์ ์๊ฐ๋๋ก ํํ๋๋ค. ์์: 'YYYY-MM-DD HH:MM:SS' (์: '2023-12-01 15:30:00') 1. ํ ์ด๋ธ ๋ง๋ค๊ณ ์ปฌ๋ผ ๋ฐ์ดํฐํ์ ..
IS NULL์ MySQL์์ NULL ๊ฐ์ธ์ง๋ฅผ ํ์ธํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ์กฐ๊ฑด์ผ๋ก NULL์ ๋ฐ์ดํฐ๊ฐ ์กด์ฌํ์ง ์๊ฑฐ๋ ์ ์ ์๋ ๊ฐ์ ๋ํ๋ธ๋ค. ์ฌ์ฉํ ํ ์ด๋ธ(books) is null Null ์ด ์๋ ๋ฐ์ดํฐ๋ง ๊ฐ์ ธ์ค๋ ๋ฐฉ๋ฒ ๋ค๋ฅธ ๋ฌธ์์ด์ด๋ ์ซ์์ด๊ณผ ๋ค๋ฅด๊ฒ = ๋ถํธ๊ฐ ์๋ is ํค์๋๋ฅผ ์ฌ์ฉํ๋ค. ์ด ๋ถ๋ถ์ด ๋ง์ด ํผ๋๋ ์ ์์ด์ ๋ง์ด ํ๋ฆฌ๋ ๋ถ๋ถ์ด๋ ์ ์์๋๋๋ก ํ์. ์ฌ๊ณ ๊ฐ null ์ธ ๋ฐ์ดํฐ๋ง ๊ฐ์ ธ์ค์์ค. select * from books where stock_quantity is null; is not null is null์ ๋ฐ๋๋ก null ์ด ์๋ ๋ฐ์ดํฐ๋ฅผ ์ฐพ๋ ๋ฐฉ๋ฒ์ด๋ค. select * from books where stock_quantity is not null; ifnull() ํจ์..
์๋ธ์ฟผ๋ฆฌ(Sub Query)๋ SQL ์ฟผ๋ฆฌ ์์ ํฌํจ๋ ๋ ๋ค๋ฅธ ์ฟผ๋ฆฌ๋ฅผ ๋งํ๋ค. ์๋ธ์ฟผ๋ฆฌ๋ ์ธ๋ถ ์ฟผ๋ฆฌ์ ์กฐ๊ฑด์ ๋ฐ๋ผ ๊ฒฐ๊ณผ๋ฅผ ๋์ ์ผ๋ก ์์ฑํ๊ณ , ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ์ด์ฉํด ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ๋ ๋ฐ ์ฌ์ฉ๋๋ค. ์ฌ์ฉํ ํ ์ด๋ธ(books) ์์ ๋ก ๋ค๋ฅธ ๋ฐฉ๋ฒ๊ณผ ๋น๊ตํด ๋ณด์. ์์ ) pages ๊ฐ ๊ฐ์ฅ ๊ธด ์ฑ ์, title ๊ณผ pages ๋ฅผ ๋ณด์ฌ์ฃผ์ธ์. ๋ฐฉ๋ฒ 01 - pages๋ฅผ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ฆฌํ ๋ค์ limit ํค์๋๋ก ์์ 1ํ๋ง ๊ฐ์ ธ์จ๋ค. select title, pages from books order by pages desc limit 0,1; ๋ฐฉ๋ฒ 02 - max ํจ์๋ฅผ ์ฌ์ฉํด์ pages ์ ์ต๋๊ฐ์ ์ฐพ์ ๋ค์ where ํค์๋๋ก ์กฐ๊ฑด๋ฌธ์ ์ฌ์ฉํด ํด๋น ํ์ ์ฐพ๋๋ค. select max(pages)..
GROUP BY ๋ฐ HAVING์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๋ฐ์ดํฐ๋ฅผ ๊ทธ๋ฃนํํ๊ณ ์กฐ๊ฑด์ ๋ฐ๋ผ ํํฐ๋งํ๋ ๋ฐ ์ฌ์ฉ๋๋ ์ค์ํ ํค์๋์ด๋ค. ์ฌ์ฉํ ํ ์ด๋ธ(books) GROUP BY ์นดํ ๊ณ ๋ฆฌ์ปฌ ๋ฐ์ดํฐ์ ๊ฒฝ์ฐ ~ ๋ณ๋ก ๋ฌถ์ด์ ์ฒ๋ฆฌํ ์ ์๋ค. ํน์ ์ด์ ๊ฐ์ ๊ธฐ์ค์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๊ทธ๋ฃนํํ๊ณ ์ดํ ์ง๊ณ ํจ์(COUNT(), SUM(), AVG(), MAX(), MIN() ๋ฑ)์ ํจ๊ป ์ฌ์ฉํ์ฌ ๊ทธ๋ฃน๋ณ๋ก ์์ฝ๋ ๋ฐ์ดํฐ๋ฅผ ์ป์ ์ ์๋ค. author_lname ๋ณ๋ก, ๋ช ๊ถ์ ์ฑ ์ ์ผ๋์ง ๊ถ์๋ฅผ ๋ณด์ฌ์ฃผ์ธ์. select author_lname, count(*) as book_count from books group by author_lname; ๋ ๋๋ณ๋ก ๊ฐ๊ฐ ๋ช ๊ถ์ ์ฑ ์ด ์ถ๊ฐ๋์๋์ง ๋ ๋์ ์ฑ ์ ๊ฐฏ์๋ฅผ ๋ณด์ฌ์ฃผ์ธ์. select ..
MySQL์์ ์ ๊ณตํ๋ ์ง๊ณ ํจ์๋ค์ธ COUNT(), SUM(), AVG(), MAX(), MIN()์ ๋ฐ์ดํฐ์ ์งํฉ์ ๋ถ์ํ๊ฑฐ๋ ์์ฝํ๋ ๋ฐ์ ์ฌ์ฉ๋๋ค. ์ฌ์ฉํ ํ ์ด๋ธ(books) COUNT() ๋ฐ์ดํฐ์ ๊ฐฏ์๋ฅผ ์ธ๋ ํจ์ books ํ ์ด๋ธ์ ์ ์ฒด ๋ฐ์ดํฐ๋ ๋ช๊ฐ? select count(*) from books; author_lname ์ ์ค๋ณต๋ฐ์ดํฐ๊ฐ ์๋ค. ๋ฐ๋ผ์, ์ค๋ณต๋ฐ์ดํฐ ์ ๊ฑฐํ ์ ๋ํฌํ ๋ฐ์ดํฐ์ ๊ฐฏ์๋ ๋ช๊ฐ? select count(distinct author_lname) from books; ์ฑ ์ ๋ชฉ์ the ๊ฐ ๋ค์ด์๋ ์ฑ ์, ๋ช ๊ถ์ ๋๊น? select count(*) from books where title like '%the%'; SUM() ๊ฐ์ ๋ํด์ฃผ๋ ํจ์ books ํ ์ด๋ธ์ ๋ชจ๋ ์ฑ ์..
LIKE๋ MySQL์์ ๋ฌธ์์ด ํจํด์ ๊ฒ์ํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ํค์๋์ด๋ค. ์ด๋ฅผ ํตํด ๋ฌธ์์ด์ ์ผ๋ถ ๋๋ ํน์ ํจํด์ ๊ฐ์ง ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ํ ์ ์๋ค. LIKE๋ WHERE ์ ๊ณผ ํจ๊ป ์ฌ์ฉ๋๋ฉฐ, ํจํด ๋งค์นญ์ ์ํด ๋ค์๊ณผ ๊ฐ์ ๊ธฐํธ๋ฅผ ์ฌ์ฉํ๋ค: %: 0๊ฐ ์ด์์ ๋ฌธ์๋ฅผ ๋ํ๋ด๋ ์์ผ๋์นด๋. _: ํ๋์ ๋ฌธ์๋ฅผ ๋ํ๋ด๋ ์์ผ๋์นด๋. ์ฌ์ฉํ ํ ์ด๋ธ(books) like ํค์๋ ๋ฌธ์์ด ์์, ์ํ๋ ๋ฌธ์์ด์ด ๋ค์ด์๋์ง ๊ฒ์ ์ค์ ๋ก๋ ์ผ๋์คํฑ ์์น(Elasticsearch) ๋ฅผ ๋ ๋ง์ด ์ด๋ค. ๊ทธ๋๋ ์ฐ์ด๋ ๊ฒฝ์ฐ๊ฐ ์๊ธฐ ๋๋ฌธ์ ๊ธฐ์ด๋ก ์๊ณ ์์ด์ผ ํ๋ค. ์ฑ ์ ๋ชฉ์ the๊ฐ ๋ค์ด์๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค์์ค. select * from books where title like '%the%'; -- % ์๋ค๋ก ์ฌ์ฉํ์ฌ ์๋ค ..