




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、SQL 數(shù)據(jù)庫完全操作手冊SQL 是 Structured Quevy Language( 結構化查詢語言 ) 的縮寫。 SQL 是專為數(shù)據(jù)庫而建立 的操作命令集, 是一種功能齊全的數(shù)據(jù)庫語言。 在使用它時, 令,“怎么做”是不用使用者考慮的。 SQL 功能強大、 據(jù)庫操作的基礎,并且現(xiàn)在幾乎所有的數(shù)據(jù)庫均支持 #1 二、 SQL 數(shù)據(jù)庫數(shù)據(jù)體系結構只需要發(fā)出“做什么”的命 簡單易學、使用方便,已經(jīng)成為了數(shù) SQL。SQL 數(shù)據(jù)庫的數(shù)據(jù)體系結構基本上是三級結構, 在 SQL 中,關系模式 ( 模式 ) 稱為“基本表” (base table) (stored file) ;子模式 ( 外模式
2、) 稱為“視圖” (view) ;元組稱為“行” 性稱為“列” (column)。名稱對稱如八00100009a:三、 SQL 語言的組成#1但使用術語與傳統(tǒng)關系模型術語不同。;存儲模式 ( 內(nèi)模式 ) 稱為“存儲文件” (row) ;屬在正式學習 SQL 語言之前,首先讓我們對 SQL 語言有一個基本認識,介紹一下 SQL 語言 的組成:1. 一個 SQL 數(shù)據(jù)庫是表 (Table) 的集合,它由一個或多個2. 一個 SQL 表由行集構成,一行是列的序列SQL 模式定義。( 集合 ) ,每列與行對應一個數(shù)據(jù)項。3. 一個表或者是一個基本表或者是一個視圖。是由若干基本表或其他視圖構成的表的定義
3、?;颈硎菍嶋H存儲在數(shù)據(jù)庫的表, 而視圖4. 一個基本表可以跨一個或多個存儲文件, 每個存儲文件與外部存儲上一個物理文件對應。5. 用戶可以用 SQL 語句對視圖和基本表進行查詢等操作。在用戶角度來看, 基本表是一樣的,沒有區(qū)別,都是關系 ( 表格 ) 。一個存儲文件也可存放一個或多個基本表。視圖和6.SQL 用戶可以是應用程序,也可以是終端用戶。 SQL 語句可嵌入在宿主語言的程 序中使用,宿主語言有 FORTRAN ,COBOL , PASCAL , PL/I ,C 和 Ada 語言等。 SQL 用戶也能作為獨立的用戶接口,供交互環(huán)境下的終端用戶使用。 #1數(shù)據(jù)庫、四、對數(shù)據(jù)庫進行操作SQ
4、L 包括了所有對數(shù)據(jù)庫的操作,主要是由1. 數(shù)據(jù)定義: 這一部分又稱為“ SQL 基本表、視圖和索引 4 部分。4 個部分組成:DDL ”, 定義數(shù)據(jù)庫的邏輯結構, 包括定義類操作,DML ”,其中包括數(shù)據(jù)查詢和數(shù)據(jù)更新兩大數(shù)據(jù)操縱: 這一部分又稱為“ SQL 其中數(shù)據(jù)更新又包括插入、刪除和更新三種操作。數(shù)據(jù)控制:對用戶訪問數(shù)據(jù)的控制有基本表和視圖的授權、完整性規(guī)則的描述, 事務控制語句等。嵌入式 SQL 語言的使用規(guī)定:規(guī)定 SQL 語句在宿主語言的程序中使用的規(guī)則。下 面我們將分別介紹:#2 ( 一 ) 數(shù)據(jù)定義SQL 數(shù)據(jù)定義功能包括定義數(shù)據(jù)庫、基本表、索引和視圖。首先,讓我們了解一下
5、SQL 所提供的基本數(shù)據(jù)類型:( 如 00100009b)數(shù)據(jù)庫的建立與刪除建立數(shù)據(jù)庫:數(shù)據(jù)庫是一個包括了多個基本表的數(shù)據(jù)集,其語句格式為:CREATE DATABASE 其它參數(shù) 其中, 在系統(tǒng)中必須是唯一的,不能重復,不然將導致數(shù)據(jù)存取失誤。其它參數(shù)因具體數(shù)據(jù)庫實現(xiàn)系統(tǒng)不同而異。例:要建立項目管理數(shù)據(jù)庫 (xmmanage) ,其語句應為:CREATEDATABASExmmanage數(shù)據(jù)庫的刪除:將數(shù)據(jù)庫及其全部內(nèi)容從系統(tǒng)中刪除。 其語句格式為: DROP DATABASE例:刪除項目管理數(shù)據(jù)庫 (xmmanage) ,其語句應為:DROP DATABASE xmmanage基本表的定義及
6、變更本身獨立存在的表稱為基本表, 在 SQL 語言中一個關系唯一對應一個基本表。 基本表的定義指建立基本關系模式,而變更則是指對數(shù)據(jù)庫中已存在的基本表進行刪除與修改。(1) 基本表的定義:基本表是非導出關系,其定義涉及表名、列名及數(shù)據(jù)類型等, 其語句格式為:CREATE(列名UNIQUETABLE . 表名 數(shù)據(jù)類型 缺省值數(shù)據(jù)類型 缺省值 ( 列名,列名NOT NULL / NULL NOTNULL / NULL PRIMARYFOREIGNKEY( 列名 ) KEY( 列名,列名)REFERENCE ( 列名,列名, CHECK( 條件 ) 其它參數(shù) ) 其中,數(shù)據(jù)庫名 . 指出將新建立的
7、表存放于該數(shù)據(jù)庫中; 新建的表由兩部分組成:其一為表和一組列名,其二是實際存放的數(shù)據(jù)( 即可在定義表的同時,直接存放數(shù)據(jù)到表中 ) ;列名為用戶自定義的易于理解的名稱,列名中不能使用空格; 數(shù)據(jù)類型為上面所介紹的幾種標準數(shù)據(jù)類型; NOTNULL/NULL 指出該列是否允許存放空值,SQL 語言支持空值的概念, 所謂空值是“不知道”或“無意義”的值,值得注意的是數(shù)據(jù)“為空值,所以當不允許為空值時,必須明確使用 , UNIQUE 將列按照其規(guī)定的順序進行排列,0”和空格都不是空值,系統(tǒng)一般默認允許NOT NULL ;如不指定排列順序, 則按列的定義順序排列;PRIMARY KEY 用于指定表的主
8、鍵 ( 即關系中的主屬性 ) ,實體完整性約束條件規(guī)定:主鍵 必須是唯一的,非空的;, FOREIGNKEY ( 列名,列名 ) REFERENCE( 列名,列名 ) 是FOREIGNKEY 指定相關列為外鍵,其參照對象為另外 用于指定外鍵參照完整性約束條件, 一個表的指定列, 即使用 REFERENCE 引入的外表中的列, 當不指定外表列名時, 系統(tǒng)將默認其 列名與參照鍵的列名相同, 要注意的是: 使用外鍵時必須使用參照, 另外數(shù)據(jù)的外鍵參照完 整性約束條件規(guī)定:外鍵的值要么與相對應的主鍵相同,要么為空值 ( 具體由實現(xiàn)系統(tǒng)不同 而異 ), CHECK 用于使用指定條件對存入表中的數(shù)據(jù)進行檢
9、查,以確定其合法性,提高數(shù)據(jù)的 安全性。例:要建立一個學生情況表 (student)CREATE TABLE student /創(chuàng)建基本表 student(st_class CHAR(8), / 定義列 st_class 班級,數(shù)據(jù)類型為8 位定長字符串st_no CHAR(10) NOT NULL, / 定義列 st_no 學號,類型為 10 位定長字符串,非空st_name CHAR(8) NOT NULL , / 定義列 st_name 姓名,類型為 8 位定長字符串,非空 st_sex CHAR(2) , / 定義列 st_sex 性別,類型為 2 位定長字符串st_age SMALL
10、INT , / 定義列 st_age 年齡,類型為短整型PRIMARY KEY (st_no)/ 定義 st_no 學號為主鍵。例:要建立課程設置表 (subject)CREATE TABLE subject/ 創(chuàng)建基本表 subject(su_no CHAR(4) NOT NULL , / 定義列 su_no 課號,類型為 4 位定長字符串,非空su_subject CHAR(20) NOT NULL , / 定義列 su_subject 課程名,類型為 20 位定長字符串, 非空su_credit INTEGER , / 定義列 su_credit 學分,類型為長整數(shù) su_period
11、INTEGER , / 定義列 su_period 學時,類型為長整數(shù)su_preno CHAR(4) , /定義列 su_preno 先修課號,類型為4 位定長字符串PRIMARY KEY(su_no)/定義 su_no 課號為主鍵。例:要建立學生選課表(score)CREATE TABLE score /創(chuàng)建基本表 score(st_no CHAR(10) , / 定義列 st_no 學號,類型為 10 位定長字符串su_no CHAR(4) , / 定義列 su_no 課號,類型為 4 位定長字符串 sc_score INTEGER NULL , / 定義列 sc_score ,類型為長
12、整形,可以為空值 FOREIGN KEY (st_no) REFERENCE student , / 從表 student 中引入?yún)⒄胀怄I st_no ,以確 保本表與表 student 的關聯(lián)與同步FOREIGN KEY (suno) REFERENCE subject)/ 從表 subject 中引入?yún)⒄胀怄I su_no ,以確保 本表與表 subject 的關聯(lián)與同步(2) 基本表的刪除:用以從數(shù)據(jù)庫中刪除一個基本表及其全部內(nèi)容,其語句格式為: DROP TABLE . 表名例如:將上面建立的表都刪除DROP TABLE student , subject , score基本表的修改:在
13、基本表建立并使用一段時間后,可能需要根據(jù)實際要求對基本表的結 構進行修改,即增加新的屬性或刪除屬性。增加屬性的語句格式為:ALTER TABLE . 表名 ADD( 數(shù)據(jù)類型 缺省值 NOT NULL / NULL , 數(shù)據(jù)類型缺省值NOT NULL / NULL , UNIQUE ( 列名,列名 ) , PRIMARY KEY( 列名 ) , FOREIGN KEY( 列名,列名 ) REFERENCE ( 列名,列名 ) , CHECK( 條件 ) 其它參數(shù) )例如:在基本表 student 中加入列 stborn 出生日期,數(shù)據(jù)類型為DATE ,且不能為空值ALTER TABLE stu
14、dent ADD (stborn DATE NOT NULL)刪除屬性的語句格式為:ALTER TABLE . 表名 DROP( 數(shù)據(jù)類型 缺省值 NOT NULL / NULL , 數(shù)據(jù)類型 缺省值 NOT NULL / NULL )例如:將基本表 student 中的列 st_age 刪除ALTER TABLE student DROP (st_age)視圖定義與刪除在 SQL 中,視圖是外模式一級數(shù)據(jù)結構的基本單位。 它是從一個或幾個基本表中導出的 表,是從現(xiàn)有基本表中抽取若干子集組成用戶的“專用表”。這種構造方式必須使用 SQL 中的 SELECT 語句來實現(xiàn)。在定義一個視圖時,只是把
15、其定義存放在系統(tǒng)的數(shù)據(jù)中,而并不直接存儲視圖對應的數(shù)據(jù),直到用戶使用視圖時才去求得對應的數(shù)據(jù)。(1) 視圖的定義:定義視圖可以使用 CREATE VIEW 語句實現(xiàn),其語句格式為: CREATE VIEW 視圖名 AS SELECT 語句 從一個基本表中導出視圖:例:從基本表 student 中導出只包括女學生情況的視圖CREATE VIEW WOMANVIEW AS 創(chuàng)/建一個視圖 WOMANVIEWSELECTst_class ,st_no , st_name ,st_age / 選擇列 st_class , st_no ,st_name ,st_age 顯示FROM student /
16、從基本表 student 引入WHERE st_sex= 女 / 引入條件為性別為“女”,注意字符變量都使用單引號引 用從多個基本表中導出視圖: 例如:從基本表 student 和 score 中導出只包括女學生且分數(shù)在 60 分以上的視圖 CREATEVIEW WOMAN_SCORE AS 定義/視圖 WOMANSCORESELECT student.st_class, student.st_no, student.st_name , student.st_age ,score.sc_score / 有選擇性顯示相關列FROM student.score /從基本表 student 和 sc
17、ore 中引入WHERE studen.st_sex=女 AND score.sc_score=60 AND student.st_no=score.st_no/ 選擇條件:性別為“女”且分數(shù)在60 分以上。并使用 st_no 將兩表聯(lián)系起來。以后如果進行這一視圖的應用,則只需使用語句SELECT * FROM WOMAN_SCORE 其/中“ * ”為通配符,代表所有元素(2) 視圖的刪除:用于刪除已不再使用的視圖,其語句格式如下:DROP VIEW 視圖名例:將上面建立的 WOMAN_SCORE 視圖刪除DROP VIEW WOMAN_SCORE而不是邏輯的概念。 在 SQL 中拋棄了索引
18、概念, 直接使用主鍵索引的定義與刪除 索引屬于物理存儲概念,概念。值得一提的是,有些關系 DBMS 同時包括索引機制和主鍵機制,這里我們推薦使用主鍵 機制,因為它對系統(tǒng)資源占用較低且效率較高。(1) 索引的定義:索引是建立在基本表之上的,其語句格式為:CREATE UNIQUE INDEX 索引名 ON. 表名 ( 列名 ASC/DESC ,列名 ASC/DESC )這里,保留字 UNIQUE 表示基本表中的索引值不允許重復,若缺省則表示索引值在表中允許 重復; DESC 表示按索引鍵降序排列,若缺省或 ASC 表示升序排列。例:對基本表 student 中的 st_no 和 st_age 建
19、立索引,分別為升序與降序,且索引值不允許重 復CREATE UNIQUE INDEX STINDEX ON/ 創(chuàng)建索引 STINDEX student(st_no ASC , st_age DESC)/ 對 student 中的 st_no 和 st_age 建立索引 (2) 索引的刪除:DROP INDEX 索引名 例:刪除上面建立的索引 STINDEXDROP INDEX STINDEX#2 ( 二 ) 數(shù)據(jù)查詢SQL 是一種查詢功能很強的語言,只要是數(shù)據(jù)庫存在的數(shù)據(jù),總能通過適當?shù)姆椒▽⑺?從數(shù)據(jù)庫中查找出來。 SQL 中的查詢語句只有一個: SELECT ,它可與其它語句配合完成所有6
20、 個子句。完整的語法如下:的查詢功能。 SELECT 語句的完整語法,可以有 SELECT 目標表的列名或列表達式集合 FROM 基本表或 ( 和 ) 視圖集合 WHERE 條件表達式 GROUP BY 列名集合 HAVING 組條件表達式 O RDER BY 列名集合 ? 整個語句的語義如下:從 FROM 子句中列出的表中,選擇滿足 WHERE 子句中給出的條件 表達式的元組,然后按 GROUPBY 子句 ( 分組子句 ) 中指定列的值分組,再提取滿足 HAVING 子句中組條件表達式的那些組, 按 SELECT 子句給出的列名或列表達式求值輸出。 ORDER 子句 ( 排 序子句)是對輸出
21、的目標表進行重新排序,并可附加說明ASC(升序)或DESC(降序)排列。在 WHERE 子句中的條件表達式 F 中可出現(xiàn)下列操作符和運算函數(shù):算術比較運算符: , , =, =, 。 邏輯運算符: AND , OR, NOT 。集合運算符: UNION( 并 ) , INTERSECT( 交 ) , EXCEPT( 差 ) 。 集合成員資格運算符: IN , NOT IN謂詞: EXISTS( 存在量詞 ) , ALL , SOME , UNIQUE 。聚合函數(shù): AVG( 平均值 ) , MIN( 最小值 ) , MAX( 最大值 ) , SUM( 和 ) , COUNT( 計數(shù) ) 。 F
22、 中運算對象還可以是另一個 SELECT 語句,即 SELECT 語句可以嵌套。上面只是列出了 WHERE 子句中可出現(xiàn)的幾種主要操作, 由于 WHERE 子句中的條件表達式可以 很復雜,因此 SELECT 句型能表達的語義遠比其數(shù)學原形要復雜得多。下面,我們以上面所建立的三個基本表為例,演示一下SELECT 的應用:無條件查詢例:找出所有學生的的選課情況SELECT st_no , su_noFROM score例:找出所有學生的情況SELECT*FROM student“* ”為通配符,表示查找FROM 中所指出關系的所有屬性的值。條件查詢 條件查詢即帶有 WHERE 子句的查詢,所要查詢
23、的對象必須滿足 WHERE 子句給出的條件。 例:找出任何一門課成績在 70 以上的學生情況、課號及分數(shù)SELECT UNIQUE student.st_class , student.st_no , student.st_name , student.st_sex , student.st_age , score.su_no , score.scoreFROM student , scoreWHERE score.score=70 AND score.stno=student.st_no這里使用 UNIQUE 是不從查詢結果集中去掉重復行, 如果使用 DISTINCT 則會去掉重復行。 另
24、外邏輯運算符的優(yōu)先順序為NOTTND -OR。例:找出課程號為 c02 的,考試成績不及格的學生SELECT st_noFROM scoreWHERE su_no= c02 A N D score60排序查詢排序查詢是指將查詢結果按指定屬性的升序(ASC)或降序(DESC)排列,由ORDERBY子句指明。例:查找不及格的課程,并將結果按課程號從大到小排列SELECT UNIQUE su_noFROM scoreWHERE score80 )這里需要明確的是:當查詢涉及多個基本表時用嵌套查詢逐次求解層次分明,具有結構程序設計特點。在嵌套查詢中, IN 是常用到的謂詞。若用戶能確切知道內(nèi)層查詢返回
25、的是單值,那 么也可用算術比較運算符表示用戶的要求。計算查詢計算查詢是指通過系統(tǒng)提供的特定函數(shù) ( 聚合函數(shù) ) 在語句中的直接使用而獲得某些只有經(jīng)過計 算才能得到的結果。常用的函數(shù)有:COUNT(*) 計算元組的個數(shù)COUNT( 列名 )對某一列中的值計算個數(shù)SUM(列名)求某一列值的總和(此列值是數(shù)值型 )AVG(列名)求某一列值的平均值(此列值是數(shù)值型 )MAX(列名)求某一列值中的最大值MIN(列名)求某一列值中的最小值 例:求男學生的總人數(shù)和平均年齡SELECT COUNT(*) , AVG(st_age)FROM studentWHERE st_sex= 男 例:統(tǒng)計選修了課程的學
26、生的人數(shù)SELECT COUNT(DISTINCT st_no)FROM score注意:這里一定要加入DISTINCT ,因為有的學生可能選修了多門課程,但統(tǒng)計時只能1人統(tǒng)計,所以要使用 按 DISTINCT 進行過濾。#2 ( 三 ) 數(shù)據(jù)更新 數(shù)據(jù)更新包括數(shù)據(jù)插入、刪除和修改操作。它們分別由INSERT 語句, DELETE 語句及UPDATE 語句完成。這些操作都可在任何基本表上進行,但在視圖上有所限制。其中,當視 圖是由單個基本表導出時, 可進行插入和修改操作, 但不能進行刪除操作; 當視圖是從多個 基本表中導出時,上述三種操作都不能進行。數(shù)據(jù)插入將數(shù)據(jù)插入 SQL 的基本表有兩種方
27、式:一種是單元組的插入,另一種是多元組的插入。 單元組的插入:向基本表 score 中插入一個成績元組 (100002 ,c02,95) ,可使用以下語句:INSERT INTO score(st_no , su_no , score) VALUES( 100002 , c02, 95)由此,可以給出單元組的插入語句格式:INSERT INTO 表名 ( 列名 1,列名 2? ) VALUES( 列值 1,列值 2? ) 其中,列名序列為要插入值的列名集合,列值序列為要插入的對應值。 若插入的是一個表的全部列值,則列名可以省略不寫如上面的(st_no , su_no , score) 可以省去
28、;若插入的是表的部分列值,則必須列出相應列名,此時,該關系中未列出的列名取空值。 多元組的插入:這是一種把 SELECT 語句查詢結果插入到某個已知的基本表中的方法。例如: 需要在表 score 中求出每個學生的平均成績, 并保留在某個表中。 此時可以先創(chuàng)建一 個新的基本表 stu_avggrade ,再用 INSERT 語句把表 score 中求得的每一個學生的平均成績 ( 用 SELECT 求得 ) 插入至 stu_avggrade 中。CREATE TABLE stu_avggrade(st_no CHAR(10) NOT NULL ,/ 定義列 st_no 學號,類型為 10 位定長字
29、符串,非空 age_grade SMALLINT NOT NULL )/定義列 age_grade 平均分,類型為短整形,非空INSERT INTO stu_avggrade(st_no, age_grade)SELECT st_no , AVG(score)FROM scoreGROUP BY st_no / 因為要求每一個學生所有課程的平均成績,必須按學號分組進行計算。數(shù)據(jù)刪除SQL 的刪除操作是指從基本表中刪除滿足 WHERE 的記錄。如果沒有 WHERE 子句,則刪除表中全部記錄,但表結構依然存在。其語句格式為:DELETE FROM 表名 WHERE 條件表達式 下面舉例說明:單元組
30、的刪除:把學號為 100002 的學生從表 student 中刪除,可用以下語句:DELETE FROM studentWHERE st_no= 100002 / 因為學號為100002 的學生在表 student 中只有一個,所以為單元組的刪除多元組的刪除:學號為 100002 的成績從表 score 中刪除,可用以下語句:DELETE FROM scoreWHERE st_no= 100002 / 由于學號為100002 的元組在表 score 中可能有多個,所以為多元組刪除帶有子查詢的刪除操作:刪除所有不及格的學生記錄,可用以下語句DELETE FROM studentWHERE st_
31、no IN(SELETE st_noFROM scoreWHERE score=70SQL 的刪除語句和修改語句中的WHERE 子句用法與 SELECT 中 WHERE 子句用法相同。數(shù)據(jù)的刪除和修改操作,實際上要先做SELECT 查詢操作,然后再把找到的元組刪除或修改。#2 ( 四 ) 數(shù)據(jù)控制由于數(shù)據(jù)庫管理系統(tǒng)是一個多用戶系統(tǒng), 為了控制用戶對數(shù)據(jù)的存取權利, 保持數(shù)據(jù)的共享及 完全性, SQL 語言提供了一系列的數(shù)據(jù)控制功能。其中,主要包括安全性控制、完整性控制、事務 控制和并發(fā)控制。安全性控制數(shù)據(jù)的安全性是指保護數(shù)據(jù)庫, 以防非法使用造成數(shù)據(jù)泄露和破壞。 保證數(shù)據(jù)安全性的 主要方法是通
32、過對數(shù)據(jù)庫存取權力的控制來防止非法使用數(shù)據(jù)庫中的數(shù)據(jù)。 即限定不同用戶操作不 同的數(shù)據(jù)對象的權限。存取權控制包括權力的授與、 檢查和撤消。 權力授與和撤消命令由數(shù)據(jù)庫管理員或特定應 用人員使用。 系統(tǒng)在對數(shù)據(jù)庫操作前, 先核實相應用戶是否有權在相應數(shù)據(jù)上進行所要求的操 作。(1) 權力授與:權力授與有數(shù)據(jù)庫管理員專用的授權和用戶可用的授權兩種形式。數(shù)據(jù)庫管 理員專用授權命令格式如下:|CONNECT |GRANT|RESOURCE|TO 用戶名 IDENTIFED BY 口令 |DBA |其中, CONNECT 表示數(shù)據(jù)庫管理員允許指定的用戶具有連接到數(shù)據(jù)庫的權力,這種授權 是針對新用戶; R
33、ESOURCE 表示允許用戶建立自己的新關系模式,用戶獲得 CONNECT 權力后, 必須獲得 RESOURCE 權力才能創(chuàng)建自己的新表; DBA 表示數(shù)據(jù)庫管理員將自己的特權授與指 定的用戶。若要同時授與某用戶上述三種授權中的多種權力,則必須通過三個相應的 GRANT 命令指定。另外,具有 CONNECT 和 RESOURCE 授權的用戶可以建立自己的表,并在自己建立的表和 視圖上具有查詢、插入、 修改和刪除的權力。 但通常不能使用其他用戶的關系,除非能獲得 其他用戶轉授給他的相應權力。例:若允許用戶 SSE 連接到數(shù)據(jù)庫并可以建立他自己的關系,則可通過如下命令授與權力: GRANT CON
34、NECT TO SSE INENTIFIED BY BD1928GRANT RESOURCE TO SSE 用戶可用的授權是指用戶將自己擁有的部分或全部權力轉授給其他用戶的命令形式, 其命令 格式如下:|SELECT | |INSERT | |DELETE | GRANT|UPDATE( 列名 1 ,列名 2 ? )|O N| 表名 |TO| 用戶名 | WITH GRANT OPTION |ALTER | | 視圖名 | |PUBLIC|NDEX | |ALL | 若對某一用戶同時授與多種操作權力,則操作命令符號可用“,”相隔。PUBLIC 表示將權力授與數(shù)據(jù)庫的所有用戶,使用時要注意: 任
35、選項 WITH GRANTOPTION 表示接到授權的用戶,具有將其所得到的同時權力再轉授給其他用戶權力。例:如果將表 student 的查詢權授與所有用戶,可使用以下命令:GRANT SELECT ON student TO PUBLIC例:若將表 subject 的插入及修改權力授與用戶 SSE 并使得他具有將這種權力轉授他人的權 力,則可使用以下命令:GRANT INSERT , UPDATE(su_subject) ON subject TO SSE WITH GRANT OPTION 這里, UPDATE 后面跟 su_subject 是指出其所能修改的列。(2) 權力回收:權力回收
36、是指回收指定用戶原已授與的某些權力。與權力授與命令相匹配, 權力回收也有數(shù)據(jù)庫管理員專用和用戶可用的兩種形式。DBA 專用的權力回收命令格式為:|CONNECT |REVOKE|RESOURCE|FROM 用戶名|DBA |用戶可用的權力回收命令格式為:|SELECT |INSERT |DELETE |REVOKE|UPDATE( 列名 1,列名 2 ? ) |ON| 表名 |FROM | 用戶名 |ALTER | | 視圖名 | |PUBLIC|INDEX |ALL |例:回收用戶 SSE 的 DBA 權力:REVOKE DBA FROM SSE完整性控制 數(shù)據(jù)庫的完整性是指數(shù)據(jù)的正確性和相容性, 制的主要目的是防止語義上不正確的數(shù)據(jù)進入數(shù)據(jù)庫。這是數(shù)據(jù)庫理論中的重要概念。 完整性控關系系統(tǒng)中的完整性約束條件包括實體完整性、參照完整性和用戶定義完整性。而完整性約束條件的定義主要是通過CREATE TABLE 語句中的 CHECK 子句來完成。另外,還有一些輔助命令可以進行數(shù)據(jù)完整性保護。如 UNIQUE 和 NOT NULL ,前者用于防止重復值進入數(shù)據(jù)庫,后者用于防止空值事務控制SQL 中支持事務的概念。所謂事務, 要么一個都不做, 是一個不可分割 COMMIT 或 ROLLBACK 結束。事務是并發(fā)控制的基本
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 租客合同終止租房協(xié)議
- 技術開發(fā)與轉讓合同保密范本
- 智能化系統(tǒng)供貨安裝合同樣本
- 礦山企業(yè)輪換工勞動合同模板及示例
- 農(nóng)村土地出租權屬合同樣本
- 標準貨物銷售合同簡版
- 城市配送服務合同一覽
- 小學生種花演講課件
- 影視設備行業(yè)交流服務批發(fā)考核試卷
- 廣播電視節(jié)目的心理影響與教育意義考核試卷
- 大眾汽車使用說明書
- (高清版)DZT 0145-2017 土壤地球化學測量規(guī)程
- 供熱公司安全教育知識
- 高中英語課程綱要
- 《藥物設計學》課件
- 隨機微分方程
- 道路設施施工現(xiàn)場安全管理基本要求
- 公寓樓改造裝修施工方案
- 煙臺大學化學化工學院實驗室儀器設備搬遷項目
- 安全生產(chǎn)管理組織架構圖
- 2022版10kV架空配電線路無人機自主巡檢作業(yè)導則
評論
0/150
提交評論