管理數據庫對象

規劃數據庫

規劃是數據庫某個用戶名相關聯的數據庫對象集合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)約束

用於檢查輸入到特定字段數據的有效性

相關文章
相關標籤/搜索