第6章 創(chuàng)建與使用數(shù)據(jù)表_第1頁(yè)
第6章 創(chuàng)建與使用數(shù)據(jù)表_第2頁(yè)
第6章 創(chuàng)建與使用數(shù)據(jù)表_第3頁(yè)
第6章 創(chuàng)建與使用數(shù)據(jù)表_第4頁(yè)
第6章 創(chuàng)建與使用數(shù)據(jù)表_第5頁(yè)
已閱讀5頁(yè),還剩56頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第第6 6章章 創(chuàng)建與使用數(shù)據(jù)表創(chuàng)建與使用數(shù)據(jù)表數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)1. 創(chuàng)建和管理數(shù)據(jù)庫(kù)創(chuàng)建和管理數(shù)據(jù)庫(kù) CREATE DATABASE數(shù)據(jù)庫(kù)名數(shù)據(jù)庫(kù)名 ON PRIMARY(NAME =邏輯數(shù)據(jù)文件名邏輯數(shù)據(jù)文件名, FILENAME= 操作數(shù)據(jù)文件路徑和文件名操作數(shù)據(jù)文件路徑和文件名 ,SIZE=文件長(zhǎng)度文件長(zhǎng)度 ,MAXSIZE=最大長(zhǎng)度最大長(zhǎng)度 ,F(xiàn)ILEROWTH=文件增長(zhǎng)率文件增長(zhǎng)率),n LOG ON (NAME=邏輯日志文件名邏輯日志文件名, FILENAME= 操作日志文件路徑和文件名操作日志文件路徑和文件名 ,SIZE=文件長(zhǎng)度文件長(zhǎng)度 ),n FOR RESTORE 子句中:子

2、句中:PRIMARY指明主文件名;指明主文件名;SIZE說(shuō)明文件的大小,數(shù)據(jù)庫(kù)文件最說(shuō)明文件的大小,數(shù)據(jù)庫(kù)文件最小為小為1MB,默認(rèn)值為,默認(rèn)值為3MB;FILEROWTH說(shuō)明文件的增長(zhǎng)率,默認(rèn)值為說(shuō)明文件的增長(zhǎng)率,默認(rèn)值為10%。FOR RESTORE子句說(shuō)明重建一個(gè)數(shù)據(jù)庫(kù),該重建的數(shù)據(jù)庫(kù)用于子句說(shuō)明重建一個(gè)數(shù)據(jù)庫(kù),該重建的數(shù)據(jù)庫(kù)用于數(shù)據(jù)恢復(fù)操作。數(shù)據(jù)恢復(fù)操作。 【例例5-1】建立學(xué)生選課庫(kù)。建立學(xué)生選課庫(kù)。數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)【例例5-2】將學(xué)生選課庫(kù)刪除可使用下述語(yǔ)句。將學(xué)生選課庫(kù)刪除可使用下述語(yǔ)句。 DROP DATABASE 學(xué)生選課庫(kù)學(xué)生選課庫(kù)數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)數(shù)據(jù)表數(shù)據(jù)表CREATE TABL

3、E表名表名(列名列名類型類型|AS表表達(dá)式達(dá)式 字段約束字段約束 , 記錄約束記錄約束)(1) 字段約束字段約束1) NOT NULL|NULL:不允許或允許字段值為空。:不允許或允許字段值為空。2) PRIMARY KEY CLUSTERED|NON CLUSTERED:字段為主碼并建立聚集:字段為主碼并建立聚集或非聚集索引。或非聚集索引。3) REFERENCE參照表參照表(對(duì)應(yīng)字段對(duì)應(yīng)字段):定義被參照表及字段。:定義被參照表及字段。4) DEFAULT缺省值缺省值:定義字段的缺省值。:定義字段的缺省值。5) CHECK(條件條件):定義字段應(yīng)滿足的條件表達(dá)式。:定義字段應(yīng)滿足的條件表達(dá)

4、式。6) IDENTITY(初始值初始值,步長(zhǎng)步長(zhǎng)):定義字段為數(shù)值型數(shù)據(jù),并指出它的初:定義字段為數(shù)值型數(shù)據(jù),并指出它的初始值和逐步增加的步長(zhǎng)值。始值和逐步增加的步長(zhǎng)值。 (2) 記錄約束記錄約束 CONSTRAINT約束名約束名約束式約束式1) PRIMARY KEY CLUSTERED|NON CLUSTERED(列名組列名組) 2) FOREIGN KEY(外碼外碼) REFERENCES參照表參照表(對(duì)應(yīng)列對(duì)應(yīng)列): 3) CHECK(條件表達(dá)式條件表達(dá)式):定義記錄應(yīng)滿足的條件。:定義記錄應(yīng)滿足的條件。4) UNIQUE(列組列組):定義不允許重復(fù)值的字段組。:定義不允許重復(fù)值的字

