DDL Data Definition(重點) (n. 定義;[物] 清晰度;解說)用於定義數據的結構,創建,修改,刪除資料庫對象 一、表的增刪改查 1、創建表:CREATE TABLE temp AS (SELECT * FROM emp WHERE 1==2) 創建表結構。 CREATE TAB ...
DDL Data Definition(重點)
(n. 定義;[物] 清晰度;解說)用於定義數據的結構,創建,修改,刪除資料庫對象
一、表的增刪改查
1、創建表:CREATE TABLE temp AS (SELECT * FROM emp WHERE 1==2) 創建表結構。
CREATE TABLE temp(欄位名稱 欄位類型(預設值))
2、刪除表:DROP TABLE person (需要回滾);
TRUNCATE TABLE tperson ;(直接截斷)
3、增加表欄位:ALTER TABLE person ADD (address VARCHAR(200) DEFAULT ' ') ;
4、修改表欄位結構:ALTER TABLE MODIFY ( DEFAULT )
RENAME 舊名稱TO新名稱 ;
二、約束:
DROP TABLE person ;
CREATE TABLE person
(
pid VARCHAR2(18)PRIMARY KEY(1、主鍵約束) ,
name VARCHAR2(200)NOT NULL(2、非空約束) ,
age NUMBER(3) ,UNIQUE NOT NULL(3、唯一約束除主鍵外)
birthday DATE ,NOT NULL(4、非空約束)
sex VARCHAR2(2) DEFA CHECK(age BETWEEN 0 AND 150)/CHECK(sex IN ('男 ','女'))(5、檢查約束)
CONSTRAINT person_pid_pk PRIMARY KEY(pid) 為pid約束命名(6、外鍵約束)
增加外鍵約束:ALTER TABLE book ADD CONSTRAINT person_book_pid_fk FOREIGN KEY(pid) REFERENCES person(pid) ON DELETE CASCADE ;表裡加外鍵約束。
刪除外鍵約束:ALTER TABLE 表名稱DROP CONSTRAINT 約束名稱;
三、偽列:
SELECT ROWNUM,empno,ename,job,sal,hiredate FROM emp WHERE ROWNUM<=5;
四、集合:
UNION(無重覆) UNION ALL(有重覆) INTERSECT (倆個相同)MINUS (不同集合)
五、視圖創建:
CREATE VIEW 視圖名稱 AS 子查詢 WITH CHECK OPTION(不更新創建條件);
CREATE VIEW 視圖名稱 AS 子查詢 WITH READ ONLY(只讀視圖操作)
Eg:CREATE VIEW empv20 AS SELECT empno,ename,job,hiredate FROM emp WHERE deptno=20 ;
視圖刪除:DROP VIEW empv20 ;
視圖修改:CREATE OR REPLACE 視圖名稱AS子查詢 ;
六、序列:
創建格式
CREATE SEQUENCE sequence
[INCREMENT BY n] 每次增長幅度
[START WITH n]序列從1開始
[{MAXVALUE n | NOMAXVALUE}]最大值
[{MINVALUE n | NOMINVALUE}]最小值
[{CYCLE|NOCYCLE}]表示達到最大值後從頭開始,也可以為nocycle
[{CACHE n|NOCACHE}] ;防止資料庫掛掉資料庫不能使用
nextVal方法,取得序列下一個內容,currVal取得序列當前內容
七、同義詞:CREATE SYNONYM 同義詞名稱FOR用戶名.表名稱 ;
創建:CREATE SYNONYM emp FOR scott.emp ;
刪除:DROP SYNONYM emp ;
Dual是sys用戶下。但在所有用戶表中都可用dual表(虛擬表)