版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、SQL數(shù)據(jù)庫完全操作手冊SQL 是 Structured Quevy Language(結(jié)構(gòu)化查詢語言) 的縮寫。 SQL 是專為數(shù)據(jù)庫而建立的操作命令集,是一種功能齊全的數(shù)據(jù)庫語言。在使用它時,只需要發(fā)出“做什么”的命令,“怎么做”是不用使用者考慮的。SQL 功能強大、簡單易學(xué)、使用方便,已經(jīng)成為了數(shù)據(jù)庫操作的基礎(chǔ),并且現(xiàn)在幾乎所有的數(shù)據(jù)庫均支持SQL 。#1二、 SQL 數(shù)據(jù)庫數(shù)據(jù)體系結(jié)構(gòu)SQL 數(shù)據(jù)庫的數(shù)據(jù)體系結(jié)構(gòu)基本上是三級結(jié)構(gòu),但使用術(shù)語與傳統(tǒng)關(guān)系模型術(shù)語不同。在 SQL 中,關(guān)系模式( 模式 ) 稱為“基本表”(base table);存儲模式( 內(nèi)模式 ) 稱為“存儲文件”(st
2、ored file);子模式 ( 外模式 ) 稱為“視圖”(view) ;元組稱為“行”(row) ;屬性稱為“列”(column) 。名稱對稱如00100009a:#1三、 SQL 語言的組成在正式學(xué)習(xí) SQL 語言之前,首先讓我們對SQL 語言有一個基本認(rèn)識,介紹一下SQL 語言的組成:1. 一個 SQL 數(shù)據(jù)庫是表 (Table)的集合,它由一個或多個SQL 模式定義。2. 一個 SQL 表由行集構(gòu)成,一行是列的序列 ( 集合 ) ,每列與行對應(yīng)一個數(shù)據(jù)項。3. 一個表或者是一個基本表或者是一個視圖?;颈硎菍嶋H存儲在數(shù)據(jù)庫的表,而視圖是由若干基本表或其他視圖構(gòu)成的表的定義。4. 一個基
3、本表可以跨一個或多個存儲文件,一個存儲文件也可存放一個或多個基本表。每個存儲文件與外部存儲上一個物理文件對應(yīng)。5. 用戶可以用SQL 語句對視圖和基本表進行查詢等操作。在用戶角度來看,視圖和基本表是一樣的,沒有區(qū)別,都是關(guān)系(表格)。6.SQL 用戶可以是應(yīng)用程序,也可以是終端用戶。SQL 語句可嵌入在宿主語言的程序中使用,宿主語言有FORTRAN ,COBOL , PASCAL , PL/I ,C 和 Ada 語言等。 SQL 用戶也能作為獨立的用戶接口,供交互環(huán)境下的終端用戶使用。#1四、對數(shù)據(jù)庫進行操作SQL 包括了所有對數(shù)據(jù)庫的操作,主要是由4 個部分組成:1. 數(shù)據(jù)定義:這一部分又稱
4、為“ SQLDDL ”, 定義數(shù)據(jù)庫的邏輯結(jié)構(gòu),包括定義數(shù)據(jù)庫、基本表、視圖和索引4 部分。2. 數(shù)據(jù)操縱:這一部分又稱為“ SQLDML ”,其中包括數(shù)據(jù)查詢和數(shù)據(jù)更新兩大類操作,其中數(shù)據(jù)更新又包括插入、刪除和更新三種操作。3. 數(shù)據(jù)控制:對用戶訪問數(shù)據(jù)的控制有基本表和視圖的授權(quán)、完整性規(guī)則的描述,事務(wù)控制語句等。4. 嵌入式 SQL 語言的使用規(guī)定:規(guī)定 SQL 語句在宿主語言的程序中使用的規(guī)則。下面我們將分別介紹:#2(一 )數(shù)據(jù)定義SQL 數(shù)據(jù)定義功能包括定義數(shù)據(jù)庫、基本表、索引和視圖。首先,讓我們了解一下SQL 所提供的基本數(shù)據(jù)類型:(如00100009b)1. 數(shù)據(jù)庫的建立與刪除(
5、1) 建立數(shù)據(jù)庫:數(shù)據(jù)庫是一個包括了多個基本表的數(shù)據(jù)集,其語句格式為:CREATEDATABASE其它參數(shù)其中, 在系統(tǒng)中必須是唯一的,不能重復(fù),不然將導(dǎo)致數(shù)據(jù)存取失誤。其它參數(shù)因具體數(shù)據(jù)庫實現(xiàn)系統(tǒng)不同而異。例:要建立項目管理數(shù)據(jù)庫(xmmanage) ,其語句應(yīng)為:CREATEDATABASExmmanage(2) 數(shù)據(jù)庫的刪除:將數(shù)據(jù)庫及其全部內(nèi)容從系統(tǒng)中刪除。其語句格式為:DROPDATABASE例:刪除項目管理數(shù)據(jù)庫(xmmanage),其語句應(yīng)為:DROPDATABASExmmanage2. 基本表的定義及變更本身獨立存在的表稱為基本表,在 SQL 語言中一個關(guān)系唯一對應(yīng)一個基本表。
6、基本表的定義指建立基本關(guān)系模式,而變更則是指對數(shù)據(jù)庫中已存在的基本表進行刪除與修改。(1) 基本表的定義:基本表是非導(dǎo)出關(guān)系,其定義涉及表名、列名及數(shù)據(jù)類型等,其語句格式為:CREATETABLE . (數(shù)據(jù)類型缺省值NOTNULL / NULL, 數(shù)據(jù)類型缺省值 NOTNULL / NULL ., UNIQUE( 列名,列名.), PRIMARYKEY( 列名 ) , FOREIGNKEY( 列名,列名.)REFERENCE ( 列名,列名 .), CHECK( 條件 ) 其它參數(shù))其中,數(shù)據(jù)庫名. 指出將新建立的表存放于該數(shù)據(jù)庫中;新建的表由兩部分組成:其一為表和一組列名,其二是實際存放的
7、數(shù)據(jù)( 即可在定義表的同時,直接存放數(shù)據(jù)到表中) ;列名為用戶自定義的易于理解的名稱,列名中不能使用空格;數(shù)據(jù)類型為上面所介紹的幾種標(biāo)準(zhǔn)數(shù)據(jù)類型;NOTNULL/NULL 指出該列是否允許存放空值,SQL 語言支持空值的概念,所謂空值是“不知道”或“無意義”的值,值得注意的是數(shù)據(jù)“0”和空格都不是空值,系統(tǒng)一般默認(rèn)允許為空值,所以當(dāng)不允許為空值時,必須明確使用NOT NULL ;, UNIQUE 將列按照其規(guī)定的順序進行排列,如不指定排列順序,則按列的定義順序排列; PRIMARY KEY 用于指定表的主鍵 ( 即關(guān)系中的主屬性 ) ,實體完整性約束條件規(guī)定:主鍵必須是唯一的,非空的;, FO
8、REIGNKEY (列名,列名.)REFERENCE( 列名,列名.)是FOREIGNKEY 指定相關(guān)列為外鍵,其參照對象為另外用于指定外鍵參照完整性約束條件,一個表的指定列, 即使用 REFERENCE 引入的外表中的列,當(dāng)不指定外表列名時,系統(tǒng)將默認(rèn)其列名與參照鍵的列名相同,要注意的是:使用外鍵時必須使用參照,另外數(shù)據(jù)的外鍵參照完整性約束條件規(guī)定:外鍵的值要么與相對應(yīng)的主鍵相同,要么為空值( 具體由實現(xiàn)系統(tǒng)不同而異 ), CHECK 用于使用指定條件對存入表中的數(shù)據(jù)進行檢查,以確定其合法性,提高數(shù)據(jù)的安全性。例:要建立一個學(xué)生情況表(student)CREATE TABLE student
9、 /創(chuàng)建基本表student(st_class CHAR(8), /定義列 st_class班級,數(shù)據(jù)類型為8 位定長字符串st_no CHAR(10) NOT NULL, / 定義列 st_no學(xué)號,類型為10位定長字符串,非空st_name CHAR(8) NOT NULL,/ 定義列 st_name 姓名,類型為8 位定長字符串,非空st_sex CHAR(2), / 定義列 st_sex 性別,類型為 2 位定長字符串st_age SMALLINT, / 定義列 st_age年齡,類型為短整型PRIMARY KEY (st_no)/定義 st_no學(xué)號為主鍵。例:要建立課程設(shè)置表(su
10、bject)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學(xué)分,類型為長整數(shù)su_period INTEGER, /定義列 su_period學(xué)時,類型為長整數(shù)su_preno CHAR(4),/定義列 su_preno 先修課號,類型為4 位定長字符串PRIMARY KEY
11、(su_no)/定義 su_no 課號為主鍵。例:要建立學(xué)生選課表(score)CREATE TABLE score /創(chuàng)建基本表 score(st_no CHAR(10), / 定義列 st_no 學(xué)號,類型為 10 位定長字符串su_no CHAR(4), / 定義列 su_no 課號,類型為4 位定長字符串sc_score INTEGER NULL, / 定義列 sc_score,類型為長整形,可以為空值FOREIGN KEY (st_no) REFERENCE student, / 從表 student 中引入?yún)⒄胀怄Ist_no ,以確保本表與表 student的關(guān)聯(lián)與同步FOREIG
12、N KEY (suno) REFERENCE subject)/從表 subject中引入?yún)⒄胀怄Isu_no ,以確保本表與表 subject 的關(guān)聯(lián)與同步(2) 基本表的刪除:用以從數(shù)據(jù)庫中刪除一個基本表及其全部內(nèi)容,其語句格式為:DROP TABLE . 表名例如:將上面建立的表都刪除DROP TABLE student, subject, score(3) 基本表的修改:在基本表建立并使用一段時間后,可能需要根據(jù)實際要求對基本表的結(jié)構(gòu)進行修改,即增加新的屬性或刪除屬性。增加屬性的語句格式為:ALTER TABLE . 表名ADD( 數(shù)據(jù)類型缺省值 NOT NULL / NULL, 數(shù)據(jù)類
13、型缺省值NOT NULL / NULL ., UNIQUE ( 列名,列名.), PRIMARY KEY( 列名 ) , FOREIGN KEY( 列名,列名.) REFERENCE ( 列名,列名.), CHECK( 條件 ) 其它參數(shù))例如:在基本表student中加入列stborn出生日期,數(shù)據(jù)類型為DATE ,且不能為空值A(chǔ)LTER TABLE student ADD (stborn DATE NOT NULL)刪除屬性的語句格式為:ALTER TABLE . 表名DROP( 數(shù)據(jù)類型缺省值NOT NULL / NULL , 數(shù)據(jù)類型缺省值NOT NULL / NULL .)例如:將基
14、本表student中的列st_age刪除ALTER TABLE student DROP (st_age)3. 視圖定義與刪除在 SQL 中,視圖是外模式一級數(shù)據(jù)結(jié)構(gòu)的基本單位。它是從一個或幾個基本表中導(dǎo)出的表,是從現(xiàn)有基本表中抽取若干子集組成用戶的“專用表”。這種構(gòu)造方式必須使用SQL中的 SELECT 語句來實現(xiàn)。在定義一個視圖時,只是把其定義存放在系統(tǒng)的數(shù)據(jù)中,而并不直接存儲視圖對應(yīng)的數(shù)據(jù),直到用戶使用視圖時才去求得對應(yīng)的數(shù)據(jù)。(1) 視圖的定義:定義視圖可以使用 CREATE VIEW 語句實現(xiàn),其語句格式為:CREATE VIEW視圖名AS SELECT語句從一個基本表中導(dǎo)出視圖:例
15、:從基本表student中導(dǎo)出只包括女學(xué)生情況的視圖CREATE VIEW WOMANVIEW AS創(chuàng)/建一個視圖 WOMANVIEWSELECTst_class,st_no, st_name ,st_age /選擇列st_class, st_no ,st_name ,st_age顯示FROM student /從基本表student引入WHERE st_sex= 女 / 引入條件為性別為“女”,注意字符變量都使用單引號引用從多個基本表中導(dǎo)出視圖:例如:從基本表student和score中導(dǎo)出只包括女學(xué)生且分?jǐn)?shù)在60 分以上的視圖CREATEVIEW WOMAN_SCORE AS定義 /視圖W
16、OMANSCORESELECT student.st_class, student.st_no,student.st_name,student.st_age,score.sc_score /有選擇性顯示相關(guān)列FROM student.score /從基本表student和score中引入WHERE studen.st_sex=女AND score.sc_score=60 AND student.st_no=score.st_no/ 選擇條件:性別為“女” 且分?jǐn)?shù)在60 分以上。并使用 st_no 將兩表聯(lián)系起來。以后如果進行這一視圖的應(yīng)用,則只需使用語句SELECT * FROM WOMAN_
17、SCORE其 /中“ * ”為通配符,代表所有元素(2) 視圖的刪除:用于刪除已不再使用的視圖,其語句格式如下:DROP VIEW視圖名例:將上面建立的WOMAN_SCORE視圖刪除DROP VIEW WOMAN_SCORE4. 索引的定義與刪除索引屬于物理存儲概念,而不是邏輯的概念。在 SQL 中拋棄了索引概念,直接使用主鍵概念。值得一提的是,有些關(guān)系 DBMS 同時包括索引機制和主鍵機制,這里我們推薦使用主鍵機制,因為它對系統(tǒng)資源占用較低且效率較高。(1) 索引的定義:索引是建立在基本表之上的,其語句格式為:CREATE UNIQUE INDEX 索引名ON. 表名 ( 列名 ASC/DE
18、SC ,列名 ASC/DESC .)這里,保留字重復(fù); DESCUNIQUE 表示基本表中的索引值不允許重復(fù),若缺省則表示索引值在表中允許表示按索引鍵降序排列,若缺省或ASC 表示升序排列。例:對基本表 student 中的 st_no 和 st_age 建立索引,分別為升序與降序,且索引值不允許重復(fù)CREATE UNIQUE INDEX STINDEX ON/創(chuàng)建索引STINDEXstudent(st_no ASC, st_age DESC)/對student中的st_no和st_age建立索引(2) 索引的刪除:DROP INDEX索引名例:刪除上面建立的索引STINDEXDROP IND
19、EX STINDEX#2 (二)數(shù)據(jù)查詢SQL是一種查詢功能很強的語言,只要是數(shù)據(jù)庫存在的數(shù)據(jù),總能通過適當(dāng)?shù)姆椒▽⑺鼜臄?shù)據(jù)庫中查找出來。SQL 中的查詢語句只有一個:SELECT ,它可與其它語句配合完成所有的查詢功能。SELECT 語句的完整語法,可以有6 個子句。完整的語法如下:SELECT 目標(biāo)表的列名或列表達式集合FROM 基本表或 ( 和 ) 視圖集合 WHERE 條件表達式 GROUP BY 列名集合 HAVING 組條件表達式 ORDER BY 列名集合 ?整個語句的語義如下:從 FROM 子句中列出的表中,選擇滿足 WHERE 子句中給出的條件表達式的元組,然后按 GROUP
20、BY 子句 ( 分組子句 ) 中指定列的值分組,再提取滿足 HAVING 子句中組條件表達式的那些組,按 SELECT 子句給出的列名或列表達式求值輸出。ORDER 子句序子句 ) 是對輸出的目標(biāo)表進行重新排序,并可附加說明ASC( 升序 ) 或 DESC( 降序 ) 排列。(排在 WHERE 子句中的條件表達式 F 中可出現(xiàn)下列操作符和運算函數(shù):算術(shù)比較運算符: , ,=, =,。邏輯運算符:AND, OR, NOT。集合運算符:UNION( 并 ) , INTERSECT( 交 ) , EXCEPT( 差 ) 。集合成員資格運算符:IN , NOT IN謂詞: EXISTS( 存在量詞 )
21、 , ALL , SOME , UNIQUE 。聚合函數(shù): AVG( 平均值 ) , MIN( 最小值 ) , MAX( 最大值 ) , SUM( 和 ) , COUNT( 計數(shù) ) 。F 中運算對象還可以是另一個SELECT 語句,即SELECT 語句可以嵌套。上面只是列出了WHERE 子句中可出現(xiàn)的幾種主要操作,由于 WHERE 子句中的條件表達式可以很復(fù)雜,因此SELECT 句型能表達的語義遠比其數(shù)學(xué)原形要復(fù)雜得多。下面,我們以上面所建立的三個基本表為例,演示一下SELECT的應(yīng)用:1. 無條件查詢例:找出所有學(xué)生的的選課情況SELECT st_no, su_noFROM score例:
22、找出所有學(xué)生的情況SELECT*FROM student“* ”為通配符,表示查找FROM 中所指出關(guān)系的所有屬性的值。2. 條件查詢條件查詢即帶有WHERE 子句的查詢,所要查詢的對象必須滿足WHERE 子句給出的條件。例:找出任何一門課成績在70以上的學(xué)生情況、課號及分?jǐn)?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 AN
23、D score.stno=student.st_no這里使用 UNIQUE 是不從查詢結(jié)果集中去掉重復(fù)行,如果使用DISTINCT則會去掉重復(fù)行。另外邏輯運算符的優(yōu)先順序為NOT AND OR。例:找出課程號為c02 的,考試成績不及格的學(xué)生SELECT st_noFROM scoreWHERE su_no=c02 AND score603. 排序查詢排序查詢是指將查詢結(jié)果按指定屬性的升序(ASC) 或降序(DESC) 排列,由ORDERBY 子句指明。例:查找不及格的課程,并將結(jié)果按課程號從大到小排列SELECT UNIQUE su_noFROM scoreWHERE score80 )這里
24、需要明確的是:當(dāng)查詢涉及多個基本表時用嵌套查詢逐次求解層次分明,具有結(jié)構(gòu)程序設(shè)計特點。在嵌套查詢中, IN 是常用到的謂詞。若用戶能確切知道內(nèi)層查詢返回的是單值,那么也可用算術(shù)比較運算符表示用戶的要求。5. 計算查詢計算查詢是指通過系統(tǒng)提供的特定函數(shù) ( 聚合函數(shù) ) 在語句中的直接使用而獲得某些只有經(jīng)過計算才能得到的結(jié)果。常用的函數(shù)有:COUNT(*) 計算元組的個數(shù)COUNT( 列名 ) 對某一列中的值計算個數(shù)SUM( 列名)求某一列值的總和(此列值是數(shù)值型)AVG( 列名MAX( 列名)求某一列值的平均值求某一列值中的最大值(此列值是數(shù)值型)MIN( 列名 ) 求某一列值中的最小值例:求
25、男學(xué)生的總?cè)藬?shù)和平均年齡SELECT COUNT(*), AVG(st_age)FROM studentWHERE st_sex= 男例:統(tǒng)計選修了課程的學(xué)生的人數(shù)SELECT COUNT(DISTINCT st_no)FROM score注意:這里一定要加入DISTINCT ,因為有的學(xué)生可能選修了多門課程,但統(tǒng)計時只能1人統(tǒng)計,所以要使用按 DISTINCT 進行過濾。#2 ( 三 ) 數(shù)據(jù)更新數(shù)據(jù)更新包括數(shù)據(jù)插入、刪除和修改操作。它們分別由INSERT 語句, DELETE 語句及UPDATE 語句完成。這些操作都可在任何基本表上進行,但在視圖上有所限制。其中,當(dāng)視圖是由單個基本表導(dǎo)出時
26、,可進行插入和修改操作,但不能進行刪除操作;當(dāng)視圖是從多個基本表中導(dǎo)出時,上述三種操作都不能進行。1. 數(shù)據(jù)插入將數(shù)據(jù)插入SQL 的基本表有兩種方式:一種是單元組的插入,另一種是多元組的插入。單元組的插入:向基本表score中插入一個成績元組(100002,c02 ,95),可使用以下語句:INSERT INTO score(st_no,su_no,score) VALUES(100002,c02 ,95)由此,可以給出單元組的插入語句格式:INSERT INTO表名 ( 列名 1,列名2? ) VALUES( 列值1,列值2? )其中,列名序列為要插入值的列名集合,列值序列為要插入的對應(yīng)值。
27、若插入的是一個表的全部列值,則列名可以省略不寫如上面的(st_no , su_no , score) 可以省去;若插入的是表的部分列值,則必須列出相應(yīng)列名,此時,該關(guān)系中未列出的列名取空值。多元組的插入:這是一種把SELECT 語句查詢結(jié)果插入到某個已知的基本表中的方法。例如: 需要在表 score 中求出每個學(xué)生的平均成績,并保留在某個表中。此時可以先創(chuàng)建一個新的基本表stu_avggrade,再用 INSERT 語句把表 score中求得的每一個學(xué)生的平均成績( 用 SELECT 求得 ) 插入至 stu_avggrade 中。CREATE TABLE stu_avggrade(st_no
28、 CHAR(10) NOT NULL, / 定義列 st_no 學(xué)號,類型為10 位定長字符串,非空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 /因為要求每一個學(xué)生所有課程的平均成績,必須按學(xué)號分組進行計算。2. 數(shù)據(jù)刪除SQL 的刪除操作是指從基本表中刪除滿足 WHERE 的記錄。如果沒有 WHERE 子句,則刪除表中全部記錄,但表結(jié)構(gòu)依然存在
29、。其語句格式為:DELETE FROM表名 WHERE 條件表達式下面舉例說明:單元組的刪除:把學(xué)號為100002 的學(xué)生從表student中刪除,可用以下語句:DELETE FROM studentWHERE st_no= 100002 / 因為學(xué)號為100002 的學(xué)生在表student中只有一個,所以為單元組的刪除多元組的刪除:學(xué)號為100002 的成績從表score 中刪除,可用以下語句:DELETE FROM scoreWHERE st_no= 100002 / 由于學(xué)號為100002 的元組在表score 中可能有多個,所以為多元組刪除帶有子查詢的刪除操作:刪除所有不及格的學(xué)生記錄
30、,可用以下語句DELETE FROM studentWHERE st_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ù)的存取權(quán)利, 保持?jǐn)?shù)據(jù)的共享及完全性, SQL 語言提供了一系列的數(shù)據(jù)控制功能。其中,主要包括安全性控制、完整性控制、事務(wù)控制和并發(fā)控制。1. 安全性控制數(shù)據(jù)的安全性是指保護數(shù)
31、據(jù)庫,以防非法使用造成數(shù)據(jù)泄露和破壞。保證數(shù)據(jù)安全性的主要方法是通過對數(shù)據(jù)庫存取權(quán)力的控制來防止非法使用數(shù)據(jù)庫中的數(shù)據(jù)。即限定不同用戶操作不同的數(shù)據(jù)對象的權(quán)限。存取權(quán)控制包括權(quán)力的授與、 檢查和撤消。 權(quán)力授與和撤消命令由數(shù)據(jù)庫管理員或特定應(yīng)用人員使用。 系統(tǒng)在對數(shù)據(jù)庫操作前, 先核實相應(yīng)用戶是否有權(quán)在相應(yīng)數(shù)據(jù)上進行所要求的操作。(1) 權(quán)力授與:權(quán)力授與有數(shù)據(jù)庫管理員專用的授權(quán)和用戶可用的授權(quán)兩種形式。數(shù)據(jù)庫管理員專用授權(quán)命令格式如下:|CONNECT |GRANT|RESOURCE|TO用戶名IDENTIFED BY口令|DBA |其中, CONNECT 表示數(shù)據(jù)庫管理員允許指定的用戶具有
32、連接到數(shù)據(jù)庫的權(quán)力,這種授權(quán)是針對新用戶;RESOURCE表示允許用戶建立自己的新關(guān)系模式,用戶獲得CONNECT 權(quán)力后,必須獲得RESOURCE權(quán)力才能創(chuàng)建自己的新表;DBA 表示數(shù)據(jù)庫管理員將自己的特權(quán)授與指定的用戶。若要同時授與某用戶上述三種授權(quán)中的多種權(quán)力,則必須通過三個相應(yīng)的GRANT命令指定。另外,具有CONNECT 和 RESOURCE 授權(quán)的用戶可以建立自己的表,并在自己建立的表和視圖上具有查詢、插入、修改和刪除的權(quán)力。但通常不能使用其他用戶的關(guān)系,除非能獲得其他用戶轉(zhuǎn)授給他的相應(yīng)權(quán)力。例:若允許用戶SSE 連接到數(shù)據(jù)庫并可以建立他自己的關(guān)系,則可通過如下命令授與權(quán)力:GRA
33、NT CONNECT TO SSE INENTIFIED BY BD1928GRANT RESOURCE TO SSE用戶可用的授權(quán)是指用戶將自己擁有的部分或全部權(quán)力轉(zhuǎn)授給其他用戶的命令形式,其命令格式如下:|SELECT |INSERT |DELETE |GRANT|UPDATE( 列名1 ,列名2 ? )|O N| 表名|TO| 用戶名 | WITH GRANT OPTION|ALTER | |視圖名| |PUBLIC|NDEX |ALL |若對某一用戶同時授與多種操作權(quán)力,則操作命令符號可用“,”相隔。PUBLIC 表示將權(quán)力授與數(shù)據(jù)庫的所有用戶,使用時要注意:任選項WITH GRANT
34、OPTION表示接到授權(quán)的用戶,具有將其所得到的同時權(quán)力再轉(zhuǎn)授給其他用戶權(quán)力。例:如果將表student的查詢權(quán)授與所有用戶,可使用以下命令:GRANT SELECT ON student TO PUBLIC例:若將表subject的插入及修改權(quán)力授與用戶SSE 并使得他具有將這種權(quán)力轉(zhuǎn)授他人的權(quán)力,則可使用以下命令:GRANT INSERT , UPDATE(su_subject) ON subject TO SSE WITH GRANT OPTION 這里, UPDATE 后面跟 su_subject 是指出其所能修改的列。(2) 權(quán)力回收:權(quán)力回收是指回收指定用戶原已授與的某些權(quán)力。與權(quán)
35、力授與命令相匹配,權(quán)力回收也有數(shù)據(jù)庫管理員專用和用戶可用的兩種形式。DBA 專用的權(quán)力回收命令格式為:|CONNECT |REVOKE|RESOURCE|FROM用戶名|DBA |用戶可用的權(quán)力回收命令格式為:|SELECT |INSERT |DELETE |REVOKE|UPDATE(列名 1,列名 2? ) |ON| 表名|FROM | 用戶名 |ALTER | |視圖名 | |PUBLIC|INDEX |ALL |例:回收用戶SSE 的 DBA 權(quán)力:REVOKE DBA FROM SSE2. 完整性控制數(shù)據(jù)庫的完整性是指數(shù)據(jù)的正確性和相容性,這是數(shù)據(jù)庫理論中的重要概念。完整性控制的主要目的是防止語義上不正確的數(shù)據(jù)進入數(shù)據(jù)庫。關(guān)系系統(tǒng)中的完整性約束條件包括實體完整性、參照完整性和用戶定義完整性。而完整性約束條件的定義主要是通過CREATE TABLE語句中的 CHECK 子句來完成。另外,還有一些輔助命令可以進行數(shù)據(jù)完整性保護。如 UNIQUE 和 NOT NULL ,前者用于防止重復(fù)值進入數(shù)據(jù)庫,后者用于防止空值。3. 事務(wù)控制事務(wù)是并發(fā)控制的基本單位,也是恢復(fù)的基本單位。在SQL 中支持事務(wù)的概念。所謂事務(wù),是用戶定義的一個操作序列( 集合
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024版無人駕駛汽車測試協(xié)議
- 二零二四年度LED路燈購銷合同協(xié)議書3篇
- 二零二五年度餐飲行業(yè)營銷推廣服務(wù)合同3篇
- 2024版履約擔(dān)保公司履約擔(dān)保管理系統(tǒng)
- 2025年生態(tài)小區(qū)綠化水資源利用承包合同3篇
- 建筑碗扣支架出租合同(2025版)3篇
- 2024路演合同范本:路演活動應(yīng)急預(yù)案合同3篇
- 二零二五年度環(huán)??萍妓幚砑夹g(shù)與應(yīng)用合同3篇
- 二零二五版防盜門品牌加盟與區(qū)域經(jīng)營合同3篇
- 2025年度旅游度假村麻石景觀設(shè)計與施工合同4篇
- 《庖丁解?!帆@獎?wù)n件(省級公開課一等獎)-完美版PPT
- 化工園區(qū)危險品運輸車輛停車場建設(shè)標(biāo)準(zhǔn)
- 6月大學(xué)英語四級真題(CET4)及答案解析
- 氣排球競賽規(guī)則
- 電梯維修保養(yǎng)報價書模板
- 危險化學(xué)品目錄2023
- FZ/T 81024-2022機織披風(fēng)
- GB/T 33141-2016鎂鋰合金鑄錠
- JJF 1069-2012 法定計量檢定機構(gòu)考核規(guī)范(培訓(xùn)講稿)
- 綜合管廊工程施工技術(shù)概述課件
- 公積金提取單身聲明
評論
0/150
提交評論