5、段組。 數(shù)據(jù)表數(shù)據(jù)表【例例5-3】創(chuàng)建一個(gè)部門表。創(chuàng)建一個(gè)部門表。CREATE TABLE 部門部門(代碼代碼 smallint INDENTITY(1,1) PRIMARY KEY CLUSTERED, 名稱名稱 VARCHAR(50) NOT NULL, 負(fù)責(zé)人負(fù)責(zé)人 CHAR(8)數(shù)據(jù)表數(shù)據(jù)表【例例5-4】建立一個(gè)職工表。建立一個(gè)職工表。 CREATE TABLE 職工職工( 編號(hào)編號(hào)smallint PRIMARY KEY CLUSTERED, 姓名姓名 CHAR(8), 基本工資基本工資 smallmoney, 實(shí)發(fā)工資實(shí)發(fā)工資 AS 基本工資基本工資+附加工資,附加工資, 部門代碼

6、部門代碼 smallint REFERENCES 部門部門(代代碼碼), 性別性別 CHAR(2) DEFAULT 男男 CHECK( 性性別別IN (男男,女女)數(shù)據(jù)表數(shù)據(jù)表(1)(1)修改基本表修改基本表1) 修改字段的定義。修改字段的定義。 ALTER TABLE表名表名 ALTER COLUMN列名列名新類型新類型 NULL|NOT NULL約束定義約束定義2) 增加字段和表約束規(guī)則。增加字段和表約束規(guī)則。 ALTER TABLE表名表名ADD列定義列定義|表約束定義表約束定義 3) 刪除字段或約束規(guī)則。刪除字段或約束規(guī)則。 ALTER TABLE表名表名DROPCONSTRAINT約

7、束約束名名|COLUMN列名列名4) 使約束有效或無(wú)效。使約束有效或無(wú)效。 ALTER TABLE表名表名CHECK|NOCHECK CONSTRAINT ALL|約束名組約束名組(2) (2) 刪除基本表刪除基本表: : DROP TABLE表名表名 數(shù)據(jù)表數(shù)據(jù)表【例例5-5】為表為表example1增加增加Column_b列。該列。該列的數(shù)據(jù)類型為列的數(shù)據(jù)類型為Varchar(20),并允許有,并允許有NULL值存在。值存在。 CREATE TABLE example1(Column_a int) GO ALTER TABLE example1 ADD Column_b Varchar(2

8、0) NULL GO【例例5-6】刪除表刪除表example1的列的列Column_b。 ALTER TABLE example1 DROP COLUMN Column_b GO【例例5-7】使表中的約束失效后,再重新有效。使表中的約束失效后,再重新有效。 CREATE TABLE example2 (編號(hào)編號(hào) int NOT NULL, 姓名姓名 varchar(10) NOT NULL, 工資工資 money NOT NULL, CONSTRAINT 工資約束工資約束 CHECK(工資工資10000) GO ALTER TABLE example2 NOCHECK CONSTRAINT 工

9、資約束工資約束 GO ALTER TABLE example2 CHECK CONSTRAINT 工資約束工資約束【例例5-8】使用使用CREATE TABLECREATE TABLE語(yǔ)句創(chuàng)建語(yǔ)句創(chuàng)建“BookBook”表,表,“BookBook”表用來(lái)表用來(lái)存放圖書(shū)的各種信息,包括圖書(shū)編號(hào)、圖書(shū)名稱、圖書(shū)類別號(hào)、存放圖書(shū)的各種信息,包括圖書(shū)編號(hào)、圖書(shū)名稱、圖書(shū)類別號(hào)、作者、出版社、出版日期、入庫(kù)日期、價(jià)格、狀態(tài)等屬性。作者、出版社、出版日期、入庫(kù)日期、價(jià)格、狀態(tài)等屬性。數(shù)據(jù)表數(shù)據(jù)表6.2 數(shù)據(jù)更改功能 n6.2.1 插入數(shù)據(jù) n6.2.2 更新數(shù)據(jù) n6.2.3 刪除數(shù)據(jù)6.2.1 插入數(shù)據(jù)

10、 n插入單行記錄的插入單行記錄的INSERT語(yǔ)句的格式為:語(yǔ)句的格式為:INSERT INTO () VALUES (值表)(值表)n功能:新增一個(gè)符合表結(jié)構(gòu)的數(shù)據(jù)行,將功能:新增一個(gè)符合表結(jié)構(gòu)的數(shù)據(jù)行,將值表數(shù)據(jù)按表中列定義順序值表數(shù)據(jù)按表中列定義順序或列名表順序或列名表順序賦給對(duì)應(yīng)列名。賦給對(duì)應(yīng)列名。注意值列表中的值與列名表中的列按值列表中的值與列名表中的列按位置順序?qū)?yīng),它們的數(shù)據(jù)類型位置順序?qū)?yīng),它們的數(shù)據(jù)類型必須一致。必須一致。如果如果后邊沒(méi)有指明列名,后邊沒(méi)有指明列名,則新插入記錄的值的順序必須與則新插入記錄的值的順序必須與表中列的定義順序一致,且每一表中列的定義順序一致,且每一個(gè)

