規劃數據庫
規劃是數據庫某個用戶名相關聯的數據庫對象集合spa
建立表code
案例:對象
CREATE TABLE table_name (emp_ID CHAR(9) NOT NULL, emp_NAME VARCHAR(40) NOT NULL, );
ALTER TABLE語句get
---表中添加列it
ALTER TABLE table_name ADD column_name datatype
--刪除表中的列io
ALTER TABLE table_name DROP TABLE column_name
某些數據庫不容許這樣(DROP TABLE column_name)的方式,須要使用table
ALTER TABLE table_name ALTER COLUMN column_name datatype
---修改數據類型ast
ALTER TABLE table_name ALTER COLUMN column_name datatype
--建立表的備份復件date
--全部的列插入新表
Microsoft SQL Server: SELECT * INTO new_table_name [IN externaldatabase] FROM old_table_name
--只但願把某列插入新表
SELECT column_name(s) INTO new_table_name [IN externaldatabase] FROM old_table_name
--主鍵約束
主關鍵字(primary key)是表中的一個或多個字段,它的值用於惟一地標識表中的某一條記錄
在兩個表的關係中,主關鍵字用來在一個表中引用來自於另外一個表中的特定記錄
主關鍵字是一種惟一關鍵字,表定義的一部分。一個表的主鍵能夠由多個關鍵字共同組成,而且主關鍵字的列不能包含空值。主關鍵字是可選的,而且可在 CREATE TABLE 或 ALTER TABLE 語句中定義。
PRIMARY KEY (column_name) --能夠有多個 PRIMARY KEY (column_name1,column_name2) --Oracle中能夠經過ALTER TABLE 或者建立表時定義 --使用ALTER TABLE ALTER TABLE table_name ADD CONSTRAINT constraint_name PRIMARY KEY (column_name1,column_name2) --事例: create table tb_employees ( employee_id number, employee_name varchar2(50), employee_age number, employee_birth date, department_id number ); create table tb_departments ( department_id number, department_name varchar2(100), location varchar2(300) );
--單列主鍵
alter table tb_employees add constraint tb_employees_pk primary key (employee_id);
--聯合主鍵
alter table tb_departments add constraint tb_departments_pk primary key (department_id,department_name);
--Oracle啓用/刪除主鍵
--Oracle啓用主鍵 ALTER TABLE table_name ENABLE CONSTRAINT constraint_name; --示例 alter table tb_employees enable constraint tb_employees_pk; --Oracle刪除主鍵 ALTER TABLE table_name DROP CONSTRAINT constraint_name; --示例 alter table tb_employees drop constraint tb_employees_pk;
--UNIQUE約束
--惟一性約束
UNIQUE 約束惟一標識數據庫表中的每條記錄。
UNIQUE 和 PRIMARY KEY 約束均爲列或列集合提供了惟一性的保證。
PRIMARY KEY 擁有自動定義的 UNIQUE 約束。
請注意,每一個表能夠有多個 UNIQUE 約束,可是每一個表只能有一個 PRIMARY KEY 約
MySQL: CREATE TABLE Persons_tbl ( Id_P int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), UNIQUE (Id_P) ) SQL Server / Oracle / MS Access: CREATE TABLE Persons ( Id_P int NOT NULL UNIQUE, LastName varchar(255) NOT NULL, FirstName varchar(255), )
--命名約束,多個列地定義UNIQUE約束
MySQL / SQL Server / Oracle / MS Access: CREATE TABLE Persons ( id_P int NOT NULL UNIQUE, LastName varchar(255) NOT NULL, FirstName varchar(255), CONSTRAINT uc_PersonID UNIQUE (Id_p,LastName) )
--若是表已經建立,須要添加UNIQUE約束
如表已創建,須要Id_p約束 MySQL / SQL Server / Oracle / MS Access: ALTER TABLE Persons ADD UNIQUE (Id_p)
--命名約束,多個列地定義UNIQUE約束
MySQL / SQL Server / Oracle / MS Access: ADD CONSTRAINT uc_PersonID UNIQUE(Id_P,LastName)
--撤銷UNIQUE約束
MySQL: ALTER TABLE Persons DROP INDEX uc_PersonID SQL Server / Oracle / MS Access: ALTER TABLE Persons DROP CONSTRAINT uc_PersonID
--外鍵(foreign key)約束
外鍵是子表裏的字段,引用父表裏的主鍵,父表裏刪除主鍵,則子表外鍵也刪除 添加外鍵 ALTER TABLE table_name01 ADD CONSTRAINT id_fk foreign key(emp_id) references table_name02((emp_id)) 注:table_name01表示子表,table_name02表示父表
注:table_name01表示子表,table_name02表示父表
檢查(CHK)約束
用於檢查輸入到特定字段數據的有效性