SQL 프로그래머스

SQL(프로그래머스)_Lv.1 (SELECT)

티니's 2024. 7. 28. 22:45

# 아픈 동물 찾기 

[문제]

[정답 코드]

SQL에서 "같다"는 파이썬에서의 "같다" 표시와 다름! (= 한 개만 사용!)

 

#  어린 동물 찾기

[문제]

[정답 코드]

- 오름차순 정렬시 ASC( ASCENDING 아님!)
- 내림차순 정렬시 DESC(DESCENDING 아님!)

 

# 동물의 아이디와 이름

 

[문제]

[정답 코드]

 

# 여러 기준으로 정렬하기

 

[문제]

[정답 코드]

 

# 상위 n개 레코드

 

[문제]

[정답 코드]

상위 n개만 추출하고 싶을 때는 limit 함수 사용!

 

# 흉부외과 또는 일반외과 의사 목록 출력하기

 

[문제]

[정답 코드]

DATE_format 함수
- DATE_FORMAT(날짜, 형식): 날짜를 지정한 형식으로 출력하는 함수

[형식_구분기호]

구분기호 역할 구분기호 역할
%Y 4자리 년도 %m 숫자 월(두자리)
%y 2자리 년도 %c 숫자 월(한자리는 한자리로)
%M 긴 월(영문) %d 일자(두자리)
%b 짧은 월(영문) %e 일자(한자리는 한자리로)
%W 긴 요일 이름(영문) %l 시간(12시간)
%a 짧은 요일 이름(영문) %H 시간(24시간)
%i %r hh:mm:ss AM, PM
%T hh:mm:SS %S

 

# 역순 정렬하기

 

[문제]

[정답 코드]

 

# 강원도에 위치한 생산공장 목록 출력하기

[문제]

[정답 코드]

- ADDRESS는 '강원도 정선군 남면 칠현로 679' 이런 형태로 생겼다. 여기서 '강원도'가 들어간 문자열만 추출하려면 like 함수 사용!

- % (퍼센트기호): 문자열 내에서 %를 사용하면 개수에 상관없이 모든 문자가 올 수 있다. 
_(언더스코어): 문자열 내에서 _를 사용하면 문자 상관없이 하나의 문자만이 올 수 있다. 

 

# 조건에 맞는 회원수 구하기

 

[문제]

[정답 코드]

 

# 인기있는 아이스크림

 

[문제]

[정답 코드]

 

# 12세 이하인 여자 환자 목록 출력하기

 

[문제]

[정답 코드]

- CASE WHEN (조건) THEN (조건이 참일 경우) ELSE (조건이 거짓일 경우) END
- NULL 값일 경우: ISNULL 붙여서 쓰는거 아님!! IS NULL

 

# 조건에 맞는 도서 리스트 출력하기

 

[문제]

[정답 코드]

DATE_FORMAT 함수
- DATE_FORMAT(날짜를 바꿀 데이터 컬럼명, 형식)
*형식은 위에 정리한 [흉부외과 또는 일반외과 의사 목록 출력하기] 문제에 정리한 내용 참고!

 

# 과일로 만든 아이스크림 고르기

[문제]

 

[정답 코드]

 

# 평균 일일 대여 요금 구하기

 

[문제]

[정답 코드]

 

# 모든 레코드 조회하기

 

[문제]

[정답 코드]

 

# Python 개발자 찾기

[문제]

[정답 코드]

 

# 가장 큰 물고기 10마리 구하기

 

[문제]

[정답 코드]

 

# 조건에 부합하는 중고거래 댓글 조회하기

 

[문제]

[정답 코드]

 

 

# 특정 형질을 가지는 대장균 찾기

[문제]

[정답 코드]

CONV 함수    CONV(N, from_base, to_base)
: 특정 숫자를 한 진법(vase)에서 다른 진법으로 변환하는 기능
: 숫자를 다양한 진법 사이에서 변환할 때 사용

ex)
1) 10진수를 2진수로 변환
SELECT CONV('10', 10, 2); -> 결과 '1010'
2)  2진수를 10진수로 변환
SELECT CONV('1010', 2, 10); -> 결과 '10'
3) 16진수를 10진수로 변환
SELECT CONV('A', 16, 10); -> 결과: '10'
4) 10진수를 16진수로 변환
SELECT CONV('10', 10, 16); -> 결과: 'A'

*주의사항!
- 'N'은 문자열 형태로 제공되어야 함
- 'from_base'와 'to_base'는 2 이상 36 이하의 정수여야 함
- 숫자의 유효 범위는 'BIGINT UNSIGNED'로 제한되므로 너무 큰 숫자는 제대로 변환되지 않을 수 있음
*참고: BIGINT UNSIGNED란?
(쉽게 말해, BIGINT UNSIGNED가 저장할 수 있는 최대 범위를 초과하는 경우, 변환이 정확하게 이루어지지 않을 수 있다는 의미!)
  • BIGINT: 기본적으로 8바이트(64비트) 정수로, 범위는 -2^63부터 2^63-1까지
    • 범위: -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
  • BIGINT UNSIGNED: 부호가 없기 때문에 전체 64비트를 양수로 사용
    • 범위: 0 ~ 18,446,744,073,709,551,615