SQL 문제 _ A
2023. 6. 9. 14:56ㆍIT
반응형
1. 80 년 생인 여학생 중 성이 '김' 씨인 학생의 주민번호, 학생이름을 조회하시오. 단 학생이름으로 오름차순 정렬하시오
select '[' || substr(STUDENT_SSN, 1, 8)
|| ‘******]' [주민번호], STUDENT_NAME 이름
from TB_STUDENT
where STUDENT_SSN like '80%' and
substr(STUDENT_SSN, 8, 1)='2' and
STUDENT_NAME like ‘김%’
order by 2;
2. 계열이 ‘예체능’인 학과의 정원을 기준으로 40 이상이면 ‘대강의실’ 30이상이면 ‘중강의실’ 30나머지는 ‘소강의실’로 출력한다. 단, 정원이 많은 순으로 정렬 한다.
- 현재정원 -> 정원으로 표시
select DEPARTMENT_NAME 학과이름, CAPACITY 현재정원,
case
when CAPACITY >= 40 then '대강의실'
when CAPACITY >=30 then '중강의실'
else '소강의실'
end as 강의실크기
from TB_DEPARTMENT
where CATEGORY = '예체능'
order by 2 desc, 1;
3. 2005년1월1일부터 2006년12월31일까지의 기간에 입학한 학생 중 주소가 등록되지 않은 남학생의 학과번호, 학생이름, 지도교수번호, 입학년도를 조회하시오. 입학년도를 기준으로 오름차순 정렬한다.
select DEPARTMENT_NO 학과번호, STUDENT_NAME 학생이름,
COACH_PROFESSOR_NO 지도교수번호, to_char(ENTRANCE_DATE, 'YYYY')
|| '년' as 입학년도
from TB_STUDENT
where STUDENT_ADDRESS is null and
to_char(ENTRANCE_DATE, 'YYYY') between 2005 and 2007 and
substr(STUDENT_SSN, 8, 1) = 1
order by 4,2;
4.춘 대학교애 다니는 동명이인 학생들의 이름을 찾고자 한다. 어떤 SQL 문장을 사용하면 가능하겠는가?
동일이름 | 동명인수 |
김경민 | 2 |
김명철 | 2 |
조기현 | 2 |
최효정 | 2 |
... | ... |
20 rows selected
SELECT STUDENT_NAME AS 동일이름,
COUNT(*) AS "동명인 수"
FROM TB_STUDENT
GROUP BY STUDENT_NAME
HAVING COUNT(*) > 1;
17.
SELECT STUDENT_NAME AS "학생이름",
STUDENT_NO AS "학번",
STUDENT_ADDRESS AS "거주지 주소"
FROM TB_STUDENT
WHERE ( STUDENT_ADDRESS LIKE '%강원도%'
OR STUDENT_ADDRESS LIKE '%경기도%' )
AND TO_CHAR(ENTRANCE_DATE, 'RRRR') LIKE '19%'
ORDER BY 1 ;
5. 주소지가 강원도나 경이도인 학생들 중 1900년대 학번을 가진 학생들의 이름과 학번, 주소를 이름의 오름차순으로 화면에 출력하시오.
단, 출력헤더에는 "학생이름","학번", "거주지 주소" 가 출력되도록 한다.
학생이름 | 학번 | 거주지주소 |
김계영 | 9919024 | 경기도 용인시 수지구 풍덕천2동 신정마을 임광 305-1703 |
박규상 | 9931111 | 경기도 서암시 분당구 탑마을 경남아파트 710-1302 |
송근우 | 9931165 | 경기도 부천시 원미구 중2동 386-1186 복사골아파트 1701-405 |
송점삼 | 9995148 | 경기도 남양주시 도농도 부영그린타운 306-2304 |
이기범 | 9931248 | 경기도 근포시 산본동 한양목련아파트 1224-2002 |
이춘평 | 9811176 | 경기도 고양시 일산구 1107 후곡마을 1209-705 |
전기성 | 9931277 | 경기도 용인시 수지구 풍덕천동 239-3 중앙빌딩 3층 |
정기웅 | 9931285 | 경기도 성남시 분당구 야탑동 기산아파트 307-801 |
조기환 | 9931312 | 경기도 시흥시 매화동 194-1 동진아파트 1-305 |
SELECT PROFESSOR_NAME,
PROFESSOR_SSN
FROM TB_PROFESSOR
JOIN TB_DEPARTMENT USING (DEPARTMENT_NO)
WHERE DEPARTMENT_NAME = '법학과'
ORDER BY 2;
6. 현재 법학과 교수 중 가장 나이가 많은 사람부터 이름을 확인할 수 있는 SQL 문장을 작성하시오.
(법학과의 '학과 코드'는 학과 테이블 (TB_DEPARTMENT)을 조회해서 찾아 내도록 하자 단, Join사용하기 USING 절로 처리할것
PROFESSOR_NAME | PROFESSOR_SSN |
홍남수 | 540304-1112251 |
김선희 | 551030-2159000 |
임진숙 | 640125-1143548 |
이미경 | 741016-2103506 |
SELECT CLASS_NAME,
DEPARTMENT_NAME
FROM TB_CLASS
JOIN TB_DEPARTMENT USING (DEPARTMENT_NO)
ORDER BY 2;
20.
SELECT CLASS_NAME,
PROFESSOR_NAME
FROM TB_CLASS
JOIN TB_CLASS_PROFESSOR USING(CLASS_NO)
JOIN TB_PROFESSOR USING(PROFESSOR_NO)
반응형
'IT' 카테고리의 다른 글
numpProject 2차원 배열 행렬 생성 (0) | 2023.06.09 |
---|---|
numpProject 1차원배열_백터 삭제 _추가 및 삽입 (0) | 2023.06.09 |
SQL 문제_B & 마크다운 서식 (0) | 2023.06.09 |
SQL 문제 (1) | 2023.06.09 |
case문 문제해결 (0) | 2023.06.09 |