Download presentation
Presentation is loading. Please wait.
1
Oracle7.0 (SQL & SQL PLUS) - 신입사원 교육자료 (주)대호네티즌 S/W개발팀
2
목 차 1. SQL 소개 2. 내부 Datatypes 3. Operators 4. Functions 5. Clauses 6. Join 7. Subquaries 8. Data 처리 9. Table Making 10. View 11. Index 12. 기타
3
1.SQL 소개 SQL(Structured Query Language, pronounced equel)은 ORACLE D/B환경에서 사용자나 개발자가 자료접근을 위해 반드시 사용해야 하는 명령들의 집단임. 1. SQL 역사 -. 관계형자료 모델은 1970대초 Dr.E.F.Codd에 의하여 처음으로 개발됨. -. SQL언어는 1970대 중반 IBM의 Pototype Relational Database Managment System에 의해 발전됨. -. 최초의 SQL언어는 (SEQUEL2)1976 IBM Journal of R&D에 의해 소개되었고, 년 ORACLE사가 상업용으로 이용 가능한 SQL의 실행을 소개함. -. SQL은 IBM의 D/B2와 SQL/DS에서도 실행됨. -. 현재 SQL은 광범위한 실행과 산업 구조화된 자료접근 언어로 이용됨. 2. SQL 표준 -. ANSI SQL은 Database Language SQL with Integrity Enhancement or ANSI SQL89에 relational database managment system의 표준으로 정의. -. 이는 ANSI X 을 대신함과 ANSI SQL Addendum1.에 소개된 무결성 강화를 내포함. -. ANSI는 ANSI X atabase Language Embeded SQL에 내장된 SQL의 정의를 표준으로 채택함. -. 거의 모든 관계형 자료시스템은 SQL형식을 제공하며 ANSI SQL89를 표준으로 사용함. 3. 비처리 언어 -. SQL은 비처리 언어임. -. 동일 시간대의 하나보다 많은 레코드 처리 -. 자료의 자동처리 제공 4. 모든 사용자를 위한 언어 -. SQL은 모든 종류의 사용자로부터 모든 종류의 자료활동에 이용. -. system administrators -. database administrators -. security administrators -. application programmers -. decision support system personnel -. many other types of end users -. SQL은 모든사용자에게 D/B구성이나 응용를 위한 명령문 제공. - 1 -
4
5. 통일된 언어 6. 내장된 SQL - querying data
- inserting, updating, and deleting rows in table - creating, replacing, altering, and dropping objects - controlling access to the database and its object - guaranteeing database consistency and integrity 6. 내장된 SQL -. 모든 SQL명령은 SELET,INSERT와 같이 SQL환경하 상호작용 도구들 안에서 이용 가능. -. PREPARE and OPEN은 control명령으로 처리 프로그래밍 언어안에서 표준SQL을 수행. -. 응용프로그램에 의해 호출되어 어떤 작업을 수행할수 있는 데이터베이스에 내장된 내장 프로시져 작성을 의미. -. 데이타베이스에 내장된 데이타베이스 시스템은 간단한 스크린과 메뉴 오브젝트를 완전한 툴 키트를 제공. - 2 -
5
2. 내부 Datatypes 1.Data types
(1)VARCHR2(size):변수길이인 영숫자 데이터. 최대 2000byte를 갖음. (2)NUMBER(p.s):Precision의 P와 Scale의 S를 포함. P지정시 1~38까지 S를 지정시 -84~127의 범위. (3)LONG:문자변수로 확장된 길이를 2GByte 또는 2^31-1까지 확장. (4)DATA:날자형 포함한 데이터 타입. 예) Jan BC - Dec AD (5)RAW(size):크기가 255Byte까지 가능한 Binary 데이터. (6)LONG RAW:크기가 Giga_Byte 데이터. (7)ROWID:Table에서 행의 고유한 Address를 나타내는 16진 문자열. (8)CHAR(size):1~255문자 사이의 길이를 갖는 영숫자 데이터. (9)MLSLABLE:O/S Label의 이진형식. - 3 -
6
3. Operators -. O/S label의 이진형식, 이 데이타형식은 주로 확인된 ORACLE에 사용.
-. 이 아이템을 orperands나 arguments라 부름 -. Operator는 특정한 charaters나 keyword로 묘사. (1) Arithmetic operators Operators 목 적 예 제 양수와 음수를 표현 SELECT * -. 단항(UNARY)연산 FROM orders WHERE qtysold = -1 * / 곱하기,나누기 표현 UPDATE emp -. 이항(BINARY)연산 SET sal = sal * 1.1 덧셈,뺄셈 표현 SELECT sal + comm FROM emp -. 이항(BINARY)연산 WHERE sysdate - hiredate > 365 (2) Charater operators Operators 목 적 예 제 || 문자 연결 SELECT Name is || ename FROM orders -.문자연결 연산결과는 두 문자열이 서로 다른 문자열로 두 문자열의 자료형식이 같은 CHAR형이면 결과는 이 형식의 제한된 255문자 국한되며, 만약 한쪽이 VARCHR2형이면 결과의 자료 형식은 VARCHR2형으로 제한 범위는 2000문자 형식을 따름. -.문자열 안의 공백문자는 이 연산자에 의하여 그대로 보존됨. - 4 -
7
(3) Comparision operators
= 일치함을 비교 SELECT * FROM emp WHERE sal = 1500 != , ^=, <> 불일치 비교 SELECT * FROM emp WHERE sal != 1500 >,<,>=,<= 비교연산시(대,소) IN 연산자 다음문장을 수용하는 어떤것이든 SELECT * FROM emp 충촉하는가를 비교 WHERE job IN ( AA , BB ) = ANY SELECT * FROM emp WHERE sal IN (SELECT sal FROM emp WHERE deptno = 30) NOT IN 위의 연산과 반대의 개념 SELECT * FROM emp 만약 어떤값이 NULL이면 FALSE로 WHERE sal NOT IN (SELECT sal 평가한다 FROM emp != ANY WHERE deptno = 30) SELECT * FROM emp WHERE job NOT IN ( AA , BB ) -. NULL 데이터타 베이스 용어에서 NULL은 필드에 데이타 베이스가 없다는 뜻임. 그것은 칼람이 제로거나 빈칸이라는 것을 의미하는 것이 아님. 제로나 빈칸은 값임. NULL은 어떤것도 그 필드안에 없다는 뜻임. 만일 Field = 9와 같은 비교식을 만들어 Field가 NULL이면, 그 비교식은 Unknow으로 돌아 올 것임. 이것은 조건이 불안하여 대부분의 SQL을 선호 하는 사람들은 Unknow를 FASLE로 바꾸어 특정연산자에게 IS NULL을 제공하여 NULL조건을 테스트함. 상당히 많은 로직버그를 추적할경우 NULL값을 비교하지말고 FALSE의 초기값으로 복구하는지 확인함. - 5 -
8
ANY ,SOME 리스트안이나 질의에대한 돌아옴으로 각각의 SELECT * FROM emp WHERE sal = ANY
Operators 목 적 예 제 ANY ,SOME 리스트안이나 질의에대한 돌아옴으로 각각의 SELECT * FROM emp WHERE sal = ANY 값과 비교.만약값이 Unknow일 경우 FALSE로 (SELECT sal FROM emp WHERE 판단 depyno = 30) ALL 리스트안이나 질의에대한 돌아옴으로 모든 SELECT * FROM emp WHERE sal >= ALL 값과 비교.만약값이 Unknow일 경우 TRUE로 (SELECT sal FROM emp WHERE [NOT] BETWEEN [NOT] x이상 y이하의 사이값 SELECT * FROM emp WHERE sal x AND y BETWEEN 2000 AND 3000 EXISTS LIST안에 단하나의 ROW라조 존재하면 SELECT dname, deptno 참값을 돌려줌 FROM dept WHERE EXISTS (SELECT * FROM emp WHERE dept.deptno=emp.deptno) x[NOT] LIKE y x값이 y patterm값이라면 참이됨 #1 SELECT ename FROM emp [ESCAPE] %(문자열생략),_(단일문자생략) WHERE ename LIKE %A\_B% escape \ escape문으로 선정된 문자는 특수문자도 문자그대로 동일시 됨. IS [NOT] NULL where절에서는 =null을 사용할수없으며 SELECT * FROM emp null 비교시사용 where comn IS NULL #1. \를 escape문자로보고 _앞에\가 선행하여 이것은 오락클이 해석시 _를 특수문자가 아니 일반문자로 인식 (4) Logical operators NOT, AND , OR 다른 언어와 내용 동일 - 6 -
9
UNION 두개의 질의 결과를 동일한것은 두번출력을 SELECT part FROM order_list1
(5) SET operators Operators 목 적 예 제 UNION 두개의 질의 결과를 동일한것은 두번출력을 SELECT part FROM order_list1 피하고 결과 리턴 UNION SELECT part FROM order_list2 UNION ALL 두개의 질의에 대하여 모든값을 출력 SELECT part FROM order_list1 UNION ALL INTERSECT 두개의 질의에의해 발견된 행만을 출력 SELECT part FROM order_list1 즉 동일 내용만 출력 INTERSECT MINUS 두번째에 나타나지 않았던 첫번째 질의 SELECT part FROM order_list1 에서 행을 리턴한다 MINUS (6) ORTHER operators (+) OUT JOIN임을 가르킴 SELECT ename, dname FROM emp dept WHERE dept.deptno = emp.deptno (+) PRIOR 계층또는 트리구조안 에서 현재행에 대한 SELECT empno, ename, mgr 부모행을 (위한) 평가 FROM emp CONNECT BY PRIOR empno = mgr - 7 -
10
4. Functions (1) Number functions functions 목 적 예 제
CEIL(n) 인수보다 크거나 같은 가장 작은 정수 리턴 SELECT B, CEIL(B) CEILING FROM qsc FLOOR(n) 인수보다 작거나 같은 가장큰 정수 SELECT B, FLOOR(B) FLOORING FROM qsc POWER(n,m) 한 수를 다른것의 거듭제곱으로 곱할때 사용 SELECT A, B, POWER(A,B) FROM qsc COS,COSH,SIN,SINH,TAN,TANH(n) EXP(n),ABS(n) LN,LOG(n) 타 언어와 동일 MOD(n,m) SIGN(n),SQRT(n) (2) Charater functions functions 목 적 예 제 CHR(n) 인수의 해당문자 출력 SELECT A CHAR(64) CONCAT(char1,c2) 문자 결함후 출력 SELECT CONCAT(firname,lasname) INITCAP(char) 단어의 첫문자만 대문자 이후 소문자로 출력 SELECT INITCAP(lasname) LOWER(char) 모든문자를 소문자로 SELECT LOWER(firname) UPPER(char) 모든문자를 대문자로 SELECT UPPER(firname) - 8 -
11
[char2]) 보다크면 char2를 왼쪽부터 채움
functions 목 적 예 제 LPAD(char1,n char1의 내용을 n문자열로출력하되 n이 char1 SELECT LPAD( page1,15, * ) FROM sqc [char2]) 보다크면 char2를 왼쪽부터 채움 RPAD(char1,n char1의 내용을 n문자열로출력하되 n이 char1 SELECT RPAD( page1,15, * ) FROM sqc [char2]) 보다크면 char2를 오른쪽부터 채움 LTRIM(char,[set]) SET으로 정의된 문자를 CHAR왼쪽으로부터제거 SELECT LTRIM( xyxXxyLAST WORD , xy ) RTRIM 오른쪽 REPLACE(char, 찾는문자열을 re_string으로 대처 SLECT REPLACE( JACK and JUE, J , BL ) search_string [,re_string]) SUBSTR 문자열중 m번째 문자부터 n문큼 출력 SELECT SUBSTR( ABCDEFG ,3,2) (char,m[,n]) 만약 n이 음수이면 뒤에서 앞으로 출력 TRANSLATE char은 목적문자열 TO문자열로 수반되는 FROM SELECT DD, TRANCLATE( WE34ER (char,from,to) 문자열이있다.FROM문자열에서 발생하는 타켓 ABCDEFGHIJKLMNOPQRSTUVWXYZ 문자열의 요소는 TO문자열의 부합되는요소로 XXXXXXXXXXXXXXXXXXXXXXXXXX 변환 => XX99XX LENGTH(char) 문자 데이타의 길이를 측정 리턴 SELECT LENGTH( LG_MART ) LENGTHB(char) 문자 데이타의 BYTE수를 측정 리턴 SELECT LENGTHB( LG_MART ) - 9 -
12
(3) Conversion functions
TO_CHAR 수를 문자화 함 SELECT TO_CHAR(1234) TO_NUMBER 문자를 수치화 함 SELECT NAME,TESNUM,TES*TO_NUMBER(NAME) TO_DATE 문자형을 날자화 함 INSERT INTO (bonus_date) SELECT TO_DATE( January 15,1987,11:00 A.M. , Month dd, YYYY, HH:MI A.M. , NLS_DATE_LANGUAGE = American ) FROM DUAL (4) Date functions functions 목 적 예 제 ADD_MONTHS(d,n) d로 지정된날에 n달을 더하여 출력 SELECT TO_CHAR(ADD_MONTH(HIREDATE,1), DD-MON-YYY) LAST_DAY(d) d로 지정된 날의 해당월의 마지막 날 출력 SYSDATE 현 시스템의 시각과 날을 출력 SELECT TO_CHAR(SYSDATE, MM-DD-YYYY HH24:MI:SS ) MONTHS_BETWEEN d1과d2사이의 값을 구함 d2가d1보다 앞 SELECT MONTHS_BETWEEN (d1,d2) 서면 결과는 부정적 (TO_DATE( , MM-DD-YYYY TO_DATE( , MM-DD-YYYY) - 10 -
13
5. Clauses EXAM 1) 1) 테이블 내용 보기 * WHERE : 조건문을 첨가 자료를 제한 선택할수있게함
* STARTING WITH : LIKE(<exp>%)와 동일 WHERE절에 추가사용 * ORDER BY : 자료를 정렬함 * GROUP BY : 지정자에따라 동일 자료를 묶음 * HAVING : WHERE는 집단 함수에서는 실행하지 않때문에 이를 대처하기위해 사용 EXAM 1) LG_TABLE name part deposit 선병숙 미용 ,000 윤갑미 경호 ,000 최성자 미용 ,000 이종말 노인 ,000 박숙경 전원 ,000 1)일반 문법 SELECT [DISTINCT | ALL] { * | {[schema.]{table | view |snapshot}. *|exr} [ [AS] c_alias] [, [schema.]{table | view |snapshot}.* |exr} [ [AS] c_alias] ] ... } FROM [schema.]{table | view | [,[schema.]{table | view | [ WHERE condition ] [ GROUP BY expr [,expr] ...[HAVING condition] ] [{UNION | UNION ALL | INTERSECT | MINUS} SELECT command ] [ ORDER BY {expr|position} [ASC|DESC] [, {expr|position} [ASC|DESC]]...] 1) 테이블 내용 보기 SELECT name 이름 , part 부서 , deposit 예금 FORM LG-TABLE WHERE deposit > 100,000 보고자 하는 필드선택(전체선택 *) 선택된 필드를 지정한 이름으로 (생략시 필드명 그대로) 선택된 필드중 deposit항이 100,000보다 큰것을 선택 - 11 -
14
2) 테이블 내용 정렬 3) 테이블 내용 Grouping
SELECT name 이름 , part 부서 , deposit 예금 FORM LG-TABLE ORDER BY name [ASC] [DESC] 정렬함을 정의 오름 차순으로 정렬(생략가능) 내림차순 정렬 3) 테이블 내용 Grouping SELECT name 이름 , part 부서 , SUM(deposit) FORM LG-TABLE GROUP BY PART HAVING deposit > 100,000 선택항에 대한 전체 합 part를 기준으로 그룹핑 그룹의 조건문으로 해당항을 그룹핑할때 조건을 제시(WHERE절은 사용 불가) - 12 -
15
6. Join 1) 등가 조인 2) 비등가 조인 3) 외부 조인 소속 테이블(LGMART)의 해당 필드 지정
SELECT LGMART.NAME, LGMART.PARTNUM, FS.PARTNUM,FS.DESCRITION FROM LQMART, FS WHERE LGMART.PARTNUM = FS.PARTNUM 소속 테이블(LGMART)의 해당 필드 지정 소속 테이블(FS)의 해당 필드 지정 사용 테이블 지정 공동 필드항을 출력하기 위한 조건문 2) 비등가 조인 SELECT LGMART.NAME, LGMART.PARTNUM, FS.PARTNUM,FS.DESCRITION FROM LQMART, FS WHERE LGMART.PARTNUM > FS.PARTNUM 소속 테이블(LGMART)의 해당 필드 지정 소속 테이블(FS)의 해당 필드 지정 사용 테이블 지정 LGMART의 PARTNUM과 FS의PARTNUM을 비교 LGMART.PARTNUM이 큰 RECORD를 출력하기 위한 조건문 소속 테이블(LGMART)의 해당 필드 지정 소속 테이블(FS)의 해당 필드 지정 사용 테이블중 내부테이블 지정 사용테이블중 외부 테이블 지정과 테이블 추출 조건 지정 3) 외부 조인 SELECT LGMART.NAME, LGMART.PARTNUM, FS.PARTNUM,FS.DESCRITION FROM LQMART JOIN FS ON FS.PARTNUM = 54 - 13 -
16
4) 테이블 자체조인 SELECT L.NAME, L.PARTNUM, F.NAME, F.PARTNUM
FROM TBL L, TBL F WHERE L.PARTNUM = F.PARTNUM AND L.NAME <> F.NAME SELECT * FROM TBL PARTNUM NAME ======= ==== 54 PEDL NAME PARTNUM NAME PARTNUM 42 SEATS ==== ======= ==== ======= 46 TIR ROBI CLSH 23 MUBI CLSH ROBI 76 ROBI 10 TAN 76 CLSH 동일 테이블을 두가지 이름으로 지정 테이이블안에 PARTNUM은 같고 NAME 은 다른 내용을 찾기 위한 조건문 - 14 -
17
7. Subqueries 1) 서브쿼리 만들기 2) EXIST 사용하기 3) ANY 사용하기(SOME과 동일 또는 IN)
SELECT * FROM ORDERS 옆의 서브 쿼리는 PART테이블의 DESCRIPTION이 ROAD로 WHERE PARTNUM = (SELECT PARTNUM FROM PART 시작하는 레코드의 PARTNUM이 테이블 ORDERS의 PARTNUM과 WHERE DESCRIPTION LIKE ROAD% ) 동일한 항목을 찾음 ORDEREDON NAME PARTNUM QUANTITY REMARKS =========== ========== =========== =========== ======= 19-MAY-1996 TRUE WHEEL PAID 17-JAN-1996 BIKE SPEC PAID 17-JAN-1996 LE SHOPPE PAID 1-JUN-1996 AAA BIKE PAID 11-JUL-1996 JACKS BIKE PAID 2) EXIST 사용하기 SELECT NAME, ORDEREDON FROM ORDERS 서브쿼리에서 리턴이 단 한항이라도 있는 경우 EXISTS는 참값을 갖고 WHERE EXISTS (SELECT * FROM ORDERS 모든 행을 프린트 함 WHERE NAME = TRUE WHEEL) 3) ANY 사용하기(SOME과 동일 또는 IN) SELECT NAME, ORDEREDON FROM ORDERS ANY는 서브쿼리의 출력을 취해 그것을 쿼리에서 각행과 비교하여 서버 WHERE NAME = ANY(SELECT NAME FROM ORDERS 쿼리에서 결과가 있는 쿼리의 각행에 대하여 TRUE를 리턴함. 4) ALL 사용하기 SELECT NAME, ORDEREDON FROM ORDERS ALL은 서브쿼리의 결과를 취하여 결과가 조건을 충족시킬 경우에만 WHERE NAME <> ALL(SELECT NAME FROM ORDERS TRUE를 리턴한다. ALL은 옆의 예제와 같이 더블 네가티브로 사용. WHERE NAME = JACKS BIKE ) - 15 -
18
7. Subqueries TABLE PART ********** PARTNUM DESCRIPTION PRICE
=========== ==================== ========== 54 PEDALS 42 SEATS 46 TIRES 23 MOUNTAIN BIKE 76 ROAD BIKE 10 TANDEM TABLE ORDERS ************ ORDEREDON NAME PARTNUM QUANTITY REMARK =========== ========== ========== =========== ========= 15-MAY-1996 TRUE WHEEL PAID 19-MAY-1996 TRUE WHEEL PAID 2-SEP-1996 TRUE WHEEL PAID 30-JUL-1996 BIKE SPEC PAID 30-MAY-1996 BIKE SPEC PAID 30-JUL-1996 BIKE SPEC PAID 17-JAN-1996 BIKE SPEC PAID 17-JAN-1996 LE SHOPPE PAID 1-JUN-1996 LE SHOPPE PAID 1-JUN-1996 AAA BIKE PAID 1-JUL-1996 AAA BIKE PAID 1-JUL-1996 AAA BIKE PAID 11-JUL-1996 JACKS BIKE PAID - 15 -
19
8. Data 처리 1) INSERT 2) UPDATE 3) DELETE
INSERT INTO PART(PARTNUM,DESCRIPTION,PRICE) 테이블 PART에 새로운 레코드가 추가 됨 VALUES( 34 , K BIKE , ) 2) UPDATE UPDATE PART WHERE절이 TRUE로 평가 되는 주어진 테이블의 모든 레코드에 SET PRICE = 부합되는값이 업데이트 됨. WHERE PARTNUM = 10 3) DELETE DELETE FROM PART DELETE문은 해당되는 레코드를 삭제하며 어느 한 필드만을 WHERE PRICE < 삭제할 수는 없음. - 16 -
20
9. Table 만들기 1) CREATE DATABASE
문법 CREATE DATABASE database_name 2) CREATE TABLE PART( PARTNUM NUMBER, PART라는 테이블을 생성하되 PARTNUM은 수자형 DESCRIPTION은 DESCRIPTION CHAR(21), 문자형21자리로 PRICE는 수자형으로 생성. PRICE NUMBER) 3) 기존 테이블에서 테이블 만들기 CREATE TABLE NEW_PART(PARTNUM, DESCRIPTION , PRICE) TABLE PART에서 가격이 500이상인 레코드를 NEW_PART으로 AS (SELECT 8 FROM PART WHERE PRICE < 500) 테이블을 생성. 4) ALTER TABLE 테이블의 구조를 변경할때 사용 * 칼럼을 기존 테이블에 추가 ALTER TABLE PART ADD NAME CHAR(20) * 이미 있었던 칼럼수정 ALTER TABLE PART MODIFY PARTNUM CHAR(8) [NULL] 5) 데이블 삭제 문법) DROP TABLE table_name 6) 데이타베이스 삭제 문법) DROP TABLE database_name - 17 -
21
10. View 1) 뷰의 목적 2) 뷰 일반 문법 * 뷰의 삭제 3) 뷰의 SELECT 사용의 제한
뷰란 본래 가상 테이블이다. 그들은 복잡한 쿼리를 캡슐화 하는데 사용된다. 일단 데이타 세트에서 뷰가 만들어지면 그 뷰를 다른 테이블로 다룰수 있다. 그러나 뷰 안에서 데이타를 수정 하는데는 특수한 제한이 있음 2) 뷰 일반 문법 * 뷰의 삭제 CREATE VIEW <view_name> [(column1,column2...)] AS DROP VIEW view_name SELECT <table_name column_name> FROM <table_name> 3) 뷰의 SELECT 사용의 제한 * UNION 연산자를 사용할수 없음. * ORDER BY 절을 사용할수 없음. 4) 뷰를 사용한 데이터 수정의 제한 * DELETE 문은 멀티플 테이블 뷰에서 허용되지 않음 * INSERT 문은 기본 데이터에 사용된 모든 NOT NULL 칼럼이 뷰에 포함되지 않는 한 허용되지 않음 이것은 SQL 프로세서가 NOT NULL 칼럼에 사입할값이 무엇인지 모르기 때문 * 만일 조인 뷰를 통하여 레코드를 삽입 또는 수정한다면 수정된 모든 레코드는 동일한 물리적 테이블에 속하여야 함 * DISTINT 절이 뷰를 만드는데 사용된다면 레코드를 그 뷰 안에서 수정 또는 삽입 할수 없음 - 18 -
22
11. Index 1) 인덱스의 목적 인덱스를 통한 DAM(Direct Aceess Method)를 사용 2) 일반 문법
CREATE INDEX [schema.] index 인덱스를 포함하기위한 SCHEMA 생략시 오락클은 ON { [schema.]table (column [!!under!!ASC|DESC] 사용자 고유의 SCHEMA를 생성한다 [, column [!!under!!ASC|DESC]...) 인뎃스를 생성코자 하는 테이블 |CLUSTER[schema.]cluster} 오름차순 , 내림차순 정의 [INITRANS integer] [MAXTRANS integer] [TABLESPACE tablespace] 크라스터 인덱스를 일일이 지정하기위해 [STORAGE integer] 사용됨. 크라스터는 일반 필드를 가진 테이블 [PCTFREE integer] 저장하는데 사용되므로 액세스 속도 향상 시킴 [NOSORT] 그러나 오락클은 크라스터를 자동 생산하지 않으므로 사용자가 생성해야 함 인덱스를위하여 이들은 각항의 값을 인식시킴 인덱스의 테이블 스페이이스를 확보 인덱스를 위한 STORAGE 특징들을 인식시킴. 각각의 인덱스 불럭 안에 수정이나 삽입을 위한 남은 장소의 비율 인덱스 생성시 정렬을 하지않게 함 - 19 -
23
12. 기타 1) TRANSACTION 자료 사용중의 변화에 대한 대응으로 사용되는 것으로 작업중 자료의 변화를 탐지하여 모든 작업을 Rolled back하여 惡작업을 사전에 예방. 2) CREATE USER 오락클에서 자료의 안전성을 위해 사용자를 제안할 수 있도록 패스워드를 만듬. 3) 역할 만들기 (Role) ⊙ 역 할 ⊙ 내 용 CONNECT ROLE 선택, 삽입, 삭제, 테이블 뷰, 시퀀스, 크러스터, 시노님 RESOURCE ROLE CONNECT ROLE이외 프로시저, 트리거, 인덱스 DBA ROLE 데이터 베이스 시스템에서 원하는 모든것가능 4) PRIVILEGES 사용자에게 특권이 결정되면 사용자가 데이타 베이스에서 어떤 허가를 가질지를 결정. 이것은 시스템 특권과 오브젝트 특권으로 구분. 5) TRIGGER 특수 목적의 작업을 수행하기 위해 만들어진 내장 프로시저이며, 트리거는 수정/삭제/삽입을 위해 프로그래머가 만든 특수 타입의 내장 프로시저. 6) SYNONYM 뷰와 같은 작용. 7) CURSORS 데이타베이스 커서는 프로그램어가 데이타 그룹을 선택하고 커서가 위치한 각각의 개별적인 데이터의 라인을 사용하면서 레코드 그룹을 통하여 이동할수 있게 함. 또한 쿼리의 결과를 나중에 사용하기 위하여 그 값을 저장. - 20 -
24
수고하셨습니다.
Similar presentations