Oracle--DML、DDL、DCL

7268 단어 OacleDDLDMLDCL
DML (data manipulation language): 데이터 조작 언어
       이름 처럼 select, update, insert, delete 입 니 다.
DDL (data definition language): 데이터 정의 언어
       주요 명령 은 create, alter, drop, truncate 등 이 있 습 니 다. DDL 은 주로 표 (TABLE) 의 구조, 데이터 형식, 표 간 링크 와 제약 등 초기 화 작업 에 사 용 됩 니 다. 그들 은 대부분 표를 만 들 때 사용 합 니 다.
DCL (Data Control Language): 데이터 제어 언어.
    데이터베이스 사용자 나 캐릭터 권한 을 설정 하거나 변경 하 는 문구 입 니 다. (grant, deny, revoke 등) 문 구 를 포함 합 니 다.기본 상태 에서 sysadmin, dbcreator, db 만 있 습 니 다.owner 또는 dbsecurity admin 등 이 DCL 을 집행 할 권리 가 있 습 니 다.
자세 한 설명:
1. DDL: 데이터 정의 언어 (delete 없 음, 다음은 delete!!!)
      1.1. 표 의 생 성과 삭제
--    
CREATE TABLE s (s_no VARCHAR(5) NOT NULL, --     
                s_name VARCHAR(30) UNIQUE,  --    
                s_status VARCHAR(20),  --     
                PRIMARY KEY(s_no));  

--                 
CREATE TABLE p (p_no VARCHAR(5) NOT NULL PRIMARY KEY,  --   
                p_name VARCHAR(30) UNIQUE,  --   
                p_weight NUMERIC(6,2),  --  
                p_city VARCHAR(20)  --   );   

--    :             ,                s_p(s_no, p_no, quantity)                
CREATE TABLE s_p (s_no VARCHAR(5),
                  p_no VARCHAR(5),
                  quantity NUMERIC(9),  --  
                  PRIMARY KEY(s_no, p_no),
                  FOREIGN KEY(s_no) REFERENCES s (s_no),
                  FOREIGN KEY(p_no) REFERENCES p (p_no));

--       :
--1、         , PRIMARY KEY(s_no),    s_no   unique,     
--2、foreign key(s_no) references s(s_no)    s_p   s_no   ,       s   s_no 
    1.1.1 조작 표, 열
-- s_no      s_city; oracle            ,         
--            
ALTER TABLE s ADD s_city VARCHAR2(20);

ALTER TABLE s RENAME TO s_table;  --       

ALTER TABLE s_table RENAME COLUMN s_city TO s_country; --     

ALTER TABLE s_table MODIFY s_country NUMBER(20);  --      

ALTER TABLE s_table DROP COLUMN s_country; --       

--  :  ,              COLUMN,     ora-00905。
--    ,       ,    COLUMN,    ,           。

-------------------------------------------------------------------------

--    :
ALTER TABLE s_table ADD (test1 VARCHAR2(10),test2 NUMBER);

--    :
ALTER TABLE  s_table MODIFY (test1 VARCHAR2(20),test2 VARCHAR2(20));

--    :
ALTER TABLE s_table DROP (test1,test2);

--      ,         COLUMN,          ,   COLUMN   。

    1.2, 색인 생 성, 삭제
색인 구문 형식 만 들 기:                create [unique] [cluster] index < 인덱스 이름 >                on < 표 명 > (열 명 [< 순서 >], 열 명 [< 순서 >]...); 유 니 크: 이 색인 의 모든 색인 값 은 유일한 데이터 기록 에 만 대응 한 다 는 것 을 나타 낸다. cluster: 만 들 색인 은 클 러 스 터 색인 임 을 표시 합 니 다. 색인 항목 의 순 서 는 표 에 기 록 된 물리 적 순서 와 일치 하 는 색인 조직 이라는 뜻 입 니 다. 순서
--  
CREATE TABLE s_test (s_no VARCHAR(5) NOT NULL, --     
                s_name VARCHAR(30),  --    
                s_status VARCHAR(20)  --     
                );                    
 
--                    
CREATE UNIQUE INDEX test_index ON s_test(s_no DESC) ;                      

--Oracle                  。
--1、  primary Key:    、  
--2、  Unique:    ,     
--             ,          ,         !!!。

--    。        
SELECT * FROM User_Indexes  WHERE table_name = 'S_TEST';  

--    
DROP INDEX test_index;

1.3. 보기 의 생 성, 삭제 보기 생 성 문법:           보기 이름 만 들 기 (목록 이름)           as select 검색 자구           [with check option]; 주의: 1. 하위 조 회 는 임의의 복잡 한 selection 문 이지 만 order by 자구 와 distinct 문 구 를 포함 하 는 것 을 허용 하지 않 습 니 다.          2. with check option 은 update, insert, delete 작업 시 업데이트, 삽입 또는 삭제 행 위 를 하위 조회 조건 표현 식 에 만족 시 키 는 것 을 표시 합 니 다.
--         , system                              
GRANT CREATE ANY VIEW TO changwen;

GRANT CONNECT, RESOURCE,DBA TO changwen;  

--    
CREATE VIEW s_view
AS SELECT s_no, s_name FROM s_table; 

--    
DROP VIEW s_view;

