1. 程式人生 > >SQL基本語法—(檢視、資料庫安全與角色)

SQL基本語法—(檢視、資料庫安全與角色)

檢視

一、定義檢視

  語法:

           CREATE  VIEW <檢視名>  [(<列名>  [,<列名>]…)] AS  <子查詢>[WITH  CHECK OPTION];

      示例:

   1、建立資訊系學生的檢視

             createviewIS_View as select Sno,Sname,Ssex,Sage,Sdeptfrom StudentwhereSdept='資訊系';

        2、建立資訊系學生的檢視,並要求透過該檢視進行的更新操作只涉及資訊系學生

             create

viewIS_View as select Sno,Sname,Ssex,Sage,Sdeptfrom StudentwhereSdept='資訊系'withcheckoption;

    3、建立資訊系選修了c01號課程的學生檢視

             createviewIS_View (Sno,Sname,Grade)asselect  Student.Sno,Sname,GradefromStudent,SCwhereSdept='資訊系'

andCno='c01'andStudent.Sno=SC.Sno

 二、查詢檢視

       示例:

          1、在資訊系學生的檢視中找出年齡小於20歲的學生

               selectSno,Sname,SagefromIS_Student where Sage<</span>20;

2、查詢資訊系選修了c01號課程的學生學號和姓名

               select SC.Sno,SnamefromIS_Student,SCwhere IS_Student.Sno =SC.SnoandSC.Cno='c01';

 三、更新檢視

        示例:

          1、將資訊系學生檢視IS_Student中學號95002的學生姓名改為“劉辰”

               update IS_Student

set Sname='劉辰' whereSno= '95002';

或 updateStudentsetSname='劉辰'whereSno='95002'ANDSdept='資訊系';

          2、向資訊系學生檢視IS_S中插入一個新的學生記錄:95029,趙新,20歲

               insertintoIS_Student values('95029','趙新',20,'資訊系');

3、刪除檢視IS_Student 中學號為95029的記錄

       deletefromIS_Student where Sno='95029';

         或 deletefromStudentwhereSno='95029'ANDSdept='資訊系';

 四、刪除檢視

       語法:

          DROP  VIEW  <檢視名>;

       示例:

1、刪除檢視IS_View 

               dropviewIS_View;

       注:組成檢視的屬性列名

       I、省略:

           由子查詢中SELECT目標列中的諸欄位組成

       II、明確指定檢視的所有列名:

          (1) 某個目標列是集函式或列表達式

          (2) 目標列為  *

          (3) 多表連線時選出了幾個同名列作為檢視的欄位

          (4) 需要在檢視中為某個列啟用新的更合適的名字

資料安全性

 一、授權

     語法:

           GRANT <許可權>[,<許可權>]...[ON <物件型別> <物件名>] TO <使用者>[,<使用者>]...[WITH GRANT OPTION];

        示例:

          1、把查詢Student表許可權授給使用者U1

                grantselecton Student to u1;

           2、把對Student表和Course表的全部許可權授予使用者U2和U3

                grantallprivileges on Student,Coursetou2,u3;

           3、把對錶SC的查詢許可權授予所有使用者

                grantselecton SC to public;

           4、把查詢Student表和修改學生學號的許可權授給使用者U4

                grantselect,update(Sno)onStudent to u4;

           5、把對錶SC的INSERT許可權授予U5使用者,並允許他再將此許可權授予其他使用者

                grantinserton SC to u5 withgrant option;

 二、收回

    語法:

       REVOKE <許可權>[,<許可權>]...[ON <物件型別> <物件名>] FROM <使用者>[,<使用者>]...;

    示例:

 1、把使用者U4修改學生學號的許可權收回

            revoke update(Sno)onStudent from u4;

       2、收回所有使用者對錶SC的查詢許可權

            revokeselect)on SC frompublic;

       3、把使用者U5對SC表的INSERT許可權收回

           revokeinserton SC from u5;

資料庫角色

一、 角色的建立

       語法:

          CREATE  ROLE  <角色名>

       示例:

          1、建立一個角色 R1

               createroleR1;

二、 給角色授權

       語法:

          GRANT  <許可權>[,<許可權>]… ON <物件型別>物件名 TO <角色>[,<角色>]             …

       示例:

1、角色R1擁有Student表SELECT、UPDATE、INSERT權 限

               grantselect,update,insertonStudent to R1;

