Oracle_071_lesson_p11

DDL數據定義語言

對象:表table , 視圖 view , 序列 sequence , 索引 index , 同義詞 synonym

CREATE
CREATE TABLE dept
(deptno NUMBER(2),
dname VARCHAR2(14),
loc VARCHAR2(13),
createdate DATE DEFAULT SYSDATE);
表:字母開頭,1-30個字符長度,名稱範圍 大小寫 數字
$ 和# ,不要用關鍵字作表名,不能和其他表名衝突;
show parameter define;
如def......_creation 爲true ,則不分配空間; 爲false,則分配空間;

Oracle_071_lesson_p11

constraints 約束
NOT NULL 非空
UNIQUE 唯一
PRIMARY KEY 主鍵
FOREIGN KEY 外鍵
CHECK 檢查
約束取名:SYS_Cn,n爲唯一數字,未手動取名則系統自動生成;
取名規則:
主鍵 pk_表名_列名
唯一鍵 uk_表名_列名
外鍵 fk_表名_列名
check ck_表名_列名

列級別約束
如:
CREATE TABLE employees(
employee_id number(6)
CONSTRAINT pk_emp_emp_id PRIMARY KEY,
first_name varchar2(20),
...);

表級別約束
如:
CREATE TABLE employees(
employee_id number(6),
first_name varchar2(20),
......
job_id varchar2(10) NOT NULL,
CONSTRAINT pk_emp_emp_id
PRIMARY KEY(EMPLOYEE_ID));

如 唯一鍵約束
CREATE TABLE employees(
employee_id NUMBER(6),
last_name VARCHAR2(25) NOT NULL,
email VARCHAR2(25),
salary NUMBER(8,2),
commission_pct NUMBER(2,2),
hire_date DATE NOT NULL,
...
CONSTRAINT emp_email_uk UNIQUE(email));

Oracle_071_lesson_p11

Oracle_071_lesson_p11

FOREIGN KEY Constraint Keywords
FOREIGN KEY: Defines the column in the child table at the table-constraint level
REFERENCES: Identifies the table and column in the parent table
ON DELETE CASCADE: Deletes the dependent rows in the child table when a row in the parent table is deleted
ON DELETE SET NULL: Converts dependent foreign key values to null

Oracle_071_lesson_p11

CREATE TABLE employees(
employee_id NUMBER(6),
last_name VARCHAR2(25) NOT NULL,
email VARCHAR2(25),
salary NUMBER(8,2),
commission_pct NUMBER(2,2),
hire_date DATE NOT NULL,
...
department_id NUMBER(4),
CONSTRAINT emp_dept_fk FOREIGN KEY (department_id)
REFERENCES departments(department_id),
CONSTRAINT emp_email_uk UNIQUE(email));

創建表 示例:
CREATE TABLE teach_emp (
empno NUMBER(5) PRIMARY KEY,
ename VARCHAR2(15) NOT NULL,
job VARCHAR2(10),
mgr NUMBER(5),
hiredate DATE DEFAULT (sysdate),
photo BLOB,
sal NUMBER(7,2),
deptno NUMBER(3) NOT NULL
CONSTRAINT admin_dept_fkey REFERENCES
departments(department_id));

創建表用子查詢
CREATE TABLE dept80
AS SELECT employee_id, last_name,
salary*12 ANNSAL,
hire_date FROM employees WHERE department_id = 80;

ALTER
Use the ALTER TABLE statement to:
Add a new column
Modify an existing column definition
Define a default value for the new column
Drop a column
Rename a column
Change table to read-only status

語法
alter table test
add (column datatype, ......) 添加列
modify (column datatype, ......) 變更列
drop (column datatype, ......) 刪除列
set unused column colum_name 不可用列
drop unused columns

ORACLE修改列名與列類型
--修改列名
alter table 表名 rename column 舊列名 to 新列名;

--修改列類型
alter table 表名 modify (列名varchar(255));

刪除表的一列:
alter table 表名 drop column 列名;

給表增加一列:
alter table 表名 add 列名 類型 default 值 < not null>;

案列:
ALTER TABLE TABLE_ABC ADD COLUMN_AAA NUMBER DEFAULT 10000 NOT NULL ;

DROP
drop table test;

瞭解 :alter table table_name read only;
改表名:alter table table_name1 rename to table_name2;
改列名:alter table table_name rename oldcol column1 to column2;
看約束(數據字典)select from user_constraints where table_name='TEST' ;
查看回收站:select
from user_recyclebin;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章