강좌 링크
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, LEASTMAX, 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 |