Oracle 데이터베이스 대상 분석

쾌속 편
Oracle 에는 별명, 서열, 보기, 색인 과 클 러 스 터 등 다섯 가지 데이터 베이스 대상 이 포함 되 어 있 으 며, 별명 과 서열 은 Oracle 에서 특유 한 데이터 베이스 대상 이다.
별명: Oracle 의 데이터 시트 에 별명 을 설정 한 후 별명 으로 데이터 시트 를 원 표 이름과 같은 여러 가지 조작 을 할 수 있 습 니 다.그 문장의 키 워드 는 synonym 이 고 구체 적 인 용법 을 보 겠 습 니 다.
동의어 만 들 기: create synonym student for stu;
생 성 후 student 는 stu 표 의 별명 이기 때문에 다음 두 문장의 실행 결 과 는 같 습 니 다.
  select *from student; ==>  select *from stu;
동의어 삭제: drop synonym student;
시퀀스: Oracle 의 특유 한 대상 으로서 시퀀스 는 Oracle 의 메 인 키 의 자체 증 가 를 실현 하 는데 이것 은 다른 관계 데이터 베이스 와 구별 된다.키 워드 는 sequence 입 니 다.
생 성 시퀀스 방법: 생 성 시퀀스 NumSeq increment by 1 start with 1 maxvalue 999;하나의 시퀀스 를 만 들 고 1 부터 증 가 량 을 1 로 하고 최대 값 을 999 로 설정 합 니 다.
시퀀스 사용: insert into testTable values (NumSeq. nextVal);
nextVal 다음 사용 가능 한 값 되 돌려 주기; 
currVal 은 현재 시퀀스 의 중간 값 을 얻 었 습 니 다. 첫 번 째 는 nextVal 을 되 돌려 야 curr Val 값 을 얻 을 수 있 습 니 다.
Alter sequence 수정 시퀀스 정의: alter sequence NumSeq set maxvalue 1000;
보기 와 색인: 그 용법 은 다른 데이터베이스 와 같 습 니 다. 여 기 는 군말 이 많 지 않 습 니 다.
클 러 스 터: 두 표 또는 여러 표 에 같은 열 이 존재 하고 같은 열 을 한 공간 에 저장 하여 공간 을 절약 합 니 다.
클 러 스 터 만 드 는 방법:  create cluser classcluser
  (
      ClassNo varchar2(10)
  );

클 러 스 터 에 색인 create index cluserIndex on cluser classcluser 만 들 기;
표 StuClass 를 만 들 고 정 의 된 클 러 스 터 를 가 리 킵 니 다.  create table StuClass
  (
      ClassNo varchar2(10),
      ClassName varchar2(20)
  )cluser classcluser(ClassNo);

표 Student 를 만 들 고 정 의 된 클 러 스 터 를 가 리 킵 니 다.  create table Student
  (
      StuNo int,
      ClassNo varchar2(10)
  )cluser classcluser(ClassNo);
**********************************************************************************************

Oracle ( )

Oracle , 、 、 、 、 、 。 , Oracle Oracle 。

  

  Oracle 。ORACLE8 ,ORACLE8i , 。 。 。

  

   , 。 CREATE TABLE , , , , 。 :

CREATE TABLE products
  ( PROD_ID NUMBER(4),
   PROD_NAME VAECHAR2(20),
   STOCK_QTY NUMBER(5,3)
  );

   products , CREATE TABLE , , 。

   , , NOT NULL, 。

   , 。 , null ,oracle 。

   :

   . DBA_TABLES
   . DBA_ALL_TABLES
   . USER_TABLES
   . USER_ALL_TABLES
   . ALL_TABLES
   . ALL_ALL_TABLES
   . DBA_TAB_COLUMNS
   . USER_TAB_COLUMNS
   . ALL_TAB_COLUMNS

  

   , ,oracle 30 。 , 、 、#、$ 。

  

   , 。 。 CREATE TABLE AS, :