三、將一個角色授予其他的角色或使用者

       語法:

        GRANT  <角色1>[,<角色2>]… TO  <角色3>[,<使用者1>]…[WITH ADMIN OPTION]

      示例:

1、將角色R1授予王平,張明,趙玲

             grantR1to 王平,張明,趙玲;

四、角色許可權的收回

       語法:

         REVOKE <許可權>[,<許可權>]…ON <物件型別> <物件名> FROM <角色>[,<角色>]…

       示例:

1、通過R1來回收王平的這3個許可權

revokeR1from 王平;

附錄一:

        查 詢 條 件

         謂    詞

          比    較

=,>,<</span>,>=,<=,!=,<>,!>,!<</span>;NOT+上述比較運算子

          確定範圍

BETWEEN AND,NOT BETWEEN AND

          確定集合

IN,NOT IN

          字元匹配

LIKE,NOT LIKE

          空    值

   IS NULL,IS NOT NULL

          多重條件(邏輯運算)

         AND,OR,NOT

附錄二:

    以上文章中將以學生-課程資料庫作為一個例子來講解SQL的資料定義、資料操作、資料查詢和資料控制語句的具體應用。

其資料表如下所示:

學生表:Student(Sno,Sname,Ssex,Sage,Sdept)

課程表:Course(Cno,Cname,Cpno,Ccredit)

學生選課表:SC(Sno,Cno,Grade)

Student

   學  號

    Sno

   姓  名

   Sname 

   性  別

    Ssex  

   年  齡

    Sage  

  所 在 系  

    Sdept

200215121

200215122

200215123

200515125

李勇

劉晨

王敏

      張立  

      男      

20

19

18

       19

CS

CS

MA

IS

Course

     課程號

      Cno        

    課程名

    Cname        

      先行課

       Cpno

           學分

      Ccredit

      1

      2

      3

      4

      5

      6

      7

資料庫

數學

資訊系統

作業系統

資料結構

資料處理

    PASCAL語言

        5

        1

        6

        7

        6

                 4

        2

        4

              3

               4

        2

        4

SC

學 號

           Sno       

課程號

           Cno

 成績

 Grade

 200215121

 200215121

 200215121

 200215122

            200215122    

  1

  2

  3

  2

             3

  92

  85

  88

  90

  80

相關推薦

SQL基本語法檢視資料庫安全角色

