select ename, hiredate, sal, dname, loc
from emp, dept
where emp.deptno=dept.deptno;
-- 서브쿼리(스칼라 서브쿼리)
select ename, hiredate, sal,
(select dname from dept where deptno=emp.deptno) dname,
(select loc from dept where deptno=emp.deptno) loc
from emp;
-- 조인(테이블 3개 연결)
select ename, hiredate, sal, dname, loc, grade
from emp, dept, salgrade
where emp.deptno=dept.deptno
and sal between losal and hisal;
-- 서브쿼리(스칼라 서브쿼리)
select ename, hiredate, sal,
(select dname from dept where deptno=emp.deptno) dname,
(select loc from dept where deptno=emp.deptno) loc,
(select grade from salgrade where emp.sal between losal and hisal) grade
from emp;
-- 인라인뷰(table 대신 select 문장 사용)
select ename, sal, hiredate, job, mgr
from (select ename, sal, hiredate, job, mgr from emp)
select ename, deptno, job, hiredate
from (select ename, job, hiredate, sal, comm, deptno from emp);
select ename, dname, loc
from (select ename, dname, loc from emp, dept where emp.deptno=dept.deptno);
select * from book;
select * from orders;
select * from customer;
-- 가장 비싼 책 가격
select max(price)
from book;
-- 35000원 책 제목
select bookname
from book
where price=35000;
-- 35000원 책 제목(서브쿼리)
select bookname
from book
where price=(select max(price) from book);
-- 주문한 사람을 출력
select name
from customer
where custid in(1, 2, 3, 4);
-- 주문한 사람을 출력
select name
from customer
where custid in(select distinct custid from Orders);
-- 출판사가 대한미디어인 책 넘버
select bookid
from book
where publisher='대한미디어';
-- 책 넘버가 3, 4인 고객아이디
select custid
from orders
where bookid in(3,4);
-- 고객번호가 1인 사람
select name
from customer
where custid=1;
-- 고객번호가 1인 사람
select name
from customer
where custid
in(select custid from orders where bookid in
(select bookid from book where publisher='대한미디어'));
데이터 정의 언어 (DDL)
**SQL
DQL: 질의 언어(검색) - SELECT
DML: 조작 언어 - INSERT, UPDATE, DELETE
DDL: CREATE, ALTER, DROP, TRUNCATE, RENAME
DCL: GRANT, REVOKE
TCL: COMMIT, ROOLLBACK
**DDL(Table, View, Sequence, Function, Procedure, Trigger)
Table: 데이터를 저장하는 공간(이차원 배열) -Column, Row
View: 가상테이블(보안, SQL 문장을 최소화)
Sequence: 자동 증가 번호
Function: 리턴형을 가지고 있는 함수 - MAX(), COUNT()..
**Procedure: 리턴형이 없는 함수 - Call By Reference
Trigger: 다른 테이블에 영향 (테이블 <=> 테이블)
용어
PRIMARY KEY : 중복이 없는 데이터
NOT NULL: 반드시 입력 값 추가 (* 필요 입력)
UNIQUE: 중복이 없는 데이터(NULL 허용) - 후보키
:전화번호, 이메일 - PRIMARY KEY를 알 수 없는 경우
PRIMARY KEY: NOT NULL + UNIQUE
CHECK: 지정된 데이터만 첨부 - 성별, 부서명, 근무지(select, radio)
FOREIGN KEY: 외래키, 참조키(PRIMARY KEY에 있느 데이터만 참조)
select owner, constraint_name, constraint_type, status
from user_constraints
where table_name='EMP';
'DB > Oracle' 카테고리의 다른 글
오라클 DB 연동 후 데이터 출력 (0) | 2022.07.01 |
---|---|
CONSTRAINTS (0) | 2022.06.30 |
수업 35일차 - 일반 함수, group by/having, join (0) | 2022.06.22 |
수업 34일차 - 문자 함수, 숫자 함수, 날짜 함수 (0) | 2022.06.21 |
INNER JOIN, OUTER JOIN(LEFT, RIGHT, FULL) (0) | 2022.06.18 |