SQL 문법 순서 : 해석 우선순위
SELECT column_name(s) : 5
FROM table_name : 1
WHERE condition : 2
GROUP BY column_name(s) : 3
HAVING condition : 4
ORDER BY column_name(s) : 6
중복제거
SELECT DISTINCT name
FROM animal_ins
WHERE name IS NOT NULL;
GROUP BY의 조건절
SELECT NAME, COUNT(NAME)
FROM ANIMAL_INS
GROUP BY NAME
HAVING COUNT(NAME) >= 2
날짜 데이터에서 시간 추출하기
SELECT HOUR(DATETIME) AS HOUR
FROM ANIMAL_OUTS;
// 2017-05-23 16:17:00 -> 16
// DATETIME에 대해 DATE, MONTH , DAY, MINUTE , SECOND도 가능
WHERE 절에서 특정 값 여러 개를 선택하기
SELECT *
FROM CUSTOMER
WHERE CUST_COUNTRY IN ( 'KR' , 'JP', 'FR', 'US');
// 괄호 안의 값 중, 일치하는 것이 있으면 TRUE
// OR연산자를 쓰는 것보다 쿼리가 깔끔해진다.
범위 지정하기
SELECT HOUR(DATETIME) AS HOUR
FROM ANIMAL_OUTS
HAVING HOUR BETWEEN 9 AND 19;
별칭(Alias)은 SELECT에서만 사용 가능
SELECT MCDP_CD AS '진료과코드', COUNT(*) AS '5월예약건수'
FROM APPOINTMENT
ORDER BY '진료과코드'; (X)
SELECT MCDP_CD AS '진료과코드', COUNT(*) AS '5월예약건수'
FROM APPOINTMENT
ORDER BY MCDP_CD; (O)
// SELECT문이 아니라면 별칭을 사용할 수 없다. (참고🔗)
특정 문자 또는 문자열을 포함하고 있는 값을 검색하기
% : 해당 구간의 0개 이상의 문자열과 대치됨
_ : 한 개의 문자와 대치됨
SELECT *
FROM CAR_RENTAL_COMPANY_CAR
WHERE OPTIONS LIKE '%통풍시트%';
문자열 BYTE 길이 출력
SELECT LENGTH(CONTENT)
FROM POSTS;
// "사과" -> 6
문자열의 문자 개수 출력
SELECT CHAR_LENGTH(CONTENT)
FROM POSTS;
// "사과" -> 2
FROM JOIN ON
SELECT *
FROM TEST1 JOIN TEST2
ON TEST1.aa = TEST2.aa;
RIGHT OUTER JOIN
SELECT *
FROM TEST1 RIGHT OUTER JOIN TEST2
ON TEST1.aa = TEST2.aa;
// 오른쪽 테이블인 TEST2 기준으로 조인한다. 조인되지 않은 데이터는 NULL로 표시된다.
몫 구하기
SELECT PRICE DIV 10000
FROM PRODUCT
// 27000 -> 2
소수점 이하까지 나오는 나누기 연산
SELECT PRICE / 10000
FROM PRODUCT
// 27000 -> 2.7
올림 함수
SELECT CEILING(PRICE)
FROM PRODUCT
// 7.2 -> 8
// 소수점 첫째 자리에서 올린다.
내림 함수
SELECT FLOOR(PRICE)
FROM PRODUCT
// 7.2 -> 7
// 소수점을 버린다.
자릿수 버리기
TRUNCATE(숫자, 버릴 자릿수)
SELECT TRUNCATE(PRICE, -4)
FROM PRODUCT;
// 27000 -> 2
SELECT TRUNCATE(3456.1234567 ,1)
FROM TABLE1;
// 3456.1234567 -> 3456.1
조건문 사용하기
SELECT
STUDENT_ID,
SCORE,
CASE
WHEN SCORE >= 90 THEN 'A'
WHEN SCORE >= 80 THEN 'B'
ELSE 'C'
END AS GRADE
FROM EXAM_RESULT;
![](https://blog.kakaocdn.net/dn/yxvHp/btsxggb4b0v/qMSxgsYJXwPcKvq1xPymV0/img.jpg)