11、列均有值(可以為空)。個(gè)列均有值(可以為空)。示例n例例1將新生記錄(將新生記錄(95020,陳冬,男,信息系,陳冬,男,信息系,18歲)插入到歲)插入到Student表中。表中。INSERT INTO Student VALUES (9521105, 陳冬陳冬, 男男, 18, 信息系信息系)n例例2在在SC表中插入一新記錄,成績(jī)暫缺。表中插入一新記錄,成績(jī)暫缺。INSERT INTO SC(Sno, Cno, XKLB) VALUES(9521105, c01, 必修必修) 實(shí)際插入的值為:實(shí)際插入的值為: (9521105, c01 ,NULL ,必修必修) 6.2.2 更新數(shù)據(jù) n用U

12、PDATE語(yǔ)句實(shí)現(xiàn)。n格式: UPDATE SET , n WHERE 無(wú)條件更新n例1. 將所有學(xué)生的年齡加1。UPDATE Student SET Sage = Sage + 1有條件更新n1. 基于本表?xiàng)l件的更新n例2. 將9512101學(xué)生的年齡改為21歲UPDATE Student SET Sage = 21WHERE Sno = 9512101 2. 基于其他表?xiàng)l件的更新n例3:將信息系全體學(xué)生的成績(jī)?cè)O(shè)置為5分;并再加2分。n(1)用子查詢實(shí)現(xiàn))用子查詢實(shí)現(xiàn)UPDATE SC SET Grade = Grade + 5 WHERE Sno IN(SELECT Sno FROM St

13、udent WHERE Sdept = 計(jì)算機(jī)系計(jì)算機(jī)系 )n(2)用多表連接實(shí)現(xiàn))用多表連接實(shí)現(xiàn)UPDATE SC SET Grade = Grade + 5 FROM SC JOIN Student ON SC.Sno = Student.Sno WHERE Sdept = 計(jì)算機(jī)系計(jì)算機(jī)系2. 基于其他表?xiàng)l件的更新n例3:將信息系全體學(xué)生的成績(jī)加1分。n(2)用多表連接實(shí)現(xiàn))用多表連接實(shí)現(xiàn)UPDATE SC SET Grade = Grade + 5 FROM SC JOIN Student ON SC.Sno = Student.Sno WHERE Sdept = 計(jì)算機(jī)系計(jì)算機(jī)系6.

14、2.3 刪除數(shù)據(jù) n用DELETE語(yǔ)句實(shí)現(xiàn)n格式:DELETE FROM WHERE 無(wú)條件刪除n例1. 刪除所有學(xué)生的選課記錄。DELETE FROM SC 有條件刪除 n(1)基于本表?xiàng)l件的刪除。n例2刪除所有不及格學(xué)生的修課記錄。 DELETE FROM SC WHERE Grade 60 基于其他表?xiàng)l件的刪除n例3刪除信息系不及格學(xué)生的修課記錄。n(1)用子查詢實(shí)現(xiàn))用子查詢實(shí)現(xiàn)DELETE FROM SC WHERE Grade 60 AND Sno IN ( SELECT Sno FROM Student WHERE Sdept = 計(jì)算機(jī)系計(jì)算機(jī)系 )基于其他表?xiàng)l件的刪除n例3刪