SQL>CREATE TABLE emp AS SELECT * FROM employee

TABLE CREATED

SQL> CREATE TABLE Y AS SELECT * FROM X WHERE no=2

   LONG , CREATE TABLE....AS SELECT.... 。

  

   , , , , , 。ORACLE ALTER TABLE

  1、

   :

ALTER TABLE [schema.] table_name ADD column_definition

   :

ALTER TABLE orders ADD order_date DATE;

TABLE ALTER

   , NULL.

  2、

   :

ALTER TABLE [schema.] table_name MODIFY column_name new_attributes;

   :

ALTER TABLE orders MODITY (quantity number(10,3),status varchar2(15));

   orders, STATUS 15, QUANTITY 10,3;

   :

   . , 。

   . , , NULL.

   . , NULL.

   . , 。

  3、

   ORACLE , , 。 ORACLE8i , 。

   :

ALTER TABLE [schema.] table_name DROP {COLUM column_names | (column_names)}[CASCADE CONSTRAINS]

   。 CASCADE CONSTRAINS, , 。

   , , :

ALTER TABLE [schema.] table_name SET UNUSED {COLUM column_names | (column_names)}[CASCADE CONSTRAINS]

   , , 。 , , , 。 、 , 。

   :

ALTER TABLE [schema.] table_name DROP {UNUSED COLUM | COLUMN CONTINUE}

Oracle ( )



   , 。

   :

DROP TABLE [schema.] table_name [CASCADE CONSTRAINTS]
  
   , 、 、 、 。ORACLE , , oracle 。 , DROP TABLE CASCADE CONSTRAINTS 。

  

  RENAME 。ORACLE 、 、 。ORACLE , 、 、 , 。

   :

RENAME old_name TO new_name;

   :

SQL> RENAME orders TO purchase_orders;

TABLE RENAMED

  

  TRUNCATE DROP , , 、 、 、 。 , ,TRUNCATE REUSE STORAGE 。TRUNCATE :

TRUNCATE {TABLE|CLUSTER} [schema.] name {DROP|REUSE STORAGE}

   :

SQL> TRUNCATE TABLE t1;

TABLE truncate.

  

   , (stored query) (virtual table). oracle , , 。 , , 。 。 。

  

  CREATE VIEW , , 。 FOR UPDATE , ORACLE8i ORDER BY , CREATE VIEW ORDER BY 。

   :

SQL> CREATE VIEW TOP_EMP AS
SELECT empno EMPLOYEE_ID,ename EMPLOYEE_NAME,salary
FROM emp
WHERE salary >2000

   , 。 OR REPLACE 。

SQL> CREATE VIEW TOP_EMP
(EMPLOYEE_ID,EMPLOYEE_NAME,SALARY) AS
SELECT empno ,ename ,salary
FROM emp
WHERE salary >2000

   , 。 CREATE VIEW FORCE 。 :

CREATE FORCE VIEW ORDER_STATUS AS
SELECT * FROM PURCHASE_ORDERS
WHERE STATUS='APPPOVE';

SQL>/

warning :View create with compilation errors

   ORDER_STATUS , , , 。

  

   , , SQL , SELECT 。

   、 、

   、 、 。 , 。 USER_UPDATETABLE_COLUMNS 。

   CREATE VIEW WITH 。WITH READ ONLY , 、 、 。WITH CHECK OPTION , WHERE 。 WHERE , TOP_EMP, salary 2000 。

  

   DROP VIEW 。 , , 、 、 。

   :

DROP VIEW TOP_EMP;

Oracle ( )



   ,Oracle 5 :

    Check
    NOT NULL
    Unique
    Primary
    Foreign key

   , 。 , SQL PL/SQL 。 , , , , , 。

   , ALTER

ALTER TABLE table_name DISABLE CONSTRAINT constraint_name;

  

ALTER TABLE policies DISABLE CONSTRAINT chk_gender

   :