檢視 一、定義檢視   語法:            CREATE  VIEW <檢視名>  [(<列名>  [,<列名>]…)] AS  <子查詢>[

Node.js的學習入門module.exportsexports

user clas ret class script say req 引用 ole /*User.js*/ exports.userName = ‘Tom‘; exports.sayHello = function () { return ‘wwwwww‘ } /

實戰Java高併發程式設計並行模式演算法

5.1單例模式 單例模式:是一種常用的軟體設計模式,在它的核心結構中值包含一個被稱為單例的特殊類。一個類只有一個例項,即一個類只有一個物件例項。  對於系統中的某些類來說,只有一個例項很重要,例如,一個系統中可以存在多個列印任務,但是隻能有一個正在工作的任務;售票時,一共有100張票,可有有

陣列中的逆序對分治遞迴合併

在陣列中的兩個數字,如果前面一個數字大於後面的數字,則這兩個數字組成一個逆序對。 輸入一個數組,求出這個陣列中的逆序對的總數P。 將P對1000000007取模的結果輸出。 即輸出P%1000000007 輸入描述: 題目保證輸入的陣列中沒有的相同的數字 資料範圍: 對

SpringMVC學習筆記重定向轉發

SpringMVC中重定向與轉發通過return實現 重定向: return “redirect:/重定向頁面路徑” 轉發: return “forward:/轉發頁面路徑” 使用示例: @RequestMapping("/test2") pub

Hadoop 2.X管理開發資料壓縮優化

#Hadoop資料壓縮 資料壓縮 1)MR操作過程中進行大量資料傳輸,就需要對資料進行壓縮 2)壓縮技術能夠有效減少底層儲存(HDFS)讀寫位元組數,提高的網路頻寬和磁碟空間的效率 3)資料壓縮能夠有效節省資源 4)壓縮事MR程式的優化策略 5)通過壓縮編碼對

Storm學習記錄分發策略架構

一、分發策略 Shuffle Grouping:隨機分組,隨機派發stream裡面的tuple,保證每個bolt task接收到的tuple數目大致相同。輪詢,平均分配  Fields Grouping:按欄位分組,比如,按"user-id"這個欄位來分組,那麼具有同樣"u

【機器學習】決策樹——生成演算法ID3C4.5CRAT

回顧 前面我們介紹了決策樹的特徵選擇,以及根據資訊增益構建決策樹。 那麼決策樹的生成又有哪些經典演算法呢?本篇將主要介紹ID3的生成演算法,然後介紹C4.5中的生成演算法。最後簡單介紹CRAT演算法。 ID3演算法 前面我們提到,一般而言,資訊增

實現增刪改查SpringBootMyBatis-PlusThymeleaf

show me the code and talk to me,做的出來更要說的明白 我是布林bl,你的支援是我分享的動力! 1 引入 使用 MyBatis-Plus 以及 thymeleaf 實現增刪查改。效果圖在最後。 2 Mybatis-Plus MyBatis-Plus(簡稱 MP)是一個 MyB

Python入門教程--介紹基本語法

在上一篇文章中,我們介紹了Python的一些基本語法,現在我們繼續介紹剩下的Python基本語法。檢視上一篇文章請點選:https://www.cnblogs.com/dustman/p/9871938.html 字元運算子 字串連線就像對數字進行加減一樣,兩個字串也可以通過加號 + 進行連線產生新的字串

複習之JavaScript基本語法——三種引入方式及loadwrite事件

JavaScript是什麼 JavaScript一種直譯式指令碼語言,是一種動態型別、弱型別、基於原型的語言,內建支援型別。它的直譯器被稱為JavaScript引擎,為瀏覽器的一部分,廣泛用於客戶端的指令碼語言。 JavaScript的作用 JavaScript

複習之JavaScript基本語法——資料型別jsondate()math()迴圈函式

JavaScript資料型別 JavaScript是一個弱型別的語言,變數通過var生成沒有型別,但給它賦值有型別。 字串、數字、布林、陣列、物件、Null、Undefined Undefined代表變數沒有賦值。 數字型別包括整數和小數 布林型別:數字的話等

分享知識-快樂自己:Oracle基本語法建立:表空間使用者授權約束等使用指南

--2.1)建立主鍵約束-- alter table Student add constraint PK_Student_StuId primary key(StuId); alter table StuClass add constraint PK_StuClass_ClassId primar

Mysql資料庫基本語法

前記: 掌握Mysql的基本語法是非常重要的,小編為大家奉上Mysql基本語法第一篇。 正文:       一、資料庫的操作: 顯示所有的資料庫:                    

1TCL指令碼基本語法概要

TCL常用基本語法 一個TCL指令碼可以包含一個或多個命令。命令之間必須用換行符或分號隔開。 第一個單詞代表命令名,另外的單詞則是這個命令的引數,用空格或TAB鍵隔開。 變數置換$。 命令置換[] 反斜槓置換\ ,例如set msg multiple\ space ,如果沒

sql server 儲存過程基本語法

1 一、定義變數 2 --簡單賦值 3 declare @a int 4 set @a=5 5 print @a 6 7 --使用select語句賦值 8 declare @user1 nvarchar(50) 9 select @user1='張三'

建立表空間建立表子查詢建立表表的約束事務資料庫物件檢視序列索引同義詞PLSQL程式設計if,迴圈資料的匯入匯出備份

DDL語句管理表 DML管理表資料 1)語法: 建立 和 刪除 表空間 / 建立使用者 create tablespace 表空間的名稱 datafile '檔案路徑' //這個檔案是儲存在伺服器端的電腦上的

Java千百問_03基本語法001_區域性變數類變數例項變數有什麼區別

區域性變數、類變數、例項變數有什麼區別 在聊區域性變數、類變數、例項變數有什麼區別之前,我們需要了解一下Java變數。 1、Java變數是什麼 在數學世界中,我們知道有常量、變數。 舉一個例

SAS學習︱邏輯庫資料集建立檢視資料庫連結SASR的code對照

每每以為攀得眾山小,可、每每又切實來到起點,大牛們,緩緩腳步來俺筆記葩分享一下吧,please~———————————————————————————入門學習一週,開始寫學習筆記。用習慣R之後,發現SA

Java 基本語法----進制運算符

忽略 如果 編譯 back 小寫 大小 false alt strong 進 制 對於整數,有四種表示方式: 二進制:0,1 ,滿 2 進 1.以 0b 或 0B 開頭。十進制:0-9 ,滿 10 進 1. 八進制:0-7 ,滿 8 進1. 以數字 0 開頭表示。十六進制