15、除信息系不及格學(xué)生的修課記錄。n(2)用多表連接實(shí)現(xiàn))用多表連接實(shí)現(xiàn)DELETE FROM SC FROM SC JOIN Student ON SC.Sno = Student.SnoWHERE Sdept = 計(jì)算機(jī)系計(jì)算機(jī)系A(chǔ)ND Grade 60 * *省略省略WHEREWHERE子句,將刪除表中所有的記錄。子句,將刪除表中所有的記錄。* *使用使用DELETEDELETE刪除的記錄會(huì)存放在日志中,不刪除的記錄會(huì)存放在日志中,不是一種永久刪除的方式。是一種永久刪除的方式。 表數(shù)據(jù)的刪表數(shù)據(jù)的刪TRUNCATETRUNCATE語(yǔ)句語(yǔ)句刪除數(shù)據(jù)。刪除數(shù)據(jù)。整個(gè)數(shù)據(jù)頁(yè)的釋放,與整個(gè)數(shù)據(jù)頁(yè)的釋

16、放,與DELETEDELETE語(yǔ)句相同,只刪語(yǔ)句相同,只刪除表內(nèi)數(shù)據(jù),表結(jié)構(gòu)保留。除表內(nèi)數(shù)據(jù),表結(jié)構(gòu)保留。TRUNCATETRUNCATE語(yǔ)句的語(yǔ)法是:語(yǔ)句的語(yǔ)法是: TRUNCATE TABLE table_nameTRUNCATE TABLE table_name* *是一種無(wú)日志記錄的刪除,用該語(yǔ)句刪除后是一種無(wú)日志記錄的刪除,用該語(yǔ)句刪除后無(wú)法進(jìn)行數(shù)據(jù)恢復(fù),因此使用時(shí)應(yīng)十分謹(jǐn)慎。無(wú)法進(jìn)行數(shù)據(jù)恢復(fù),因此使用時(shí)應(yīng)十分謹(jǐn)慎。 1. 使用使用SQL Server Management Studio刪除數(shù)刪除數(shù)據(jù)表?yè)?jù)表 2. 使用使用Transact-SQL語(yǔ)句刪除數(shù)據(jù)表語(yǔ)句刪除數(shù)據(jù)表格式是:格

17、式是:DROP TABLE table_name*不能刪除正在使用的數(shù)據(jù)表;不能刪除正在使用的數(shù)據(jù)表;* *也不要企圖刪除系統(tǒng)表也不要企圖刪除系統(tǒng)表。 7 7、表結(jié)構(gòu)的刪、表結(jié)構(gòu)的刪4. 創(chuàng)建和管理索引 (1) 創(chuàng)建索引創(chuàng)建索引 CTEATE UNIQUE CLUSTERED|NON CLUSTERED INDEX索引名索引名ON表表名名(索引列組索引列組)(2) 刪除索引刪除索引 DROP INDEX表名表名.索引名索引名 【例例6-8】創(chuàng)建一個(gè)惟一聚簇索引的示例。創(chuàng)建一個(gè)惟一聚簇索引的示例。 CREATE TABLE emp_pay (employeeID int NOT NULL, ba

18、se_Pay money NOT NULL, commission decimal(2,2) NOT NULL) GO INSERT emp_Pay VALUES (1,500,10)GO CREATE UNIQUE CLUSTERED INDEX employeeID_ind ON emp_pay (employeeID)【例例6-9】創(chuàng)建一個(gè)復(fù)合索引的示例。創(chuàng)建一個(gè)復(fù)合索引的示例。 CREATE TABLE order_emp(orderID int INDENTIEY(1000,1), employeeID int NOT NULL, orderdate datetime NOT NUL

19、L DEFAULT GETDATE( ), orderamount money NOT NULL) GO INSERT order_emp(employeeID,orderdate,orderamount) VALUES (7,3/21/98,2178.98) GO CREATE INDEX emp_order_ind ON order_emp(orderID,employeeID) GO【例例6-12】刪除索引。刪除索引。 DROP INDEX authors.zip_ind5. 創(chuàng)建和管理視圖 (1) 創(chuàng)建視圖創(chuàng)建視圖創(chuàng)建視圖的語(yǔ)法為:創(chuàng)建視圖的語(yǔ)法為: CREATE VIEW視圖名視圖名

