Student 테이블, Point 테이블을 작성하고 다음과 같은 기초정보를 테이블에 저장할 때 SQL 문장을 사용한다
테이블 스키마
Student (num number(PK), id varchar2, pwd varchar2, name varchar2, phone varchar2, email varchar2)
Point (num number(FK), subject1 number, subject2 number, subject3 number)
작성할 SQL문장
- 위의 테이블을 생성하는 SQL문장과 그 실행결과를 제출하시오
- 위의 테이블에 각각 6행의 데이터를 입력하는 SQL문장과 그 실행결과를 제출하시오
- subject1의 최고점수를 기록한 플레이어의 번호와 이름, 점수를 가져오는 SQL문장을 작성한다
- subject2의 1위~5위까지의 이름과 점수를 가져오는 SQL문장을 작성한다
- 5번 학생의 전화번호를 123-4567-8901로 변경하는 SQL 문장을 작성한다
- subject3의 점수가 가장 저조한 학생의 점수기록을 삭제하는 SQL문장을 작성한다
테이블 생성
CREATE TABLE student
(
num number PRIMARY KEY,
id varchar2(20),
pwd varchar2(20),
name varchar2(20),
phone varchar2(20),
email varchar2(20)
);
CREATE TABLE point
(
num number REFERENCES student(num),
subject1 number,
subject2 number,
subject3 number
);
2개의 테이블에 기본 데이터 입력
INSERT INTO student VALUES (11, 'kang', 'kang', 'kanggildong', '010-1111-2222', 'kang@naver.com');
INSERT INTO student VALUES (12, 'kim', 'kim', 'kimgildong', '010-1111-2222', 'kim@naver.com');
INSERT INTO student VALUES (13, 'park', 'park', 'parkgildong', '010-1111-2222', 'parkg@naver.com');
INSERT INTO student VALUES (14, 'lee', 'lee', 'leegildong', '010-1111-2222', 'lee@naver.com');
INSERT INTO student VALUES (15, 'choi', 'choi', 'choigildong', '010-1111-2222', 'choi@naver.com');
INSERT INTO student VALUES (16, 'hong', 'hong', 'honggildong', '010-1111-2222', 'hongg@naver.com');
INSERT INTO point VALUES (11, 10,15,20);
INSERT INTO point VALUES (12, 25,30,35);
INSERT INTO point VALUES (13, 50,45,40);
INSERT INTO point VALUES (14, 60,55,70);
INSERT INTO point VALUES (15, 85,75,80);
INSERT INTO point VALUES (16, 50,65,90);
subject1의 최고점수를 기록한 플레이어의 번호와 이름, 점수를 가져오는 SQL문장을 작성한다
SELECT p.num, name, subject1
FROM student p INNER JOIN point s
ON p.num=s.num
WHERE p.num =
(
SELECT num FROM point WHERE subject1=
(
SELECT MAX(subject1) FROM point
)
);
subject2의 1위~5위까지의 이름과 점수를 가져오는 SQL문장을 작성한다
SELECT name, subject2 FROM
(
SELECT name, subject2, ROWNUM rn FROM
(
SELECT * FROM student p INNER JOIN point s
ON p.num = s.num ORDER BY s.subject2
)t1
)
WHERE rn BETWEEN 1 AND 5;
15번 이용자의 전화번호를 010-1111-2222로 변경하는 SQL 문장을 작성한다
UPDATE student SET phone='010-1111-2222' WHERE num=15;
subject3의 점수가 가장 저조한 이용자의 점수기록을 삭제하는 SQL문장을 작성한다
DELETE FROM point WHERE subject3=
(
SELECT MIN(subject3) FROM point
);