강좌 링크
https://www.yalco.kr/@sql/1-1/
실습 링크 (W3School)
https://www.w3schools.com/mysql/trymysql.asp?filename=trysql_select_all
1. SELECT 와 기본 구문
다 가져오기 SELECT *
FROM Customers;
원하는 조건만 WHERE
정렬 ORDER BY xx ASC
, 내림차순은 DESC
원하는 갯수 LIMIT
별명/alias AS
모두 활용 예제
1 | SELECT |
- 주석 달때는 ‘– ‘ 하면 된다
LIMIT
은 화면 페이지 구현 하는데 사용
LIMIT {가져올 갯수} 또는 LIMIT {건너뛸 갯수}, {가져올 갯수} 를 사용하여, 원하는 위치에서 원하는 만큼만 데이터를 가져올 수 있습니다.
2. 연산자
연산자 | 의미 |
---|---|
+, -, *, / | 더하기, 빼기, 곱하기, 나누기 |
%, MOD | 나머지 |
IS | 양쪽이 모두 TRUE 또는 FALSE |
IS NOT | 한쪽은 TRUE, 한쪽은 FALSE |
AND, && | 양쪽이 모두 TRUE일 때만 TRUE |
OR, ` | |
= | 양쪽 값이 같음 |
!=, <> | 양쪽 값이 다름 |
>, < | (왼쪽, 오른쪽) 값이 더 큼 |
>=, <= | (왼쪽, 오른쪽) 값이 같거나 더 큼 |
BETWEEN {MIN} AND {MAX} | 두 값 사이에 있음 |
NOT BETWEEN {MIN} AND {MAX} | 두 값 사이가 아닌 곳에 있음 |
IN (…) | 괄호 안의 값들 가운데 있음 |
NOT IN (…) | 괄호 안의 값들 가운데 없음 |
LIKE ‘… % …’ | 0~N개 문자를 가진 패턴 |
LIKE ‘… _ …’ | 갯수만큼의 문자를 가진 패턴 |
3. 숫자와 문자열 함수들
1.숫자 관련ROUND
, CEIL
, FLOOR
, ABS
, GREATEST
, LEAST
MAX
, MIN
, COUNT
, SUM
, AVG
제곱: POW(A,B)
, POWER(A,B)
제곱근: SQRT(A)
소숫점 짜르기: TRUNCATE(N,n)
https://dev.mysql.com/doc/refman/8.0/en/numeric-functions.html
2.문자열 관련
UCASE, UPPER
, LCASE, LOWER
CONCAT(..)
, CONCAT_WS(S, ..)
SUBSTR, SUBSTRING
, LEFT
, RIGHT
LENGTH
, CHAR_LENGTH
, CHARACTER_LENGTH
TRIM
, LTRIM
, RTRIM
LPAD(S,N,P)
, RPAD(S,N,P)
padding
REPLACE(S,A,B)
INSTR(S,s)
// 위치 반환, 없을시 0
1 | SELECT * FROM Customers |
https://dev.mysql.com/doc/refman/8.0/en/string-functions.html
3.자료형 변환
|함수 |설명
|CAST(A, T) |A를 T 자료형으로 변환
1 | SELECT |
4.A 시간/날짜 관련
현재 : CURDATE
, CURTIME
, NOW
문자열 인자로 : DATE
, TIME
1 | SELECT |
(날짜) 필요한 부분만 추출: YEAR
, MONTHNAME
, MONTH
, WEEKDAY
, DAYNAME
, DAYOFMONTH, DAY
주어진 DATETIME값의 요일값 반환(월요일: 0): WEEKDAY
(시간) 필요한 부분만 추출: HOUR
, MINUTE
, SECOND
(시간/날짜) 더하기, 빼기 : ADDDATE, DATE_ADD
, SUBDATE, DATE_SUB
1 | SELECT |
차이 구하기 : TIMEDIFF
, DATEDIFF
해당 달의 마지막 날 가져오기 : LAST_DAY
1 | SELECT |
시간/날짜 -> String으로 포멧 함수: DATE_FORMAT
1 | SELECT |
String -> 시간/날짜 포멧 함수: STR_TO_DATE
1 | SELECT |
4.B 기타 함수
IF(조건, T, F) 와 CASE 문
1 | SELECT IF (1 > 2, '1는 2보다 크다.', '1은 2보다 작다.'); |
IFNULL(A,B) : A가 NULL 일 시 B 출력
1 | SELECT |
5. 조건에 따라 그룹으로 묶기
GROUP BY : 특정 컬럼 별루 묶음
통상 MAX
, MIN
, COUNT
, SUM
, AVG
와 같이 쓰임WITH ROLLUP
을 넣어주면 결과 마지막줄에 합계 추가
1 | SELECT |
HAVING
: 그룹된 결과를 필터링 하고 싶을때 사용WHERE
-> GROUP BY
-> HAVING
: 조합으로 많이 쓰임
1 | SELECT |
DISTINCT
: GROUP BY 와 달리 집계 함수 사용 X, 정렬 하지 않아 더 빠름, SELECT 부분에 들어감
1 | SELECT DISTINCT CategoryID |