20、(列名組列名組) WITH ENCRYPTION AS子查詢子查詢 WITH CHECK OPTION (2) 刪除視圖刪除視圖 DROP VIEW 視圖名組視圖名組 6. 創(chuàng)建和管理缺省(1)創(chuàng)建缺省創(chuàng)建缺省 CREATE DEFAULT缺省名缺省名as (2) 綁定缺省綁定缺省 EXEC sp_bindfault 缺省名缺省名,表名表名.列名列名系統(tǒng)存儲(chǔ)過(guò)程執(zhí)行時(shí)的格式為:系統(tǒng)存儲(chǔ)過(guò)程執(zhí)行時(shí)的格式為: EXEC存儲(chǔ)過(guò)程名存儲(chǔ)過(guò)程名參數(shù)組參數(shù)組 如果參數(shù)是常量,則要加定界符如果參數(shù)是常量,則要加定界符 。 (3) 解除缺省解除缺省EXEC sp_unbinddefault 表名表名.列名列名

21、 (4) 刪除缺省刪除缺省 DROP DEFAULT 缺省名組缺省名組【例例6-13】定義學(xué)生表中的所在系屬性為定義學(xué)生表中的所在系屬性為“計(jì)算機(jī)系計(jì)算機(jī)系”的缺省。的缺省。 CREATE DEFAULT 系缺省系缺省 AS 計(jì)算機(jī)系計(jì)算機(jī)系 GO EXEC sp_bindefault 系缺省,系缺省,學(xué)生學(xué)生.所在所在系系7. 創(chuàng)建和管理規(guī)則(1)創(chuàng)建規(guī)則創(chuàng)建規(guī)則 CREATE RULE規(guī)則名規(guī)則名AS規(guī)則表達(dá)式規(guī)則表達(dá)式規(guī)則表達(dá)式是規(guī)則表達(dá)式是WHERE子句中的有效表達(dá)式。子句中的有效表達(dá)式。 (2) 綁定規(guī)則綁定規(guī)則 EXEC sp_bindrule 規(guī)則名規(guī)則名,對(duì)象名對(duì)象名(3) 解

22、除規(guī)則解除規(guī)則EXEC sp_unbindrule 對(duì)象名對(duì)象名(4) 刪除規(guī)則刪除規(guī)則 DROP RULE規(guī)則名組規(guī)則名組 【例例6-14】創(chuàng)建一個(gè)名為創(chuàng)建一個(gè)名為range_rule的規(guī)則,該規(guī)的規(guī)則,該規(guī)則要求插入到列中的數(shù)據(jù)范圍在則要求插入到列中的數(shù)據(jù)范圍在($1000$2000)之間。之間。 CREATE RULE range_rule AS range = $1000 AND range 0 ROLLBACK TRANSACTION ELSE DELETE reservation FROM reservation,deleted WHERE reservation.member_n

23、o = deleted.member_no6.4.2 數(shù)據(jù)操縱語(yǔ)言數(shù)據(jù)操縱語(yǔ)言1. 數(shù)據(jù)檢索語(yǔ)句的語(yǔ)句格式 SELECT查詢列 INTO新表名 FROM數(shù)據(jù)源 WHERE元組條件表達(dá)式 GROUP BY分組條件HAVING組選擇條件 ORDER BY排序條件 COMPUTER統(tǒng)計(jì)列組BY表達(dá)式(1) SELECT子句SELECT ALL|DISTINCT TOPSELECT ALL|DISTINCT TOP數(shù)值數(shù)值PERCENTPERCENT查詢列組查詢列組查詢列為:查詢列為:查詢列查詢列:=:=* *| |表或視圖表或視圖. .* *| |列名或表達(dá)式列名或表達(dá)式ASAS列別名列別名 | |

24、列別名列別名= =表達(dá)式表達(dá)式1) ALL|DISTINCT1) ALL|DISTINCT:ALLALL為返回所有行為返回所有行,DISTINCT,DISTINCT為僅顯示結(jié)果集為僅顯示結(jié)果集中的惟一行。該項(xiàng)不選時(shí),中的惟一行。該項(xiàng)不選時(shí),ALLALL是缺省值。是缺省值。2) TOP2) TOP數(shù)值數(shù)值:僅返回結(jié)果集中的前:僅返回結(jié)果集中的前數(shù)值數(shù)值行。如果有行。如果有PENCENTPENCENT,則返回結(jié)果集中的百分之,則返回結(jié)果集中的百分之?dāng)?shù)值數(shù)值行記錄。行記錄。3) “3) “* *”:指明返回表和視圖的全部列。:指明返回表和視圖的全部列。4)4)表或視圖表或視圖. .* *:指明返回指

