일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- HTTP Status 500
- jQuery
- JSP
- rownum
- SQL
- oracle
- tomcat
- HTTP Status 404
- 성적프로그램
- Bootstrap
- Java
- Oracle DB
- sql developer
- group by
- 과정평가형
- CRUD
- HTML
- 이클립스
- 부트스트랩
- distinct
- 한글 인코딩
- 모조칼럼
- JavaScript
- 답변형 게시판
- git
- 제약조건
- github
- alias
- ||
- Oracle SQL
초급의 끄적거림
[SQL] join 1 본문
[join (조인)]
⊙ 두 개 이상의 테이블을 결합하여 데이터를 추출하는 기법
⊙ 두 테이블의 공통값을 이용하여 칼럼을 조합하는 수단
⊙ 형식
ANSI SQL문 | Oracle SQL문 |
select 칼럼명 from 테이블명 join 테이블 2 on 조건절; |
select 칼럼명 from 테이블1, 테이블2 where 조건절; |
⊙ 기존에 있던 dept 와 emp 테이블 삭제 후 다시 만들기
drop table dept; drop table emp; |
1) dept 테이블 만들기
create table dept ( deptno number(7) primary key ,dname varchar(20) ,loc varchar(10) ); |
2) emp 테이블 만들기
⊙ 직원테이블
create table emp(
empno number(4) primary key
,ename varchar2(10)
,job varchar2(9)
,mgr number(4)
,hiredate date
,sal number(7,2)
,comm number(7,2)
,deptno number(7) references dept(deptno) --참조하려는 부모의 자료형과 칼럼명(deptno number(7))이 자식의 자료형과 칼럼명(deptno number(2))이 동일한게 좋음, 특히 자료형은 동일하게
);
⊙ 직원테이블 행추가
insert into emp(empno, ename, job, mgr, hiredate, sal, deptno)
values(7369, '개나리', '사원', 7902, '2000-12-17', 200, 20);
insert into emp(empno, ename, job, mgr, hiredate, sal, deptno)
values(7499, '진달래', '주임', 7698, '2001-12-15', 360, 20);
insert into emp(empno, ename, job, mgr, hiredate, sal, deptno)
values(7521, '라일락', '주임', 7698, '2001-02-17', 355, 30);
insert into emp(empno, ename, job, mgr, hiredate, sal, deptno)
values(7654, '손흥민', '과장', 7839, '2002-01-11', 400, 30);
insert into emp(empno, ename, job, mgr, hiredate, sal, deptno)
values(7698, '박지성', '주임', 7698, '2000-07-12', 325, 20);
insert into emp(empno, ename, job, mgr, hiredate, sal, deptno)
values(7782, '김연아', '사원', 7698, '2001-12-17', 225, 10);
insert into emp(empno, ename, job, mgr, hiredate, sal, deptno)
values(7778, '무궁화', '사원', 7839, '2005-11-14', 200, 10);
insert into emp(empno, ename, job, mgr, hiredate, sal, deptno)
values(7839, '홍길동', '부장', 7566, '2006-06-17', 450, 20);
insert into emp(empno, ename, job, mgr, hiredate, sal, deptno)
values(7844, '송강호', '과장', 7566, '2018-09-17', 400, 30);
insert into emp(empno, ename, job, mgr, hiredate, sal, deptno)
values(7876, '정우성', '대표', 7839, '2004-09-09', 500, 30);
insert into emp(empno, ename, job, mgr, hiredate, sal, deptno)
values(7900, '김혜수', '사원', 7902, '2001-12-03', 200, 20);
select * from emp; - 전체 조회
3) ANSI SQL문과 Oracle SQL문을 활용하여 조인하기
⊙ 두 개의 테이블(emp, dept)이지만 부서코드(deptno)를 기준으로 하나의 테이블로 보이게 함
⊙ ANSI SQL문과 Oracle SQL문의 결과가 동일
ANSI SQL문 | Oracle SQL문 |
select * from emp join dept on emp.deptno=dept.deptno; |
select * from emp, dept where emp.deptno=dept.deptno; |
'DB > Oracle' 카테고리의 다른 글
[SQL] 학사관리프로그램 만들기 (0) | 2019.07.26 |
---|---|
[SQL] case when ~ then end 구문 / decode() 함수 (0) | 2019.07.25 |
[SQL] Index (0) | 2019.07.24 |
[SQL] View (0) | 2019.07.23 |
[SQL] 서브쿼리 (Sub Query) (0) | 2019.07.23 |