[JOIN]
; 관계형 데이터베이스 시스템 (Oracle, MySQL(Maria), SQL-Server(MS-SQL)... )
관계형 데이터베이스 : 테이블-테이블 연관관계를 맺고 있다.
ex) emp-dno : 사원이 어느 부서에 소속되어 있는지..
emp의 dno정보를 가지고 연관성 있는 dept 테이블에서 연관성을 찾아야 한다.
dno라는 컬럼으로 연관을 맺고 있다.
dept-dno : 사원번호
김연아 02 - 02 회계부서
1) 각 사원의 근무 부서를 검색한다
SELECT dno 부서번호, eno 사번, ename 이름
FROM emp;
--등가조인 ; 같은 값을 연결시켰다.
-- : 두 테이블의 공통 컬럼을 = 연산자로 조건을 부여한 것
SELECT eno 사번, ename 이름, emp.dno 부서번호, --(=dept.dno 부서번호)
dept.dno 부서번호, dname 부서명
FROM emp, dept --dno가 공통(이름, 자료형 모두 같아야 함. dno: varchar2로 같음)
WHERE emp.dno = dept.dno;
2) 광주에서 근무하는 직원의 명단을 검색 (부서번호와 부서명도)
SELECT loc 위치, dept.dno 부서, dname 부서명, eno 사번, ename 사원명
FROM emp, dept
WHERE emp.dno=dept.dno
AND loc='광주';
SELECT loc 위치, d.dno 부서, dname 부서명, eno 사번, ename 사원명
FROM emp e, dept d
WHERE e.dno=d.dno
AND loc='광주';
-- 비등가 조인
3) 각 직원의 급여를 10% 인상한 경우 급여 등급을 검색한다.
SELECT eno 사번, ename 이름,
sal*1.1 "인상 급여", grade 등급
FROM emp, salgrade
WHERE sal*1.1 BETWEEN losal AND hisal;
-- 잘못된 조인(Cross Join)
: 조인 조건이 없으면 Cross Join 이라고 하며, 테이블들의 모든 행이 1:1로 교차하게 된다.
결과에 의미가 없다.
SELECT d.dno, dname, e.dno, ename
FROM dept d, emp e;
연습문제
--1) 송강 교수가 강의하는 과목을 검색한다 -김가경
SELECT p.pno 교수번호, pname 이름, cname "과목 이름"
FROM professor p, course c
WHERE p.pno = c.pno
AND pname= '송강';
--2) 화학 관련 과목을 강의하는 교수의 명단을 검색한다
SELECT p.pno 교수번호, pname 이름, orders 직위, cname 과목이름
FROM professor p, course c
WHERE cname LIKE '%화학%' AND p.pno=c.pno;
--3) 학점이 2학점인 과목과 이를 강의하는 교수를 검색한다
SELECT p.pno 교수번호, pname 교수이름, cname 과목이름
FROM course c, professor p
WHERE st_num='2' AND p.pno=c.pno;
--4) 화학과 교수가 강의하는 과목을 검색한다
SELECT p.pno 교수번호, pname 교수이름, cname 과목이름
FROM professor p, course c
WHERE p.pno=c.pno
AND cname LIKE '%화학%';
--5) 화학과 1학년 학생의 기말고사 성적을 검색한다
SELECT s.sno 학번, major 학과, syear 학년, sname 이름, cname 과목이름, result 성적
FROM student s, score sc, course
WHERE syear ='1' AND major= '화학'
AND s.sno=sc.sno;
--6) 일반화학 과목의 기말고사 점수를 검색한다
SELECT
FROM
WHERE v
--7) 화학과 1학년 학생의 일반화학 기말고사 점수를 검색한다
--
--
--8) 화학과 1학년 학생이 수강하는 과목을 검색한다
--
--
--9) 유기화학 과목의 평가점수가 F인 학생의 명단을 검색한다
--
--
'DB > Oracle SQL Developer' 카테고리의 다른 글
<19, 20> Natural Join / Using Join (0) | 2020.12.02 |
---|---|
<17, 18> 자기 참조 조인(Self Join ) / 외부 조인(Outer Join) (0) | 2020.12.02 |
<11, 12 , 13, 14> 관계연산자 AND, OR / LIKE / BETWEEN, IN (0) | 2020.12.02 |
<1 ~ 10 > Oracle SQL 기초 ~ WHERE 절 (0) | 2020.12.02 |
Oracle SQL 1 (0) | 2020.11.27 |
댓글