CREATE TABLE STUDENT (
Sno int(4) NOT NULL,
Sname varchar(50) NOT NULL,
SYear int(4) NOT NULL,
Dept varchar(50) NOT NULL,
PRIMARY KEY (Sno)
) ENGINE=InnoDB DEFAULT CHARSET=euckr COMMENT='2023년 63번'
//
INSERT INTO STUDENT (Sno,Sname,SYear,Dept)
VALUES
(1, 'Tom', 2, 'Computer'),
(2, 'Alice', 3, 'electronics'),
(3, 'Bob', 4, 'Chemistry'),
(4, 'Sam', 2, 'Computer'),
(5, 'Kim', 3, 'electronics'),
(6, 'Park', 4, 'Chemistry'),
(7, 'Cho', 2, 'Computer'),
(8, 'Hong', 3, 'electronics');
CREATE TABLE ENROLL (
Sno int(4) NOT NULL,
Cno varchar(50) NOT NULL,
Grade int(4) NOT NULL,
PRIMARY KEY (Sno,Cno)
) ENGINE=InnoDB DEFAULT CHARSET=euckr COMMENT='2023년 63번'
//
INSERT INTO ENROLL (Sno,Cno,Grade)
VALUES
(1, 'C411', 95),
(1, 'C412', 32),
(3, 'C413', 55),
(4, 'C412', 77),
(5, 'C412', 69),
(5, 'C413', 99),
(7, 'C411', 75),
(8, 'C413', 88);
① SELECT Sname, Dept, Grade
FROM STUDENT JOIN ENROLL WITH(Sno)
WHERE ENROLL.Cno = 'C413';
=> join 시 WITH(Sno) 를 사용하면 문법적 에러 발생
WITH(Sno) 를 제거해도 원하는 쿼리 결과가 아님
② SELECT Sname, Dept, Grade
FROM STUDENT NATURAL JOIN ENROLL USING(Sno)
WHERE ENROLL.Cno = 'C413';
=> NATURAL JOIN 시 USING(Sno) 를 사용하면 문법적 에러 발생
③ SELECT Sname, Dept, Grade
FROM STUDENT NATURAL JOIN ENROLL ON
(STUDENT.Sno = ENROLL.Sno)
WHERE ENROLL.Cno = 'C413‘;
=> NATURAL JOIN 시 ON (STUDENT.Sno = ENROLL.Sno) 를 사용하면 문법적 에러 발생
④ SELECT Sname, Dept, Grade
FROM STUDENT JOIN ENROLL ON (STUDENT.Sno =
ENROLL.Sno)
WHERE ENROLL.Cno = 'C413';
------------------------------------------------------------------------------
NATURAL JOIN 과 JOIN 의 차이
------------------------------------------------------------------------------
'정보시스템감리사_데이터베이스' 카테고리의 다른 글
정보시스템 감리사 2022년 57번 문제 (0) | 2023.06.08 |
---|---|
정보시스템 감리사 2023년 65번 문제 (0) | 2023.06.02 |
정보시스템 감리사 2023년 62번 문제 (0) | 2023.06.02 |
정보시스템 감리사 2020년 63번 문제 (0) | 2023.06.02 |
2020년 62번 문제 (0) | 2023.06.02 |