SELECT DEPARTMENT_NAME "학과 명"
, CATEGORY AS "계열"
FROM TB_DEPARTMENT;
학과의 학과 정원을 다음과 같은 형태로 화면에 출력한다.
SELECT DEPARTMENT_NAME || '의 정원은' || CAPACITY || '명 입니다.'
AS "학과별 정원"
FROM TB_DEPARTMENT;
"국어국문학과" 에 다니는 여학생 중 현재 휴학중인 여학생을 찾아달라는 요청이 들어왔다. 누구인가? (국문학과의 '학과코드'는 학과 테이블(TB_DEPARTMENT)을 조회해서 찾아 내도록 하자)
SELECT
STUDENT_NAME
FROM TB_STUDENT S
WHERE S.DEPARTMENT_NO = (SELECT D.DEPARTMENT_NO
FROM TB_DEPARTMENT D
WHERE DEPARTMENT_NAME = '국어국문학과')
AND ABSENCE_YN = 'Y'
AND SUBSTR(STUDENT_SSN, 8,1) = 2;
도서관에서 대출 도서 장기 연체자 들을 찾아 이름을 게시하고자 한다. 그 대상자들의 학번이 다음과 같을 때 대상자들을 찾는 적절한 SQL 구문을 작성하시오.
SELECT STUDENT_NAME
FROM TB_STUDENT
WHERE STUDENT_NO IN ('A513079', 'A513090', 'A513091', 'A513110', 'A513119')
ORDER BY 1 DESC;
입학정원이 20명 이상 30명 이하인 학과들의 학과 이름과 계열을 출력하시오.
SELECT DEPARTMENT_NAME
, CATEGORY
FROM TB_DEPARTMENT
WHERE 20 <= CAPACITY
AND 30 >= CAPACITY;
// 또는
WHERE CAPACITY BETWEEN 20 AND 30;
춘 기술대학교는 총장을 제외하고 모든 교수들이 소속 학과를 가지고 있다. 그럼 춘 기술대학교 총장의 이름을 알아낼 수 있는 SQL 문장을 작성하시오.
SELECT PROFESSOR_NAME
FROM TB_PROFESSOR
WHERE DEPARTMENT_NO IS NULL;
( = NULL 아님)
혹시 전산상의 착오로 학과가 지정되어 있지 않은 학생이 있는지 확인하고자 핚다. 어떠한 SQL 문장을 사용하면 될 것인지 작성하시오.
SELECT *
FROM TB_STUDENT
WHERE DEPARTMENT_NO IS NULL;
수강신청을 하려고 한다. 선수과목 여부를 확인해야 하는데, 선수과목이 존재하는 과목들은 어떤 과목인지 과목번호를 조회해보시오.
SELECT CLASS_NO
FROM TB_CLASS
WHERE PREATTENDING_CLASS_NO IS NOT NULL;
춘 대학에는 어떤 계열(CATEGORY)들이 있는지 조회해보시오.
SELECT DISTINCT CATEGORY
FROM TB_DEPARTMENT
ORDER BY CATEGORY ASC;
// SELECT하지 않은 COLUMN으로 정렬하지 못한다.
ORDER BY 를 입력해주었을 경우 DEFAULT는 ASC지만,
ORDER BY를 입력하지 않으면 데이터 순서대로 나온다.
02학번 전주 거주자들의 모임을 맊들려고 핚다. 휴학핚 사람들은 제외핚 재학중인 학생들의 학번, 이름, 주민번호를 출력하는 구문을 작성하시오.
SELECT STUDENT_NO
, STUDENT_NAME
, STUDENT_SSN
FROM TB_STUDENT
WHERE ABSENCE_YN = 'N'
AND SUBSTR(ENTRANCE_DATE, 1, 2) = 02
AND SUBSTR(STUDENT_ADDRESS, 1, 2) = '전주'
ORDER BY 3;
// 또는
AND EXTRACT(YEAR FROM ENTRANCE_DATE) = 2002
AND STUDENT_ADDRESS LIKE '전주%'
- EXTRACT : 년, 월, 일 정보를 추출하여 리턴하는 함수
- EXTRACT(YEAR FROM 날짜) : 년도만 추출
- EXTRACT(MONTH FROM 날짜) : 월만 추출
- EXTRACT(DAY FROM 날짜) : 날짜만 추출
ex)
SELECT
EXTRACT(YEAR FROM SYSDATE) 년도
, EXTRACT(MONTH FROM SYSDATE) 월
, EXTRACT(DAY FROM SYSDATE) 일
FROM DUAL;