ALTER TABLE policies ENABLE CONSTRAINT chk_gender

  

ALTER TABLE table_name DROP CONSTRAINT constraint_name

  

ALTER TABLE policies DROP CONSTRAINT chk_gender;

   Check

   Check TRUE, NULL,Check 。 Check 。Check Check , SYSDATE,UID,USER,USERENV。 , 。Check LOB 、 、VARRY、ref 。 Check , Check 。

   Check CREATE TABLE , ALTER TABLE 。

   :

CONSTRAINT [constraint_name] CHECK (condition);

  Check , Check , 。 , oracle SYS_ 。

   :

CREATE TABLE policies
(policy_id NUMBER,
holder_name VARCHAR2(40),
gender VARCHAR2(1) constraint chk_gender CHECK (gender in ('M','F'),
marital_status VARCHAR2(1),
date_of_birth DATE,
constraint chk_marital CHECK (marital_status in('S','M','D','W'))
);

   NOT NULL

  NOT NULL , 。 ,ORACLE NULL 。 ,NOT NULL 。

   :

CREATE TABLE policies
(policy_id NUMBER,
holder_name VARCHAR2(40) NOT NULL,
gender VARCHAR2(1),
marital_status VARCHAR2(1),
date_of_birth DATE NOT NULL
);

   NOT NULL ALTER TABLE 。

ALTER TABLE policies MODIFY holder_name NOT NULL

Oracle ( )

(Unique constraint)

   , 。 , , ALTER TABLE 。

   :

column_name data_type CONSTRAINT constraint_name UNIQUE

   , 。 :

CONSTRAINT constraint_name (column) UNIQUE USING INDEX TABLESPACE (tablespace_name) STORAGE (stored clause)

   B-tree , USING , 。CREATE TABLE 。

CREATE TABLE insured_autos
(policy_id NUMBER CONSTRAINT pk_policies PRIMARY KEY,
vin VARCHAR2(10),
coverage_begin DATE,
coverage_term NUMBER,
CONSTRAIN unique_auto UNIQUE (policy_id,vin) USING INDEX TABLESPACE index STORAGE (INITIAL 1M NEXT 10M PCTINCREASE 0)
);

   , , ALTER TABLE

ALTER TABLE insured_autos DISABLE CONSTRAIN unique_name;

   , ALTER TABLE....DROP CONSTRAIN

ALTER TABLE insured_autos DROP CONSTRAIN unique_name;

   。 (foreign key)。

   , 。 。 , :

  1、 。

  2、

   (Primary Key)

   。 , NOT NULL 。NOT NULL 。 , B-tree 。

   CREATE TABLE , , ALTER TABLE 。

CREATE TABLE policies
(policy_id NUMBER CONSTRAINT pk_policies PRIMARY KEY,
holder_name VARCHAR2(40),
gender VARCHAR2(1),
marital_status VARCHAR2(1),
date_of_birth DATE
);

   , , 。

CREATE TABLE insured_autos
(policy_id NUMBER,
vin VARCHAR2(40),
coverage_begin DATE,
coverage_term NUMBER,
CONSTRAINT pk_insured_autos PRIMARY KEY (policy_id,vin)
USING INDEX TABLESPACE index
STORAGE (INITIAL 1M NEXT 10M PCTINCREASE 0)
);

   ALTER TABLE

ALTER TABLE policies DROP PRIMARY KEY;

  

ALTER TABLE policies DISABLE PRIMARY KEY;

   (Foreign key constraint)

   , null , 。 ( ) , 。 B-tree 。 , (parent table) (child table), , 。

   CREATE TABLE , , ALTER TABLE 。

CREATE TABLE insured_autos
(policy_id NUMBER CONSTRAINT policy_fk
REFERENCE policies(policy_id
ON DELETE CASCADE,
vin VARCHAR2(40),
coverage_begin DATE,
coverage_term NUMBER,
make VARCHAR2(30),
model VARCHAR(30),
year NUMBER,
CONSTRAIN auto_fk FROEIGN KEY (make,model,year)
REFERENCES automobiles (make,model,year)
ON DELETE SET NULL
);

  ON DELETE ORACLE (parent record) , 。 。

   NULL

   NULL 。ORACLE ISO standar Match None 。 NULL , 。

   , AUTOMOBILES , MAKE,MODEL,YEAR , INSURED_AUTOS AOTOMOBILES, INSURES_AUTOS MODEL NULL , , MAKE AUTOMOBILES , :

   1 AUTOMOBILES

MAKE MODEL YEAR
Ford Taurus 2000
Toyota Camry 1999

   2 INSURED_AUTOS

POLICY_ID MAKE MODEL YEAR
576 Ford Taurus 2000
577 Toyota Camry 1999
578 Tucker NULL 1949

   (Deferred Constraint Checking)

   , , (immediately checking), 。 Oracle (immediately checking), , SET CONSTRAINT 。 :

SET CONSTRAINT constraint_name|ALL DEFEERRED|IMMEDIATE --;

Oracle ( )

(Sequences)

  Oracle 。 , 。 , 。 、 , 。 SET SEQUENCE 。

CREATE SEQUENCE [schema] sequence KEYWORD

  KEYWORD :


KEYWORD
START WITH , 1
INCREMENT BY , INCREMENT BY
MINVALUE , 。 NOMINVALUE,NOMINVALUE, 1, -10E26.
MAXVALUE 。 , MAXVALUE NOMAXVALUE,NOMAXVALUE, 10E26, -1。
CYCLE
NOCYCLE , 。 MAXVALUE+1 ,
CACHE , 20
NOCACHE , ,START WITH MINVALUE。

   DROP SEQUENCE

DROP SEQUENCE sequence_name

   (INDEXES)

   , 。ORACLE :

   B-Tree、 (hash)、 (bitmap)
  
  
   (Domain)

   B-Tree , 。

   B-Tree

  B-Tree , 。B-Tree , ( ) ( )。B-Tree ( ) 。 B-Tree 。 10% 。 ,B-Tree , (branch block) (leaf block) , ( ) 。 ROWID。

  

   , 。 ( ) ( ), 。 (cardinality) , AND OR 。 , TRUE(1)、FALSE(0)、 NULL 。 B-Tree 。B-Tree 。 , , B-Tree 。

   (Synonyms)

   。public , private 。 、 、 、 、 , 。

   :

CREATE [PUBLIC] SYNONYM synonym_name FOR [schema.] object[@db_link];
  
   :

CREATE PUBLIC SYNONYM policies FOR poladm.policies@prod;

CREATE SYNONYM plan_table FOR system.plan_table;

Oracle ( )



   , 。 , 。 , , 。 :

pay_involume(invoice_nbr,30,due_date);

   :

order_volumn:=open_orders(SYSDATE,30);

   :

CREATE [ OR REPLACE] PROCEDURE [schema.]procedure_name
[parameter_lister]
{AS|IS}
declaration_section
BEGIN
executable_section
[EXCEPTION
exception_section]
END [procedure_name]

   :

paramter_name mode datatype [(:=|DEFAULT) value]

  mode :IN、OUT、INOUT。

  IN , , , , , 。

  OUT , , , 。

  INOUT IN OUT ; , , , 。

   , RETUREN

CREATE [ OR REPLACE] FINCTION [schema.]function_name
[parameter_list]
RETURN returning_datatype
{AS|IS}
declaration_section
BEGIN
executable_section
[EXCEPTION]
exception_section
END [procedure_name]

   return 。

   , :

CREATE OR REPLACE FUNCTION my_sin(DegreesIn IN NUMBER)
RETURN NUMBER
IS
pi NUMBER=ACOS(-1);
RadiansPerDegree NUMBER;

BEGIN
RadiansPerDegree=pi/180;
RETURN(SIN(DegreesIn*RadiansPerDegree));
END

Oracle ( )



   、 ; : , , , ; (package body), 、 、 。

   PL/SQL , , , 。 。 , , 。

   , :

CREATE [OR REPLACE] PACKAGE package_name
{AS|IS}
public_variable_declarations |
public_type_declarations |
public_exception_declarations |
public_cursor_declarations |
function_declarations |
procedure_specifications
END [package_name]

   CREATE PACKAGE BODY :

CREATE [OR REPLACE] PACKAGE BODY package_name
{AS|IS}
private_variable_declarations |
private_type_declarations |
private_exception_declarations |
private_cursor_declarations |
function_declarations |
procedure_specifications
END [package_name]

   , 。

   (Triggers)

   。 。 :

  DML
  DDL
  

  DML 。DML DML 。 , 。 :

INSERT
UPDATE
DELETE
CREATE CREATE
ALTER ALTER
DROP DROP
START
SHUTDOWN
LOGON
LOGOFF
SERVER

   :

CREATE [OR REPLACE] TRIGGER trigger_name
{before|after|instead of} event
ON {table_or_view_name|DATABASE}
[FOR EACH ROW[WHEN condition]]
trigger_body

   DML (INSERT、UPDATE、DELETE) INSTEAD OF DML BEFORE AFTER 。

   (EXECUTE), ALTER TRIGGER :

ALTER TRIGGER trigger_name ENABLE;
ALTER TRIGGER trigger_name DISABLE;

   , ALTER TABLE

ALTER TRIGGER table_name DISABLE ALL TRIGGER;
ALTER TRIGGER table_name ENABLE ALL TRIGGER;

   DROP TRIGGER

DROP TRIGGER trigger_name;

  

  Oracle 。 OBJ$、UET$、SOURCE$, CREATE DATABASE sql.bsq , 。 catalog.sql( $oracle_home/rdbms/admin) CREATE DATABASE , 。

   :

  . USER_ , 。

  . ALL_ , 。

  . DBA_ , 。

   DBA_TABLES,ALL_TABLES USER_TABLES 。Oracle 100 , 。 , DBA_, ALL_ USER_ 。

(View Family)
COL_PRIVS , 、
EXTENTS , , (segment_name)
INDEXES , 、
IND_COLUMNS
OBJECTS , DDL time
ROLE_PRIVS , GRANT ADMIN
SEGMENTS , tablespace storage
SEQUECNCES , cache、cycle ast_number
SOURCE 、 、
SYNONYMS , db_link
SYS_PRIVS , grantee、privilege、admin
TAB_COLUMNS
TAB_PRIVS , 、
TABLES , (tablespace), (storage parms)
TRIGGERS , 、 、 (trigger body)
USERS
VIEWS

   Oracle , , 。

VIEW NAME
USER_COL_PRIVS_MADE
USER_COL_PRIVS_RECD
USER_TAB_PRIVS_MADE
USER_TAB_PRIVS_RECD

   V$ , V$ GV$ 。V$ X$ 。V$ SYS , , SYS DBA , DBA USER_ ALL_ , DBA_ 。 DBA_,ALL, USER_ , 。

   

    , ,

    SQL , ALTER USER , ,

   SQL :

   :

SELECT 'ALTER USER'||username||
'TEMPORARY TABLESPACE temp;'
FROM DBA_USERS
WHERE username<>'SYS'
AND temporary_tablespace<>'TEMP';

   , :

ALTER USER SYSTEM TEMPORARY TABLESPACE temp;
ALTER USER OUTLN TEMPORARY TABLESPACE temp;
ALTER USER DBSNMP TEMPORARY TABLESPACE temp;
ALTER USER SCOTT TEMPORARY TABLESPACE temp;
ALTER USER DEMO TEMPORARY TABLESPACE temp;

좋은 웹페이지 즐겨찾기