Skip to content

SQL SELECT

DB

SELECT * FROM mysql_test_a;
id firstname lastname lastloginData
1 John Doe 2020-01-01
2 King Jean 2020-01-11
3 Young Jeff 2020-01-21
4 King Julie 2020-04-22
5 Young Julie 2020-04-23
6 Young Mary 2021-03-15
7 Holz Mihael 2021-03-15
8 Brown Julie 2021-11-03
9 Brown Ann 2021-12-25
10 Brown William 2022-04-15

Table Data 중복 제거

SELECT DISTINCT firstname FROM mysql_test_a;
firstname
John
King
Young
Holz
Brown

Table 특정 조건 검색

SELECT firstname, lastname, lastloginDate FROM mysql_test_a WHERE firstname = 'Young';
firstname lastname lastloginData
Young Jeff 2020-01-21
Young Julie 2020-04-23
Young Mary 2021-03-15
SELECT firstname, lastname, lastloginDate FROM mysql_test_a WHERE firstname != 'Young';
firstname lastname lastloginData
John Doe 2020-01-01
King Jean 2020-01-11
Holz Mihael 2021-03-15
Brown Ann 2021-12-25
Brown William 2022-04-15
SELECT id, firstname, lastname FROM mysql_test_a WHERE id < 4;
id firstname lastname
1 John Doe
2 King Jean
3 Young Jeff
SELECT id, firstname, lastname FROM mysql_test_a WHERE id BETWEEN 5 AND 8;
id firstname lastname
5 Young Julie
6 Young Mary
7 Holz Mihael
8 Brown Julie
SELECT firstname, lastname, lastloginDate FROM mysql_test_a WHERE lastloginDate LIKE '2020%';
-- lastloginDate 에서 2020으로 시작하는 값 검색
firstname lastname lastloginData
John Doe 2020-01-01
King Jean 2020-01-11
Young Jeff 2020-01-21
King Julie 2020-04-22
Young Julie 2020-04-23
SELECT firstname, lastname, lastloginDate FROM mysql_test_a WHERE lastloginDate LIKE '%15';
-- lastloginDate 에서 15 로 끝나는 값 검색
firstname lastname lastloginData
Young Mary 2021-03-15
Holz Mihael 2021-03-15
Brown William 2022-04-15
SELECT firstname, lastname, lastloginDate FROM mysql_test_a WHERE firstname LIKE '___g';
-- firstname 값이 4자리이면서 g 로 끝나는 값 검색
firstname lastname lastloginData
King Jean 2020-01-11
King Julie 2020-04-22

Table 조회 갯수 제한

SELECT firstname, lastname, lastloginDate FROM mysql_test_a LIMIT 3;
-- 조회 결과 중 상위 3개 검색
firstname lastname lastloginData
John Doe 2020-01-01
King Jean 2020-01-11
Young Jeff 2020-01-21
SELECT firstname, lastname, lastloginDate FROM mysql_test_a LIMIT 2, 5;
-- 조회 결과 중 상위 2개는 출력하지 않고 그 다음 5개 검색
firstname lastname lastloginData
Young Jeff 2020-01-21
King Julie 2020-04-22
Young Julie 2020-04-23
Young Mary 2021-03-15
Holz Mihael 2021-03-15

Table 그룹화

SELECT firstname FROM mysql_test_a GROUP BY firstname;
firstname
John
King
Young
Holz
Brown
SELECT firstname, COUNT(*) FROM mysql_test_a GROUP BY firstname;
firstname 에서  데이터들의 갯수 검색
firstname COUNT(*)
John 1
King 2
Young 3
Holz 1
Brown 3

Table 그룹화 후 특정 Data 확인

SELECT * FROM mysql_test_a;
id title price amount
1 short_pants 30000 5
2 blue_jeans 50000 20
3 skirt 60000 10
4 short_t_shirt 15000 10
5 blue_jeans 45000 3
6 blue_jeans 99000 1
7 blue_jeans 76000 12
8 short_t_shirt 35000 6
SELECT title, AVG(amount) FROM mysql_test_a GROUP BY title HAVING AVG(amount) > 5;
-- 그룹화 시 WHERE 대신 HAVING 사용
title AVG(amount)
blue_jeans 9.0000
skirt 10.0000
short_t_shirt 8.0000