欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

淺談數據庫的完整性

系統 1763 0

數據庫操作的時候必須要實現數據庫的完整性,在實現數據庫的完整性的時候,有兩種方式都可以實現數據庫的完整性,第一種是通過完整性的約束實現數據庫的完整性,第二種就是通過用戶創建自定義的觸發器實現數據庫的完整性。

一、完整性約束實現數據庫的完整性

(一)主鍵約束

談到主鍵約束的話,我就通過幾個例子來實現創建主鍵約束

(1)?對 student 表添加主鍵約束

      
        alter
      
      
        table
      
      
         student 


      
      
        add
      
      
        constraint
      
       PK1 
      
        primary
      
      
        key
      
      (sno)
    

?(2)?對 sc 表添加主鍵約束

      
        alter
      
      
        table
      
      
         sc


      
      
        add
      
      
        constraint
      
       PK3 
      
        primary
      
      
        key
      
      (sno,cno)
    

(二)外鍵約束

創建sc表的外鍵約束

      
        alter
      
      
        table
      
      
         sc


      
      
        add
      
      
        constraint
      
       PK4 
      
        foreign
      
      
        key
      
      (sno) 
      
        references
      
      
         student(sno);


      
      
        alter
      
      
        table
      
      
         sc


      
      
        add
      
      
        constraint
      
       PK5 
      
        foreign
      
      
        key
      
      (cno) 
      
        references
      
       course(cno);
    

?(三)check 約束

修改student表,使用Check約束,使Sex列只能接受“男”或“女”,以強制執行域數據完整性。

      
        alter
      
      
        table
      
      
         student


      
      
        add
      
      
        constraint
      
       c1 
      
        check
      
      (ssex 
      
        in
      
      (
      
        '
      
      
      
        '
      
      ,
      
        '
      
      
      
        '
      
      ))
    

?

(四)刪除約束

刪除SC表中的C3,C4外鍵約束。

      
        alter
      
      
        table
      
      
         sc 


      
      
        drop
      
      
        constraint
      
      
         pk4


      
      
        alter
      
      
        table
      
      
         sc 


      
      
        drop
      
      
        constraint
      
       pk5
    

?

二、創建自定義觸發器實現數據庫完整性

(一)創建一個修改用戶記錄的觸發器

創建觸發器 trigger_t1 ,實現當修改學生表 (student) 中的學生姓名時,顯示提示信息“學生姓名被修改了 !!! ”。

      
        create
      
      
        trigger
      
      
         trigger_t1 


      
      
        on
      
      
         student 


      
      
        for
      
      
        update
      
      
        as
      
      
        if
      
      
        update
      
      
        (sname)


      
      
        begin
      
      
        print
      
      
        '
      
      
        觸發器執行
      
      
        '
      
      
        end
      
    

? 驗證觸發器:UPDATE?STUDENT?SET?SNAME='55555'?WHERE??SNO='95001'

(二)創建一個刪除用戶記錄的觸發器

在學生成績庫中創建觸發器 trigger_t2 ,實現如下功能:當在學生表( student )中刪除一條學生信息后,自動實現刪除該學生在學生選課表( sc )中的選課信息。

      
        create
      
      
        trigger
      
      
         trigger_t2


      
      
        on
      
       student 
      
        for
      
      
        delete
      
      
        as
      
      
        declare
      
      
        @sno_del
      
      
        varchar
      
      (
      
        10
      
      
        ) 


      
      
        select
      
      
        @sno_del
      
      
        =
      
      sno 
      
        from
      
      
         deleted


      
      
        delete
      
      
        from
      
       sc 
      
        where
      
       sno 
      
        =
      
      
        @sno_del
      
    

? 驗證觸發器:delete?from?student?where?sno='95001'

(三)創建一個級聯修改用戶信息的觸發器

創建觸發器 trigger_t3 ,實現當修改學生表( student )中的某個學生的學號時,對應學生成績表( sc )中的學號也作修改。

      
        create
      
      
        trigger
      
      
         trigger_t3


      
      
        on
      
       student 
      
        for
      
      
        update
      
      
        as
      
      
        if
      
      
        update
      
      
        (sno)


      
      
        begin
      
      
        declare
      
      
        @sno_new
      
      
        varchar
      
      (
      
        10
      
      ),
      
        @sno_old
      
      
        varchar
      
      (
      
        10
      
      
        )


      
      
        select
      
      
        @sno_old
      
      
        =
      
      sno 
      
        from
      
      
         deleted


      
      
        select
      
      
        @sno_new
      
      
        =
      
      sno 
      
        from
      
      
         inserted


      
      
        update
      
       sc 
      
        set
      
       sno
      
        =
      
      
        @sno_new
      
      
        where
      
       sno 
      
        =
      
      
        @sno_old
      
      
        end
      
    

? 驗證觸發器:update?student?set?sno='123456'?where?sno=?'95002?'

?

淺談數據庫的完整性


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 久久久一区二区三区视频 | 九九精品久久久久久噜噜 | 国产1区在线 | 波多野结衣mxgs1124在线 | 漂流教室韩国电影 | 99久久婷婷 | 免费的色网站 | 亚洲精品一区二区深夜福利 | 九九视频这里只有精品99 | 污的网站在线观看 | 欧美日韩一二三区 | 久久精品男人的天堂 | 午夜性电影| 丁香婷婷亚洲六月综合色 | 日本国产成人精品视频 | 欧美精品在线观看 | 国产精品久久久久久久久免费 | 免费午夜不卡毛片 | 中文字幕成人乱码在线电影 | 西西人体大胆77777视频 | 欧美日韩国产一区二区三区不卡 | 国产免费观看视频 | 日韩在线免费电影 | 欧美日韩在线观看中文字幕 | 99精品视频在线观看 | 欧美一区二区三区免费观看视频 | 日韩三级伦理在线 | 91免费版在线观看 | 国产专区视频 | 色婷婷成人做爰A片免费看网站 | 超级碰碰碰免费视频 | 麻豆短视频传媒网站怎么找 | 另类国产ts人妖高潮系列视频 | 日韩欧美中文在线 | 国产成人精品免费视频大全可播放的 | 亚洲一区二区三区欧美 | 欧美久草在线 | 毛片1毛片2毛片3毛片4 | 天天碰天天干 | 谍影在线观看电视剧完整版 | 91精品久久久久久久久久 |