티스토리 뷰
SELECT problem
안녕하세요 : )
shiny ocean 입니다.
대학교에서 데이터 베이스 과목을 수강하며 담당교수님께서 SELECT와 여러가지 옵션절 WHERE AS AND LIKE 등을 이용해 문제를 5개 정도 내고 정답을 제시하는 과제를 내주셨습니다.
교수님께서 테이블을 5가지 정도 제시해 주셨지만 몰랐습니다... 허허 그래서 테이블을 제가 두가지정도 짜서 처음에 문제를 냈었습니다...
어쨋든 결과적으로 5가지 테이블을 이용한 15문제를 제출하게 되었고 그 내용을 포스팅을 통해 기록하고자 합니다.
문제)
1번. DB이름을 ‘karaokeDB’로 하여 데이터베이스를 생성하고 use 하는 sql을 작성하시오.
2번. 그림1과 같은 형식의 테이블을 선언하는 sql 작성하고 desc를 이용해 선언된 테이블의 정보를 출력하시오.
(테이블 명은 ‘SONG_INFO_TABLE’로 지정)
(각 컬럼의 데이터 타입은 위 그림과 같은 데이터들이 들어갈수 있도록 자유롭게 선언하되, SONG_ID 중복데이터 삽입불가, SINGER_NAME은 not null)
3번. 그림1과 같이 데이터가 삽입된 테이블을 완성하는 sql을 작성하시오.
4번. 그림1에서 가수의 이름이 drake인 노래의 이름만 모두 조회하는 sql을 작성하시오.
5번. 그림1에서 UPLOAD_DATE가 21년 6월 1일 이전인 데이터 중 가수 이름이 justin bieber인 데이터의 SONG_ID만 모두 조회하는 sql을 작성하시오
6번. 그림2와 같은 select 결과가 나올수 있도록 테이블을 만들고 조회하는 sql을 작성하시오.
(PRIMARY_ID 컬럼을 primary key로 설정)
7번. 그림으로 제시된 두가지 테이블은 SINGER_ID 컬럼과 SINGER_NAME 컬럼이 중복요소이다. 중복요소를 적절히 이용하여 나이가 32세인 가수의 노래들만 한 컬럼으로 조회하는 sql을 작성하시오
8번. 그림으로 제시된 두가지 테이블은 SINGER_ID 컬럼과 SINGER_NAME 컬럼이 중복요소이다. 중복요소를 적절히 이용하여 UPLOAD_DATE 가 210101 보다 큰 모든 데이터들에 대하여 SONG_INFO_TALBE의 모든 컬럼과 SINGER_INFO_TABLE의 AGE컬럼을 붙여서 조회하는 sql을 작성하시오.
쿼리 실행 결과는 다음과같습니다.)
9번. 그림 1의 테이블에 대하여 UPLOAD_DATE가 210101 보다 큰 데이터 데이터들중 SINGER_NAME 컬럼만 중복을 제거하여 조회하는 sql을 작성하시오.
10번. 9번의 결과에서 SINGER_NAME 에 ‘lil’이라는 단어가 들어가는 사람을 제외하고 조회하는 sql을 작성하시오.
11번. 예산이 60000.00 을 넘는 학과중 p로 시작하는 빌딩명을 갖는 학과의 학과명만 한열로 조회하는 sql을 작성하시오.
12번. 예산이 80000.00을 넘는 학과들이 있는 빌딩이름을 중복없이 한열로 조회하는 sql을 작성하시오
13번. 3128 강의실에서 봄에 진행한 코스중 sec_id가 1인 강의의 모든 데이터를 조회하는 sql을 작성하시오.
14번. course_id를 컬럼으로 갖는 세개의 테이블(section, teaches, course) 이용해 컬럼의 중복없이 course_id 가 CS로시작하는 모든 데이터를 조회하는 sql 작성하시오. 이때 section, teaches, course 테이블의 모든 컬럼이 중복없이 조회되어야 하며, teaches 테이블의 ID 컬럼은 teaches_id 라는 컬럼명으로 변경하여 조회
15번. Brandt 강사를 좋아하는 한 학생이 있다 가정해 보자 그 학생을 위해 Brandt가 진행하는 course에 대해 강사이름,코스아이디,타이틀 세가지 컬럼을 조회하는 sql을 작성하시오
정답)
11. SELECT dept_name FROM department WHERE budget>60000 AND building LIKE 'p%';
12. SELECT DISTINCT building FROM department WHERE budget>80000;
13. SELECT * FROM section WHERE semester = 'spring' AND sec_id =1 AND room_number = 3128;
14. SELECT sec.*,tea.ID AS teaches_id,cos.title,cos.dept_name,cos.credits
FROM course AS cos, section AS sec, teaches AS tea
WHERE cos.course_id = sec.course_id AND sec.course_id = tea.course_id
AND cos.course_id = 'CS-101';
15. SELECT ins.name, cos.course_id, cos.title FROM instructor AS ins, teaches AS tea, course AS cos WHERE ins.ID = tea.ID AND tea.course_id = cos.course_id AND ins.name ='Brandt';
'Database > MySQL' 카테고리의 다른 글
Mysql - Todolist 를 위한 TodoDB구축 (0) | 2021.05.14 |
---|---|
MySQL - python3와 연동 (3) | 2021.05.11 |
MySQL - 노래방DB 사용자용 View (0) | 2021.05.10 |
MySQL - 파일을 데이터로 포함시킨 노래방DB 구현 (0) | 2021.05.09 |
MySQL - 리눅스 환경에서 클라이언트 접속 (0) | 2021.05.08 |