모든 레코드 조회하기
# SELECT
https://school.programmers.co.kr/learn/courses/30/lessons/59034
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
- 동물 보호소에 들어온 모든 동물의 정보를 ANIMAL_ID순으로 조회
SELECT *
FROM ANIMAL_INS
ORDER BY ANIMAL_ID;
역순 정렬하기
# SELECT
https://school.programmers.co.kr/learn/courses/30/lessons/59035
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
- 동물 보호소에 들어온 모든 동물의 이름과 보호 시작일을 조회
- 결과는 ANIMAL_ID 역순
SELECT NAME, DATETIME
FROM ANIMAL_INS
ORDER BY ANIMAL_ID DESC;
아픈 동물 찾기
# SELECT
https://school.programmers.co.kr/learn/courses/30/lessons/59036
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
- 동물 중 아픈 동물의 아이디와 이름을 조회
- 결과는 아이디 순
SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
WHERE INTAKE_CONDITION = 'SICK'
ORDER BY ANIMAL_ID;
어린 동물 찾기
# SELECT
https://school.programmers.co.kr/learn/courses/30/lessons/59037
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
- 젊은 동물의 아이디와 이름을 조회
- 결과는 아이디 순
SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
WHERE INTAKE_CONDITION != 'Aged'
ORDER BY ANIMAL_ID;
이름이 없는 동물의 아이디
# IS NULL
https://school.programmers.co.kr/learn/courses/30/lessons/59039
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
- 이름이 없는 채로 들어온 동물의 ID 조회
- ID는 오름차순 정렬
SELECT ANIMAL_ID
FROM ANIMAL_INS
WHERE NAME IS NULL
ORDER BY ANIMAL_ID;
이름이 없는 동물의 아이디
# SELECT
https://school.programmers.co.kr/learn/courses/30/lessons/59403
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
- 모든 동물의 아이디와 이름을 ANIMAL_ID순으로 조회
SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
ORDER BY ANIMAL_ID;
여러 기준으로 정렬하기
# SELECT
https://school.programmers.co.kr/learn/courses/30/lessons/59404
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
- 모든 동물의 아이디와 이름, 보호 시작일을 이름수능로 조회
- 단, 이름이 같은 동물 중에서는 보호를 나중에 시작한 동물 먼저
SELECT ANIMAL_ID, NAME, DATETIME
FROM ANIMAL_INS
ORDER BY NAME, DATETIME DESC;
상위 N개 레코드
# SELECT
https://school.programmers.co.kr/learn/courses/30/lessons/59405
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
- 동물 보호소에 가장 먼저 들어온 동물의 이름 조회
SELECT NAME
FROM ANIMAL_INS
WHERE DATETIME = (SELECT MIN(DATETIME) FROM ANIMAL_INS);
SELECT NAME
FROM ANIMAL_INS
ORDER BY DATETIME ASC
LIMIT 1;
이름이 있는 동물의 아이디
# IS NULL
https://school.programmers.co.kr/learn/courses/30/lessons/59407
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
- 이름이 있는 동물의 ID 조회
- ID는 오름차순 정렬
SELECT ANIMAL_ID
FROM ANIMAL_INS
WHERE NAME IS NOT NULL
ORDER BY ANIMAL_ID;
최댓값 구하기
# SUM, MAX, MIN
https://school.programmers.co.kr/learn/courses/30/lessons/59415
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
- 가장 최근에 들어온 동물은 언제 들어왔는지 조회
SELECT MAX(DATETIME)
FROM ANIMAL_INS;
강원도에 위치한 생산공장 목록 출력하기
# SELECT
https://school.programmers.co.kr/learn/courses/30/lessons/131112
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
- 강원도에 위치한 식품공장의 공장 ID, 공장 이름, 주소 조회
- 결과는 공장 ID 기준으로 오름차순 정렬
SELECT FACTORY_ID, FACTORY_NAME, ADDRESS
FROM FOOD_FACTORY
WHERE ADDRESS LIKE '강원도%'
ORDER BY FACTORY_ID;
SELECT FACTORY_ID, FACTORY_NAME, ADDRESS
FROM FOOD_FACTORY
WHERE ADDRESS RLIKE '^강원도'
ORDER BY FACTORY_ID;
경기도에 위치한 식품창고 목록 출력하기
# IS NULL
https://school.programmers.co.kr/learn/courses/30/lessons/131114
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
- 경기도에 위치한 창고의 ID, 이름, 주소, 냉동시설 여부 조회
- 냉동시설 여부가 NULL인 경우, 'N'으로 출력
- 결과는 창고 ID 기준 오름차순 정렬
SELECT WAREHOUSE_ID, WAREHOUSE_NAME, ADDRESS, IFNULL(FREEZER_YN,'N') AS FREEZER_YN
FROM FOOD_WAREHOUSE
WHERE ADDRESS LIKE '경기도%'
ORDER BY WAREHOUSE_ID;
나이 정보가 없는 회원 수 구하기
# IS NULL
https://school.programmers.co.kr/learn/courses/30/lessons/131528
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
- 나이 정보가 없는 회원이 몇 명인지 출력
- 컬럼명 USERS로 지정
SELECT COUNT(*) USERS
FROM USER_INFO
WHERE AGE IS NULL;
조건에 맞는 회원수 구하기
# SELECT
https://school.programmers.co.kr/learn/courses/30/lessons/131535
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
- 2021년에 가입한 회원 중 나이가 20세 이상 29세 이하인 회원이 몇 명인지 출력
SELECT COUNT(USER_ID) USERS
FROM USER_INFO
WHERE (JOINED BETWEEN '2021-01-01' AND '2021-12-31') AND (AGE BETWEEN 20 AND 29);
가장 비싼 상품 구하기
# SUM, MAX, MIN
https://school.programmers.co.kr/learn/courses/30/lessons/131697
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
- 가장 높은 판매가를 출력
- 컬럼명은 MAX_PRICE로 지정
SELECT MAX(PRICE) MAX_PRICE
FROM PRODUCT;
12세 이하인 여자 환자 목록 출력하기
# SELECT
https://school.programmers.co.kr/learn/courses/30/lessons/132201
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
- 12세 이하인 여자환자의 환자이름, 환자번호, 성별코드, 나이, 전화번호 조회
- 전화번호가 없는 경우, 'NONE'으로 출력
- 결과는 나이를 기준으로 내림차순 정렬
- 나이가 같다면 환자이름을 기준으로 오름차순 정렬
SELECT PT_NAME, PT_NO, GEND_CD, AGE, IFNULL(TLNO,'NONE') TLNO
FROM PATIENT
WHERE (AGE <=12) AND (GEND_CD = 'W')
ORDER BY AGE DESC, PT_NAME ASC;
흉부외과 또는 일반외과 의사 목록 출력하기
# SELECT
https://school.programmers.co.kr/learn/courses/30/lessons/132203
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
- 진료과 흉부외과(CS)이거나 일반외과(GS)인 의사의 이름, 의사ID, 진료과, 고용일자 조회
- 결과는 고용일자 기준으로 내림차순 정렬
- 고용일자가 같다면 이름을 기준으로 오름차순 정렬
SELECT DR_NAME, DR_ID, MCDP_CD, DATE_FORMAT(HIRE_YMD, '%Y-%m-%d') HIRE_YMD
FROM DOCTOR
WHERE MCDP_CD IN ('CS', 'GS')
ORDER BY HIRE_YMD DESC, DR_NAME ASC;
인기있는 아이스크림
# SELECT
https://school.programmers.co.kr/learn/courses/30/lessons/133024
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
- 아이스크림 맛을 총주문량을 기준으로 내림차순 정렬
- 총 주문량이 같다면 출하 번호를 기준으로 오름차순 정렬
SELECT FLAVOR
FROM FIRST_HALF
ORDER BY TOTAL_ORDER DESC, SHIPMENT_ID ASC;
과일로 만든 아이스크림 고르기
# SELECT
https://school.programmers.co.kr/learn/courses/30/lessons/133025
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
- 아이스크림 총주문량이 3,000보다 높으면서 아이스크림의 주 성분이 과일인 아이스크림 맛을 총주문량이 큰 순서대로 조회
SELECT F.FLAVOR
FROM FIRST_HALF F INNER JOIN ICECREAM_INFO I on F.FLAVOR = I.FLAVOR
WHERE (F.TOTAL_ORDER >= 3000) AND (I.INGREDIENT_TYPE = 'fruit_based')
ORDER BY F.TOTAL_ORDER DESC;
조건에 맞는 도서 리스트 출력하기
# SELECT
https://school.programmers.co.kr/learn/courses/30/lessons/144853
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
- 2021년에 출판된 '인문'카테고리에 속하는 도서 리스트를 찾아서 도서ID, 출판일 출력
- 결과는 출판일 기준으로 오름차순 정렬
SELECT BOOK_ID, DATE_FORMAT(PUBLISHED_DATE, '%Y-%m-%d') PUBLISHED_DATE
FROM BOOK
WHERE (YEAR(PUBLISHED_DATE) ='2021') AND (CATEGORY ='인문')
ORDER BY PUBLISHED_DATE ASC;
평균 일일 대여 요금 구하기
# SELECT
https://school.programmers.co.kr/learn/courses/30/lessons/151136
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
- 자동차 종류가 'SUV'인 자동차들의 평균 일일 대여 요금을 출력
- 평균 일일 대여 요금은 소수 첫번째 자리에서 반올림, 컬럼은 AVERAGE_FEE로 지정
SELECT ROUND(AVG(DAILY_FEE),0) AVERAGE_FEE
FROM CAR_RENTAL_COMPANY_CAR
WHERE CAR_TYPE = 'SUV';
평균 일일 대여 요금 구하기
# SELECT
https://school.programmers.co.kr/learn/courses/30/lessons/151138
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
- 대여 시작일이 2022년 9월에 속하는 대여 기록에 대해 대여 기간이 30일 이상이면 '장기 대여' 그렇지 않으면 '단기 대여'로 표시하는 컬럼(RENT_TYPE)추가하여 대여기록 출력
- 결과는 대여 기록 ID를 기준으로 내림차순 정렬
SELECT HISTORY_ID, CAR_ID,
DATE_FORMAT(START_DATE, '%Y-%m-%d') START_DATE,
DATE_FORMAT(END_DATE, '%Y-%m-%d') END_DATE, RENT_TYPE
FROM(SELECT *,
IF(DATEDIFF(END_DATE,START_DATE)>=29 ,'장기 대여', '단기 대여') RENT_TYPE
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
WHERE START_DATE LIKE '2022-09-%') AS F
ORDER BY HISTORY_ID DESC;
평균 일일 대여 요금 구하기
# STRING, DATE
https://school.programmers.co.kr/learn/courses/30/lessons/157343
- '네비게이션'옵션이 포함된 자동차 리스트를 출력
-결과는 자동차 ID를 기준으로 내림차순 정렬
SELECT CAR_ID, CAR_TYPE, DAILY_FEE, OPTIONS
FROM CAR_RENTAL_COMPANY_CAR
WHERE OPTIONS LIKE '%네비게이션%'
ORDER BY CAR_ID DESC;
조건에 부합하는 중고거래 댓글 조회하기
# SELECT
https://school.programmers.co.kr/learn/courses/30/lessons/164673
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
- USED_GOODS_BOARD와 USED_GOODS_REPLY 테이블에서 2022년 10월에 작성된 게시글 제목, 게시글 ID, 댓글 ID, 댓글 작성자 ID, 댓글 내용, 댓글 작성일을 조회
- 결과는 댓글 작성일을 기준으로 오름차순 정렬
- 작성일이 같다면 게시글 제목 기준으로 오름차순 정렬
SELECT B.TITLE, B.BOARD_ID, R.REPLY_ID, R.WRITER_ID, R.CONTENTS,
DATE_FORMAT(R.CREATED_DATE, '%Y-%m-%d') CREATE_DATE
FROM USED_GOODS_BOARD B INNER JOIN USED_GOODS_REPLY R ON B.BOARD_ID = R.BOARD_ID
WHERE B.CREATED_DATE LIKE '2022-10-%'
ORDER BY R.CREATED_DATE ASC, B.TITLE ASC;
Python 개발자 찾기
# SELECT
https://school.programmers.co.kr/learn/courses/30/lessons/276013
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
- Python 스킬을 가진 개발자의 ID, 이메일, 이름, 성을 조회
- 결과는 ID를 기준으로 오름차순 정렬
SELECT ID, EMAIL, FIRST_NAME, LAST_NAME
FROM DEVELOPER_INFOS
WHERE (SKILL_1 = 'PYTHON') OR (SKILL_2 = 'PYTHON') OR (SKILL_3 = 'PYTHON')
ORDER BY ID ASC;
잔챙이 잡은 수 구하기
# SELECT
https://school.programmers.co.kr/learn/courses/30/lessons/293258
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
- 잡은 물고기 중 길이가 10cm 이하인 물고기 수 출력
- 물고기 수를 나타내는 컬럼 명은 FISH_COUNT로 지정
SELECT COUNT(ID) FISH_COUNT
FROM FISH_INFO
WHERE LENGTH IS NULL;
잡은 물고기의 평균 길이 구하기
# IS NULL
https://school.programmers.co.kr/learn/courses/30/lessons/293259
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
- 잡은 물고기의 평균 길이를 출력
- 평균 길이를 나타내는 컬럼 명은 AVERAGE_LENGTH로 지정
SELECT ROUND(AVG(IFNULL(LENGTH, 10)),2) AVERAGE_LENGTH
FROM FISH_INFO;
잡은 물고기 중 가장 큰 물고기의 길이 구하기
# SUM, MAX, MIN
https://school.programmers.co.kr/learn/courses/30/lessons/298515
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
- 가장 큰 물고기의 길이를 'cm'를 붙여 출력
SELECT CONCAT(MAX(LENGTH), 'cm') MAX_LENGTH
FROM FISH_INFO;
한 해에 잡은 물고기 수 구하기
# STRING, DATE
https://school.programmers.co.kr/learn/courses/30/lessons/298516
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
- 2021년도에 잡은 물고기 수를 출력
SELECT COUNT(ID) FISH_COUNT
FROM FISH_INFO
WHERE TIME RLIKE '^2021';
가장 큰 물고기 10마리 구하기
# SELECT
https://school.programmers.co.kr/learn/courses/30/lessons/298517
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
- 가장 큰 물고기 10마리의 ID와 길이를 출력
- 결과는 길이를 기준으로 내림차순 정렬
- 길이가 같다면 물고기의 ID에 대해 오름차순 정렬
- 단, 가장 큰 물고기 10마리 중 길이가 10cm인 경우는 없음
SELECT ID, LENGTH
FROM FISH_INFO
ORDER BY LENGTH DESC, ID ASC
LIMIT 10;
SELECT ID, LENGTH
FROM (SELECT ID, LENGTH, RANK() OVER (ORDER BY LENGTH DESC) RANKING
FROM FISH_INFO) AS F
WHERE RANKING <= 10
ORDER BY LENGTH DESC, ID ASC;
특정 형질을 가지는 대장균 찾기
# SELECT
https://school.programmers.co.kr/learn/courses/30/lessons/301646
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
- 2번 형질이 보유하지 않으면서 1번이나 3번 형질을 보유하고 있는 대장균 개체 수 출력
- 1번과 3번 형질을 모두 보유하고 있는 경우도 1번이나 3번 형질을 보유하고 있는 경우에 포함
SELECT COUNT(ID) AS COUNT
FROM (SELECT ID, CONV(GENOTYPE, 10, 2) SEC
FROM ECOLI_DATA) AS F
WHERE NOT(SEC LIKE '%1_') AND ((SEC LIKE '%1') OR (SEC LIKE '%1__') );
'코딩테스트' 카테고리의 다른 글
[Programmers] 프로그래머스 코딩테스트 MySQL Lv.5 (0) | 2025.04.04 |
---|---|
[Programmers] 프로그래머스 코딩테스트 MySQL Lv.4 (4) | 2025.03.18 |
[Programmers] 프로그래머스 코딩테스트 MySQL Lv.3 (1) | 2025.03.13 |
[Programmers] 프로그래머스 코딩테스트 MySQL Lv.2 (3) | 2025.02.28 |
[CodeUp] python 기초 100제_6001~6100 (0) | 2025.01.12 |