一、視圖
1、視圖:是從一個表或多個表中生成的虛擬的表。
2、檢索每個學生的導師姓名與哲學成績。
select s.姓名,t.教師姓名,r.哲學
from student s,teacher t,res r
where s.教師編號=t.教師編號and s.學生編號=r.學生編號
3、創建視圖
create view 視圖名
as
查詢語句
4、使用視圖:select * from 視圖名
5、刪除視圖:drop view 視圖名
6、視圖的優點
分割數據,簡化觀點。
簡化操作。
提供自動的安全保護功能。
7、修改視圖:(右)視圖名--修改
8、瀏覽視圖信息
sp_help 顯示RDBMS中所有的對象信息(包括視圖信息)
select name,crdate
from sysobjects
where type ='v'
order by name
sysobjects表,記錄了當前數據庫中所有數據庫對象。
查看特定的視圖信息:sp_help 視圖名
查看特定視圖的文本信息(創建命令):sp_helptext 視圖名
9. 插入數據
insert 【into】 表名
(字段名1,......,字段名n)
values
(字段值1,......,字段值n)
10、向視圖插入數據
insert into 視圖名
(視圖字段名1,......,視圖字段名n)
values
(字段值1,......,字段值n)
向視圖插入數據時,數據會寫入實際的表中。
向視圖中插入數據的注意事項
對多個表連接而成的視圖而言,一個insert語句只能對某一個表實
現插入,而不能對多個表實現插入。
如果插入的數據中不包含特定的字段,而且該特定的字段在表的定
義中是不允許爲空的,則插入失敗。
不能對使用distinct和group by語句的視圖寫入數據。
11、更新表中的數據
update 表名
set 字段名=字段值,......
where 匹配條件
12、更新視圖的數據
update 視圖名
set 字段名=字段值,字段名=字段值,......
where 匹配條件
13、刪除數據(複習)
delete from 表名
where 匹配條件
14、刪除視圖中的數據
delete from 視圖名
where 匹配條件
15、視圖的文本加密
create view 視圖名
with encryption /*加密視圖文本*/
as
查詢語句
二、約束
1、約束,是對數據庫名,對數據表名,字段名,記錄,字段值等數據庫 對象的取值要求.
在一個RDBMS中,數據庫名具有唯一性。
在一個數據庫中,數據表名具有唯一性。
在一個數據表中,字段名具有唯一性。
在一個數據表中,記錄具有可被唯一標示的特性。
在一個特定的字段中,字段值具有被限制的特性。
2、約束的種類
主鍵約束 primary key
唯一性約束 unique
覈查約束 check
nullablity 約束
3、主鍵約束--primary key
主鍵約束:利用表中一列或多列數據來唯一的標示一條記錄。
主鍵約束的要求:主鍵字段不允許有相同的值存在。
主鍵字段必須有明確的值存在,不允許出現null值。
一張表張只能有一個主鍵。
定義主鍵:在創建表格時定義主鍵
在一個沒有定義主鍵的表格中定義主鍵
修改或刪除表格中的主鍵
在創建表格時定義主鍵:
create table 表名
(字段名 數據類型 primary key,
......,
字段名 數據類型 )
系統會將特定的一個字段設置爲主鍵,且爲該主鍵自動生成
一個默認的約束名:PK_表名_隨機數。
create table 表名
(字段名 數據類型 ,
......,
字段名 數據類型,
constraint 約束名 primary key (字段名,......,字段名))
查看主鍵定義:sp_pkeys 表名
刪除主鍵: alter table 表名
drop constraint 主鍵約束名
添加主鍵的定義:alter table 表名
add constraint 約束名 primary key (字段名)
4、唯一性約束unique
unique約束的作用式用來確保不受主鍵約束的字段上數據的唯一性。
唯一性約束與主鍵約束的區別:
唯一性約束允許有null值存在,主鍵約束不允許null值存在。
一個表中可存在多個唯一性約束,但一個表中只能存在一個主
鍵約束。
定義唯一性約束:在創建表格時定義
在沒有唯一性約束的表格上添加約束
修改或刪除唯一性約束
在創建表格時定義唯一性約束:
create table test4
(num int ,
names varchar(20),
constraint 唯一性約束名 unique (字段名))
添加唯一性約束
alter table 表名
add constraint 約束名 unique (字段名)
刪除唯一性約束
alter table 表名
drop 唯一性約束名
5、覈查約束--check
覈查約束的作用是通過檢查輸入表的數據來維護字段值域的完整性。
定義覈查約束:在創建表格時定義覈查約束
在已將存在的表格中添加覈查約束
修改或刪除覈查約束
在創建表格時定義覈查約束
create table 表名
(字段名 數據類型 ,
......
字段名 數據類型,
constraint 約束名 check (字段名 字段值 ) )
例:create table test5
(num int ,
names varchar(20),
graend char(2),
constraint pk004 primary key (num),
constraint un004 unique (names),
constraint ch004 check (graend in ('男','女'))
)
向已存在的表中添加check約束
alter table 表名
add constraint 約束名 check (字段名 字段值)
刪除check約束
alter table 表名
drop 約束名