Download presentation
Presentation is loading. Please wait.
1
Database & Internet Computing Laboratory 한 양 대 학 교
Oracle SQL*Plus 실습 Database & Internet Computing Laboratory 한 양 대 학 교 Database & Internet Computing Laboratory, 2007
2
Database & Internet Computing Laboratory, 2007
목차 기본적인 SQL SELECT 문 작성 데이터 제한과 정렬 여러 테이블로 부터 여러 컬럼 표시 그룹 함수를 사용한 데이터 모임 서브 쿼리 Database & Internet Computing Laboratory, 2007
3
Database & Internet Computing Laboratory, 2007
SQL Statement 문장 설명 SELECT 데이터베이스로부터 데이터를 검색함 INSERT UPDATE DELETE MERGE 새로운 데이터를 추가하고, 이미 존재하는 데이터를 변경하고, 테이블에서 원하지 않는 자료를 삭제함. DML(Data Manipulation Language. 데이터 조작 언어) CREATE ALTER DROP RENAME TRUNCATE 테이블을 생성하고, 변경하고, 삭제하고, 테이블 이름을 변경하고, 테이블의 자료를 삭제함. DDL(Data Definition Language. 데이터 정의 언어). COMMIT ROLLBACK SAVEPOINT DML문장으로 생성된 변화를 관리함. 데이터에 대한 변화는 논리적인 트랜잭션으로 함께 그룹화될 수 있다. GRANT REVOKE 오라클 데이터베이스와 그 내부의 구조에 대한 접근 권한을 주거나 박탈함. DCL(Data Control Language. 데이터 제어 언어). Database & Internet Computing Laboratory, 2007
4
Database & Internet Computing Laboratory, 2007
Oracle Datatype Oracle 테이블 생성시 각 column에 지정할 수 있는 데이터 타입들 DATA TYPE 설 명 VARCHAR2(n) 가변 길이 문자 데이터(1~4000byte) CHAR(n) 고정 길이 문자 데이터(1~2000byte) NUMBER(p,s) 전체 p자리 중 소수점 이하 s자리 DATE 날짜(7Byte), 고정 길이 필드로 저장 LONG 가변 길이 문자 데이터(1~2Gbyte) CLOB 단일 바이트 가변 길이 문자 데이터(1~4Gbyte) RAW(n) n Byte의 원시 이진 데이터(1~2000), 크기가 적은 이진 데이터의 저장에 사용 LONG RAW 가변 길이 원시 이진 데이터(1~2Gbyte) BLOB 가변 길이 이진 데이터(1~4Gbyte) BFILE 가변 길이 외부 파일에 저장된 이진 데이터(1~4Gbyte) Database & Internet Computing Laboratory, 2007
5
Database & Internet Computing Laboratory, 2007
1. 기본적인 SQL SELECT 문 작성 Database & Internet Computing Laboratory, 2007
6
Database & Internet Computing Laboratory, 2007
기본적인 Select 문 SELECT * | { [DISTINCT] column | expression [alias], …} FROM table SQL문 작성 SQL 문은 대소문자를 구별하지 않는다. SQL 문은 하나 이상의 줄로 표현될 수 있다. 키워드는 생략되거나 여러 줄로 분리될 수 없다. 절(Clause)은 일반적으로 줄을 분리하여 표시한다. 들여쓰기(Indent)는 가독성을 향상시키기 위해 사용된다. 산술 연산자 + , - , * , / 산술연산자는 FROM절을 제외한 SQL문의 어떤 절이라도 사용 가능 하다. Ex> SELECT ename, sal, sal + 300 FROM emp; Database & Internet Computing Laboratory, 2007
7
Database & Internet Computing Laboratory, 2007
컬럼 별칭 정의 컬럼 별칭: 컬럼의 제목을 변경 계산식과 함께 사용될 경우 유용 Ex1> SELECT ename AS name, comm commission FROM emp; Ex2> SELECT ename “Name”, sal*12 “Annual Salary” FROM emp; Database & Internet Computing Laboratory, 2007
8
Database & Internet Computing Laboratory, 2007
결합 연산자 결합 연산자: 컬럼과 다른 컬럼의 문자열을 결합 2개의 수직바(||)로 표현 문자열로 된 결과 컬럼을 생성 Ex1> SELECT ename || empno AS “Employees” FROM emp; Database & Internet Computing Laboratory, 2007
9
Database & Internet Computing Laboratory, 2007
중복된 자료 Ex> SELECT deptno FROM emp; 중복된 자료 제거 Ex> SELECT DISTINCT deptno FROM emp; Database & Internet Computing Laboratory, 2007
10
Database & Internet Computing Laboratory, 2007
2. 데이터 제한과 정렬 Database & Internet Computing Laboratory, 2007
11
Database & Internet Computing Laboratory, 2007
WHERE 절의 사용 SELECT * | {[DISTINCT] column / expression [alias ], …} FROM table WHERE condition(s); 조건(condition)은 컬럼 이름, 표현식, 상수, 비교 연산자로 구성된다. 비교 연산자 Database & Internet Computing Laboratory, 2007
12
Database & Internet Computing Laboratory, 2007
다른 비교 연산자 논리 연산자 Database & Internet Computing Laboratory, 2007
13
Database & Internet Computing Laboratory, 2007
ORDER BY 절 ASC: 오름차순 정렬 (Default) DESC: 내림차순 정렬 기본 정렬 순서는 오름차순이다. Null 값은 오른차순 정렬에는 마지막에, 내림차순 정렬에는 처음에 표시된다. SELECT expr FROM table [WHERE condition(s)] [ORDER BY { column, expr } [ASC|DESC]]; Database & Internet Computing Laboratory, 2007
14
Database & Internet Computing Laboratory, 2007
Ex> SELECT empno, ename, sal*12 annsal FROM emp ORDER BY annsal; Ex> SELECT ename, deptno, sal FROM emp ORDER BY deptno, sal DESC; Database & Internet Computing Laboratory, 2007
15
Database & Internet Computing Laboratory, 2007
3. 여러 테이블로 부터 여러 컬럼 표시 Database & Internet Computing Laboratory, 2007
16
Database & Internet Computing Laboratory, 2007
조인(Join) 둘 이상의 테이블을 연결하여 데이터를 검색하는 방법 Equijoin (동등 조인, 내부 조인) 조건절 Equality Condition(=)에 의한 조인 Non-equijoin 테이블의 어떤 컬럼도 조인할 테이블의 컬럼에 일치하지 않을 때 사용 동등(=)이외의 연산자를 가짐 (BETWEEN AND, IS NULL, IS NOT NULL, IN, NOT IN) Ex> SELECT emp.ename, dept.dname FROM emp, dept WHERE emp.deptno = dept.deptno; Ex> SELECT emp.ename, dept.dname FROM emp, dept WHERE emp.sal BETWEEN 3000 AND 4000; Database & Internet Computing Laboratory, 2007
17
Database & Internet Computing Laboratory, 2007
Self join Equijoin과 동일하지만 하나의 테이블에서 조인이 발생 같은 테이블에 대해 두 개의 별칭을 지정함으로써 사용 Outer join Equijoin을 사용하려면 두 개의 테이블에서 두 개의 컬럼에 공통된 값이 존재해야만 함 Outerjoin은 위의 조인 조건을 만족하지 못하는 행들을 보기 위해서 사용 조인 시킬 값이 없는 조인측에 “(+)”를 표시 Ex> SELECT a.ename, b.sal FROM emp a, emp b WHERE a.empno = b.empno; Ex> SELECT DISTINCT(a.deptno), b.deptno FROM emp a, dept b WHERE a.deptno(+) = b.deptno; Database & Internet Computing Laboratory, 2007
18
Database & Internet Computing Laboratory, 2007
4. 데이터 제한과 정렬 Database & Internet Computing Laboratory, 2007
19
Database & Internet Computing Laboratory, 2007
그룹 함수 문법 종류 SELECT FROM [WHERE [GROUP BY [ORDER BY [column,] group function(column) , … table condition ] column] column] ; 중복불가 중복허용,default Database & Internet Computing Laboratory, 2007
20
Database & Internet Computing Laboratory, 2007
Example Database & Internet Computing Laboratory, 2007
21
Database & Internet Computing Laboratory, 2007
HAVING 절 포함된 그룹 함수 SELECT FROM [WHERE [GROUP BY [HAVING [ORDER BY [column,] group function(column) , … table condition ] group_by_expression] group_condition] column] ; HAVING : Alias 사용불가 Database & Internet Computing Laboratory, 2007
22
Database & Internet Computing Laboratory, 2007
5. 서브쿼리 Database & Internet Computing Laboratory, 2007
23
Single-Row Subqueries Database & Internet Computing Laboratory, 2007
서브 쿼리 문법 사용법 서브쿼리는 오직 GROUP BY절에서는 사용될 수 없다. SELECT FROM WHERE select_list table expr operator (SELECT select_list FROM table) ; Single-Row Subqueries Multi-Row Subqueries = > < IN > ANY , > ALL < ANY , < ALL Database & Internet Computing Laboratory, 2007
24
Database & Internet Computing Laboratory, 2007
단일 데이터 서브 쿼리 Ex) SELECT FROM WHERE AND ename, job, sal emp job = (SELECT job FROM emp WHERE empno = 7499) Salary > (SELECT sal WHERE empno = 7369) ; SALESMAN 800 Database & Internet Computing Laboratory, 2007
25
Database & Internet Computing Laboratory, 2007
26
Database & Internet Computing Laboratory, 2007
복수 데이터 서브 쿼리 추가후 SELCET empno, ename, job, sal FROM emp WHERE sal < any (SELECT sal WHERE job = ‘SALESMAN’) AND job <> ‘SALESMAN’ ; 1600, 1250 SELCT empno, ename, job, sal FROM emp WHERE sal < all (SELECT sal FROM emp WHERE job = ‘SALESMAN’) AND job <> ‘SALESMAN’ ; 1600, 1250 Database & Internet Computing Laboratory, 2007
27
Database & Internet Computing Laboratory, 2007
서브 쿼리에서의 Null 값 SELECT ename From emp Where comm NOT IN (SELECT comm FROM emp WHERE empno = 7866); Where comm NOT IN WHERE empno = 7866 AND comm IS NOT NULL); 주의 : 서브 쿼리에 결과값에 NULL이 들어가면 메인 쿼리 에 대해 엉뚱한 결과 값이 나올 수 있다. 해결책 : IS NOT NULL 또는 NVL(manager_id, -1) Database & Internet Computing Laboratory, 2007
Similar presentations