數據庫視圖

一、視圖

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語句只能對某一個表實

        現插入,而不能對多個表實現插入。

    如果插入的數據中不包含特定的字段,而且該特定的字段在表的定

        義中是不允許爲空的,則插入失敗。

    不能對使用distinctgroup 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  約束名

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