SELECT FLAVOR, TOTAL_ORDER, SHIPMENT_ID
FROM FIRST_HALF
ORDER BY TOTAL_ORDER DESC, SHIPMENT_ID ASC;
섞어서 내림차순 정렬 후 중복값 오름차순 정렬 가능
문자열 검색 패턴에 사용됨
0개, 1개 또는 여러 문자를 대체합니다.
예: LIKE '강원도%'는 "강원도"로 시작하는 모든 문자열을 의미합니다 (즉, "강원도" 다음에 0개 또는 여러 문자가 올 수 있습니다).
정확히 한 문자를 대체합니다.
예: LIKE '강원도_'는 "강원도" 다음에 정확히 한 문자가 오는 문자열을 의미합니다.
SELECT FACTORY_ID, FACTORY_NAME, ADDRESS
FROM FOOD_FACTORY
WHERE ADDRESS LIKE '강원도%'
ORDER BY FACTORY_ID ASC;
상위 몇 개
SELECT NAME
FROM ANIMAL_INS
ORDER BY DATETIME ASC
LIMIT 1;
범위 지정
SELECT COUNT(USER_ID) AS count
FROM USER_INFO
WHERE JOINED BETWEEN '2021-01-01' AND '2021-12-31'
AND AGE BETWEEN 20 AND 29;
행 갯수 세기
SELECT COUNT(USER_ID) AS count
중복된 값을 제거하고 고유한(unique) 값만 반환
SELECT DISTINCT column_name
FROM table_name;
주로 NULL 값을 다른 값으로 대체할 때 사용
SELECT PT_NAME, PT_NO, GEND_CD, AGE, COALESCE(TLNO, "NONE") AS TLNO
FROM PATIENT
WHERE AGE < 13 AND GEND_CD = "W"
ORDER BY AGE DESC, PT_NAME ASC;
SELECT ROUND(AVG(DAILY_FEE), 0) AS AVERAGE_FEE
FROM CAR_RENTAL_COMPANY_CAR
WHERE CAR_TYPE = "SUV"
소수점 아래를 버리기 위해 자주 사용하는 함수
FLOOR()
함수는 주어진 숫자보다 크지 않은 가장 가까운 정수로 숫자를 버립니다.
예를 들어:
FLOOR(10.75)
의 결과는 10입니다.FLOOR(10.1)
의 결과도 10입니다.숫자를 올리는 경우에 사용하는 함수
CEIL(10.75)
또는 CEILING(10.75)
의 결과는 11입니다.CEIL(10.1)
또는 CEILING(10.1)
의 결과도 11입니다.SELECT BOOK_ID, DATE_FORMAT(PUBLISHED_DATE, '%Y-%m-%d') AS PUBLISHED_DATE
FROM BOOK
WHERE PUBLISHED_DATE BETWEEN '2021-01-01' AND '2021-12-31'
AND CATEGORY = '인문'
ORDER BY PUBLISHED_DATE ASC;
WHERE YEAR(DATE_OF_BIRTH) = 1992
AND MONTH(DATE_OF_BIRTH) = '03'
AND DAY(DATE_OF_BIRTH) = '12'
SELECT F.FLAVOR
FROM FIRST_HALF AS F
JOIN ICECREAM_INFO AS I ON F.FLAVOR = I.FLAVOR
WHERE F.TOTAL_ORDER > 3000
AND I.INGREDIENT_TYPE = 'fruit_based'
ORDER BY F.TOTAL_ORDER DESC;
두 테이블 합치기
ORDER BY 못 붙임. UNION한 다음에 한번에 정렬 ㄱㄱ
SELECT DATE_FORMAT(SALES_DATE, "%Y-%m-%d") AS SALES_DATE,
PRODUCT_ID, USER_ID, SALES_AMOUNT
FROM ONLINE_SALE
WHERE YEAR(SALES_DATE) = '2022'
AND MONTH(SALES_DATE) = '3'
UNION
SELECT DATE_FORMAT(SALES_DATE, "%Y-%m-%d") AS SALES_DATE,
PRODUCT_ID, NULL AS USER_ID, SALES_AMOUNT
FROM OFFLINE_SALE
WHERE YEAR(SALES_DATE) = '2022'
AND MONTH(SALES_DATE) = '3'
ORDER BY SALES_DATE ASC, PRODUCT_ID ASC, USER_ID ASC;
조건문
SELECT BOARD_ID, WRITER_ID, TITLE, PRICE,
CASE
WHEN STATUS = 'SALE' THEN '판매중'
WHEN STATUS = 'RESERVED' THEN '예약중'
ELSE '거래완료'
END AS STATUS
FROM USED_GOODS_BOARD
WHERE CREATED_DATE = '2022-10-05'
ORDER BY BOARD_ID DESC;
서브쿼리에서 LIMIT 사용하기
SELECT
CONCAT("/home/grep/src/", BOARD_ID, "/", FILE_ID, FILE_NAME, FILE_EXT) AS FILE_PATH
FROM USED_GOODS_FILE
WHERE BOARD_ID IN (
SELECT * FROM (SELECT BOARD_ID
FROM USED_GOODS_BOARD
ORDER BY VIEWS DESC
LIMIT 1) AS A
)
ORDER BY FILE_ID DESC;