Oracle--DML、DDL、DCL
이름 처럼 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 현재 트 랜 잭 션 의 특성 을 설정 합 니 다. 다음 트 랜 잭 션 에 영향 을 주지 않 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
activemq 5.5 의 입문 은 설치, 시작, 데이터베이스 지속 화 를 포함한다Apache ActiveMQ 5.5.0 은 주로 유지보수 버 전 으로 130 개가 넘 는 문 제 를 복 구 했 으 며 대부분 bug 와 개선 이 었 다. Improved performance for offline d...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.