흉부외과 또는 일반외과 의사 목록 출력하기
DOCTOR 테이블에서 진료과가 흉부외과(CS)이거나 일반외과(GS)인 의사의 이름, 의사ID, 진료과, 고용일자를 조회하는 SQL문을 작성해주세요.
이때 결과는 고용일자를 기준으로 내림차순 정렬하고, 고용일자가 같다면 이름을 기준으로 오름차순 정렬해주세요.
SELECT DR_NAME, DR_ID, MCDP_CD, DATE_FORMAT(HIRE_YMD, '%Y-%m-%d')
FROM DOCTOR
WHERE MCDP_CD = 'CS' OR MCDP_CD = 'GS'
ORDER BY HIRE_YMD DESC, DR_NAME
DATE_FORMAT
날짜를 지정한 형식으로 출력합니다.
구분 기호
- %Y : 4자리 년도
- %m : 숫자 월 ( 두자리 )
- %y : 2자리 년도
- %c : 숫자 월(한자리는 한자리)
- %M : 긴 월(영문)
- %d : 일자 (두자리)
- %b : 짧은 월(영문)
- %e : 일자(한자리는 한자리)
- %W : 긴 요일 이름(영문)
- %I : 시간 (12시간)
- %a : 짧은 요일 이름(영문)
- %H : 시간(24시간)
- %i : 분
- %r : hh:mm:ss AM,PM
- %T : hh:mm:SS
- %S : 초
1
2
3
4
5
6
7
8
9
SELECT DATE_FORMAT(NOW(),'%Y-%m-%d') AS DATE FROM DUAL
-- 2016-09-22
SELECT DATE_FORMAT(NOW(),'%Y %M %d') AS DATE FROM DUAL
-- 2016 September 22
SELECT DATE_FORMAT(NOW(),'%Y년%m월%d일 %H시%i분%S초') AS DATE FROM DUAL
-- 2016년09월22일 17시00분05초
평균 일일 대여 요금 구하기
CAR_RENTAL_COMPANY_CAR 테이블에서 자동차 종류가 ‘SUV’인 자동차들의 평균 일일 대여 요금을 출력하는 SQL문을 작성해주세요.
이때 평균 일일 대여 요금은 소수 첫 번째 자리에서 반올림하고, 컬럼명은 AVERAGE_FEE 로 지정해주세요.
1
2
3
SELECT ROUND(AVG(DAILY_FEE)) AS AVERAGE_FEE
FROM CAR_RENTAL_COMPANY_CAR
WHERE CAR_TYPE = 'SUV'
SQL - ROUND() , TRUNC(), CEILING() , MOD()
- ROUND()
칼럼, 표현식 또는 값을 소수점 n 자릿수가 되도록 반올림을 한다.
round ( ‘칼럼명 표현식’ , n )
1
2
3
select round (376.871 , 2) from dual; -- 376.87
select round (376.871 , -2) from dual; -- 400
- TRUNC()
칼럼, 표현식 또는 값을 소수점 n 자릿수가 되도록 버림을 한다.
trunc ( ‘칼럼명 표현식’ , n )
1
2
select trunc (376.871 , 2) from dual; -- 376.87
select trunc (376.871 , -2) from dual; -- 300
- CEILING()
칼럼, 표현식 또는 값을 소수점 n 자릿수가 되도록 올림을 한다.
ceiling ( ‘칼럼명 표현식’ , n )
1
2
select trunc (376.871 , 2) from dual; -- 376.88
select trunc (376.871 , -2) from dual; -- 400
- MOD()
칼럼, 표현식 또는 값을 n 으로 나눈 나머지를 반환한다.
mod ( ‘칼럼명 표현식’ , n )
1
2
select mod (10 , 2) from dual; -- 결과 : 0
select mod (10 , 3) from dual; -- 결과 : 1
특정 옵션이 포함된 자동차 리스트 구하기
CAR_RENTAL_COMPANY_CAR 테이블에서 ‘네비게이션’ 옵션이 포함된 자동차 리스트를 출력하는 SQL문을 작성해주세요.
결과는 자동차 ID를 기준으로 내림차순 정렬해주세요.
SELECT *
FROM CAR_RENTAL_COMPANY_CAR
WHERE OPTIONS LIKE '%네비게이션%'
ORDER BY CAR_ID DESC
LIKE 연산자
LIKE 연산자는 문자열의 패턴을 검색합니다.
- % : 모든 문자, 문자가 없어도 포함한다.
- _ : 한 문자, 문자가 있어야 합니다.
-- 앞 뒤에 글자가 오는 경우
SELECT * FROM TABLE WHERE NAME LIKE '%부분문자열%'
-- 앞에 글자가 오는 경우
SELECT * FROM TABLE WHERE NAME LIKE '%부분문자열'
-- 뒤에 글자가 오는 경우
SELECT * FROM TABLE WHERE NAME LIKE '부분문자열%'
-- 앞에 한 글자가 있고 뒤에 문자가 오는 경우
SELECT * FROM TABLE WHERE NAME LIKE '_부분문자열%'
-- _ 2개이므로 앞에 두 글자가 있고 뒤에 문자가 오는 경우
SELECT * FROM TABLE WHERE NAME LIKE '__부분문자열%'
-- 앞 뒤에 문자 없이 부분문자열만 있는 경우
SELECT * FROM TABLE WHERE NAME LIKE '부분문자열'