25、定表或視圖的全部列。:指明返回指定表或視圖的全部列。5)5)列別名列別名:用來(lái)代替出現(xiàn)在結(jié)果集中的列名或表達(dá)式,別名:用來(lái)代替出現(xiàn)在結(jié)果集中的列名或表達(dá)式,別名可以在可以在ORDER BYORDER BY子句中出現(xiàn),但不能在子句中出現(xiàn),但不能在WHEREWHERE、GROUP BYGROUP BY或或HAVINGHAVING子句中出現(xiàn)。子句中出現(xiàn)。(2) INTO子句和FROM子句 INTOINTO子句將查詢結(jié)果添加到創(chuàng)建表中。子句將查詢結(jié)果添加到創(chuàng)建表中。INTOINTO不能與不能與COMPUTE COMPUTE 子句子句同時(shí)使用。如果創(chuàng)建表是臨時(shí)表,在表名前加同時(shí)使用。如果創(chuàng)建表是臨時(shí)表,

26、在表名前加“#”#”字符。字符。 FROMFROM語(yǔ)法格式為:語(yǔ)法格式為: FROMFROM數(shù)據(jù)源組數(shù)據(jù)源組數(shù)據(jù)源的語(yǔ)法為:數(shù)據(jù)源的語(yǔ)法為: 數(shù)據(jù)源數(shù)據(jù)源:=:=表名表名ASAS表別名表別名WITH(WITH(表線索組表線索組) | |視圖名視圖名ASAS視圖別名視圖別名 | |行集合函數(shù)行集合函數(shù)ASAS別名別名 | |嵌套的嵌套的SELECTSELECT語(yǔ)句語(yǔ)句ASAS別名別名 | |連接表連接表連接表的語(yǔ)法為:連接表的語(yǔ)法為:連接表連接表:=:=數(shù)據(jù)源數(shù)據(jù)源連接類型連接類型數(shù)據(jù)源數(shù)據(jù)源ONON連接條件連接條件 | |數(shù)據(jù)源數(shù)據(jù)源CROSSJOINCROSSJOIN數(shù)據(jù)源數(shù)據(jù)源| |連接表

27、連接表連接類型連接類型:= INNER| LEFT|RIGHT|FULLOUTER JOIN:= INNER| LEFT|RIGHT|FULLOUTER JOIN1) INNER1) INNER為內(nèi)連接,它返回所有連接匹配的行。為內(nèi)連接,它返回所有連接匹配的行。 LEFT OUTERLEFT OUTER為左外為左外連接。連接。 RIGHT OUTERRIGHT OUTER為右外連接。為右外連接。FULL OUTERFULL OUTER為完全外連接。為完全外連接。 2) ON2) ON連接條件連接條件指定連接條件:指定連接條件:列名列名比較符比較符列名列名3) CROSS JOIN3) CROS

28、S JOIN為交叉連接,即對(duì)兩個(gè)表進(jìn)行笛卡兒積運(yùn)算。為交叉連接,即對(duì)兩個(gè)表進(jìn)行笛卡兒積運(yùn)算。(4) WHERE子句子句 WHERE查詢條件查詢條件|舊格式外連接條件舊格式外連接條件 舊格式外連接條件舊格式外連接條件:=列名列名*= | =*列名列名(5) GROUP BY子句子句 GROUP BY ALL分組表達(dá)式組分組表達(dá)式組 (6) HAVING子句。子句。 HAVING分組或匯總篩選條件分組或匯總篩選條件(7) ORDER BY ORDER BY排序項(xiàng)排序項(xiàng)ASC|DESC,n(8) COMPUTE子句。子句。 產(chǎn)生匯總值產(chǎn)生匯總值,在結(jié)果集中后將匯總值放入摘要列,在結(jié)果集中后將匯總值放