1.4, delete 와 truncate 의 차이 점 은?
1)
truncate 는 DDL 문장 이 고 delete 는 DML 문장 입 니 다.
2)
truncate 는 delete 보다 삭제 속도 가 빠 르 고 효율 이 높 습 니 다. 주요 원인 은 truncate 가 사용 하 는 시스템 과 트 랜 잭 션 로그 자원 이 적 기 때 문 입 니 다.
   구체 적 인 원인: 1. 우리 가 delete 작업 을 수행 할 때 모든 표 데 이 터 는 스크롤 백 공간 으로 복사 되 고 데이터 의 양 에 따라 시간 이 다 릅 니 다.
                     truncate 는 데 이 터 를 직접 삭제 하고 스크롤 백 공간 에 들 어가 지 않 습 니 다.
             2. DELETE 문 구 는 한 줄 씩 삭제 하고 트 랜 잭 션 로그 에서 삭 제 된 줄 마다 한 줄 씩 기록 합 니 다.
               TRUNCATE 는 메모리 테이블 데이터 에 사용 되 는 데이터 페이지 를 방출 하여 데 이 터 를 삭제 하고 트 랜 잭 션 로그 에 만 페이지 의 방출 을 기록 합 니 다.
3) 연결 (2) 이것 도 초래 된 것 이다.
delete 데 이 터 를 실행 하면 rollback 을 실행 하여 데 이 터 를 스크롤 백 할 수 있 으 며, truncate 는 영구적 으로 삭제 되 어 스크롤 백 할 수 없습니다.
4) truncate table 이 로그 에 기록 되 어 있 지 않 기 때문에
truncate 작업 은 발 표 된 delete 트리거 에 닿 지 않 습 니 다.delete 는 정상적으로 작 동 합 니 다.
5)
truncate 문 구 는 where 조건 을 가지 고 있 지 않 으 면 모든 데이터 만 삭제 할 수 있 고 delete 는 일부 데 이 터 를 삭제 할 수 있 습 니 다.
6) truncate 작업 은 표 의 높 은 수위 선 (High Water Mark) 을 리 셋 하고 delete 는 리 셋 하지 않 습 니 다.
7)
foreign key 제약 으로 인 용 된 표 에 대해 서 는 truncate table 을 사용 할 수 없 으 며, WHERE 자구 가 없 는 delete 문 구 를 사용 해 야 합 니 다.
8)
truncate table 은 색인 보기에 참여 한 표 에 사용 할 수 없습니다.
9)truncate  표 의 모든 줄 을 삭제 하지만 표 구조 와 열, 제약, 색인 등 은 변 하지 않 습 니 다.새 줄 표지 에 사 용 된 계수 값 을 이 열의 피 드 로 초기 화 합 니 다.
    표지 계수 값 을 유지 하려 면 DELETE 로 바 꾸 십시오.표 정의 와 데 이 터 를 삭제 하려 면 DROP TABLE 문 구 를 사용 하 십시오.
1.5 、 COMMENT -- 주석
SQL-->COMMENT ON TABLE s_test IS' 직원 정보 저장 ';  --별로 쓸모 가 없다
1.6 RANT 권한 부여
자주 사용 하 는 시스템 권한 집합 은 다음 과 같은 세 가지 가 있 습 니 다. connect (기본 연결),   resource (프로그램 개발),   dba (데이터베이스 관리)
자주 사용 하 는 데이터 대상 권한 은 다음 과 같은 다섯 가지 가 있 습 니 다.
ALL   ON   데이터 개체 이름,   
SELECT   ON   데이터 개체 이름, 
UPDATE   ON   데이터 개체 이름,
DELETE   ON   데이터 개체 이름,     
INSERT   ON   데이터 개체 이름,       
ALTER    ON   데이터 개체 이름
 
grant  connect, resource 
to   사용자 이름
 grant  select  on   시계  to   사용자 이름
 grant  select, insert,  delete  시계   to   사용자 이름 1,  사용자 이름 2;
1.7、revoke   회수 권한
 
revoke  connect, resource
from  사용자 이름
  revoke  select  on   시계  사용자 이름
  revoke  select, insert,  delete  시계  from   사용자 이름 1,   사용자 이름 2;
2. DML: 데이터 조작 언어       1.
SELECT - -    조회 하 다.
       2.
INSERT --     덧붙이다
        3.
UPDATE --    업데이트
       4.
DELETE --   삭제
       5.
CALL - call a PL/SQL or Java subprogram
       6.EXPLAIN PLAN - explain access path to data
      
Oracle RDBMS 는 모든 SQL 문 구 를 실행 할 때 Oracle 최적화 기의 평 가 를 거 쳐 야 한다.그래서
최적화 기 가 어떻게 (검색) 경 로 를 선택 하고 색인 이 어떻게 사용 되 는 지 알 아 보 는 것 은 SQL 문 구 를 최적화 하 는 데 큰 도움 이 됩 니 다.Explain 은 주어진 SQL 구문 에서 조회 데 이 터 를 어떻게 얻 었 는 지, 즉 검색 경 로 를 신속하게 찾 을 수 있 습 니 다.그래서 우 리 는 가장 좋 은 조회 방식 을 선택 하여 가장 큰 최적화 효 과 를 얻 게 한다.
       7. LOCK TABLE - control concurrency 자물쇠, 병행 제어 에 사용
3. DCL: 데이터 제어 언어 는 데이터 베 이 스 를 방문 하 는 특정한 특권 을 부여 하거나 회수 하 며 데이터 베 이 스 를 조작 하 는 시간 과 효 과 를 제어 하고 데이터 베 이 스 를 감시 하 는 등
       1. COMMIT - 저장 작업 완료 제출
        2. SAVEPOINT - 나중에 저장 점 을 롤 백 할 수 있 는 트 랜 잭 션 의 포 인 트 를 식별 합 니 다.
       3.ROLLBACK - restore database to original since the last COMMIT   스크롤 백
       4.SET TRANSACTION - Change transaction options like what rollback segment to use   현재 트 랜 잭 션 의 특성 을 설정 합 니 다. 다음 트 랜 잭 션 에 영향 을 주지 않 습 니 다.

좋은 웹페이지 즐겨찾기