29、入摘要列,COMPUTE與與BY配合,起到換行控制和分段小計(jì)的作用。配合,起到換行控制和分段小計(jì)的作用。 COMPUTE統(tǒng)計(jì)函數(shù)組統(tǒng)計(jì)函數(shù)組BY分組項(xiàng)分組項(xiàng) 其中:其中:BY分組項(xiàng)分組項(xiàng)表示在結(jié)果集中產(chǎn)生換行控制及分段小表示在結(jié)果集中產(chǎn)生換行控制及分段小計(jì)。計(jì)。COMPUTE BY必須和必須和ORDER BY配合使用。配合使用。 2 Transact-SQL查詢實(shí)例n設(shè)圖書(shū)借閱數(shù)據(jù)庫(kù)中包括:設(shè)圖書(shū)借閱數(shù)據(jù)庫(kù)中包括: 圖書(shū)圖書(shū)(書(shū)號(hào),類別,出版社,作者,書(shū)名,定價(jià)書(shū)號(hào),類別,出版社,作者,書(shū)名,定價(jià)); 讀者讀者(書(shū)證號(hào),姓名,單位,性別,電話書(shū)證號(hào),姓名,單位,性別,電話); 借閱借閱(書(shū)號(hào),

30、讀者書(shū)證號(hào),借閱日期書(shū)號(hào),讀者書(shū)證號(hào),借閱日期). 【例例6-22】將計(jì)算機(jī)類的書(shū)存入永久的計(jì)算機(jī)圖書(shū)表,將將計(jì)算機(jī)類的書(shū)存入永久的計(jì)算機(jī)圖書(shū)表,將借書(shū)日期在借書(shū)日期在99年以前的借閱記錄存入臨時(shí)的超期借閱表。年以前的借閱記錄存入臨時(shí)的超期借閱表。 SELECT * INTO 計(jì)算機(jī)圖書(shū)計(jì)算機(jī)圖書(shū) FROM 圖書(shū)圖書(shū) WHERE 類別類別=計(jì)算機(jī)計(jì)算機(jī) GO SELECT * INTO #超期借閱超期借閱 FROM 借閱借閱 WHERE 借閱日期借閱日期-類別類別查詢例子【例例6-276-27】列出計(jì)算機(jī)類圖書(shū)的書(shū)號(hào)、名稱及價(jià)格,列出計(jì)算機(jī)類圖書(shū)的書(shū)號(hào)、名稱及價(jià)格,并求出各出版社這類書(shū)的總價(jià)格

31、,最后求出全部?jī)?cè)并求出各出版社這類書(shū)的總價(jià)格,最后求出全部?jī)?cè)數(shù)和總價(jià)格。數(shù)和總價(jià)格。 * *-書(shū)號(hào)書(shū)號(hào)求機(jī)械工業(yè)出版社出版的各類圖書(shū)的平均定價(jià),用group by表示查詢計(jì)算機(jī)類和機(jī)械工業(yè)出版社出版的圖書(shū)。查詢計(jì)算機(jī)類和機(jī)械工業(yè)出版社出版的圖書(shū)。 查詢借書(shū)者的編號(hào),姓名,單位,所借書(shū)號(hào),書(shū)名,和借閱日期。查詢借書(shū)者的編號(hào),姓名,單位,所借書(shū)號(hào),書(shū)名,和借閱日期。5. 數(shù)據(jù)更新操作數(shù)據(jù)更新操作(1) 數(shù)據(jù)插入語(yǔ)句數(shù)據(jù)插入語(yǔ)句語(yǔ)法為:語(yǔ)法為: INSERT INTO表或視圖名表或視圖名(列組列組) VALUES值列值列|SELECT語(yǔ)句語(yǔ)句其中:其中:1) INSERT VALUES語(yǔ)句一次只能插入一條記錄,而語(yǔ)句一次只能插入一條記錄,而INSERT SELECT語(yǔ)句則可一次插入多條記錄。語(yǔ)句則可一次插入多條記錄。2) 未在未在列組列組中出現(xiàn)的列名的值,則按中出現(xiàn)的列名的值,則按IDENTITY(有產(chǎn)生(有產(chǎn)生遞增值定義)、遞增值定義)、DEFAULT(有缺省值定義)或(有缺省值定義)或NULL(前兩(前兩項(xiàng)都無(wú))值確定,如果按項(xiàng)都無(wú))值確定,如果按NULL處理而定義中不允許處理而定義中不允許NULL值值,則顯示錯(cuò)誤信息。,則顯示錯(cuò)誤信息。(2) 修

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論