九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

第2章結(jié)構(gòu)化查詢語言sql

上傳人:仙*** 文檔編號:35122439 上傳時間:2021-10-26 格式:DOC 頁數(shù):16 大?。?03.01KB
收藏 版權(quán)申訴 舉報 下載
第2章結(jié)構(gòu)化查詢語言sql_第1頁
第1頁 / 共16頁
第2章結(jié)構(gòu)化查詢語言sql_第2頁
第2頁 / 共16頁
第2章結(jié)構(gòu)化查詢語言sql_第3頁
第3頁 / 共16頁

下載文檔到電腦,查找使用更方便

10 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《第2章結(jié)構(gòu)化查詢語言sql》由會員分享,可在線閱讀,更多相關(guān)《第2章結(jié)構(gòu)化查詢語言sql(16頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、第2章 結(jié)構(gòu)化查詢語言SQL2.1 概述2.1.1 組成與功能1 SQL是“Structured Query Language(結(jié)構(gòu)式查詢語言)”的縮寫,1986年SQL語言被批準為關(guān)系數(shù)據(jù)庫語言的美國標準化語言。2SQL語言分類分為四大類:數(shù)據(jù)定義語言,數(shù)據(jù)查詢語言,數(shù)據(jù)操縱語言,數(shù)據(jù)控制語言。(1)數(shù)據(jù)定義語言:主要用創(chuàng)建、修改或刪除數(shù)據(jù)庫中對象,如表、視圖、模式、觸發(fā)器和存儲過程等,與其相關(guān)的主要SQL語句包括CREAT(創(chuàng)建)、ALTER(修改)、DROP(刪除);(2)數(shù)據(jù)操縱語言:主要用于數(shù)據(jù)的增、刪、改操作,主要語句有INSERT(插入)、DELETE(刪除)、UPDATE(修改

2、);(3)數(shù)據(jù)查詢語言:主要用于數(shù)據(jù)的檢索查詢,與其相關(guān)的語句是SELECT(查詢);(4)數(shù)據(jù)控制語言:主要用于控制用戶對數(shù)據(jù)庫的訪問權(quán)限、完整性規(guī)則描述、事務(wù)控制等操作??刂朴脩魧?shù)據(jù)庫的訪問權(quán)限的主要語句有 GRANT(授予權(quán)利)和REVOKE(取消權(quán)利)等。事務(wù)控制的語句包括 COMMIT(事務(wù)提交)和ROLLBACK(事務(wù)撤消)等。2SQL語言的特點1)非過程化語言: 非關(guān)系數(shù)據(jù)模型的數(shù)據(jù)操縱語言是面向過程的語言,用其完成某項請求,必須指定存取路徑。而用SQL語言進行數(shù)據(jù)操作,用戶只需提出“做什么”,而不必指明“怎么做”,因此用戶無需了解存取路徑,存取路徑的選擇以及SQL語句的操作過

3、程由系統(tǒng)自動完成。這不但大大減輕了用戶負擔,而且有利于提高數(shù)據(jù)獨立性。2)統(tǒng)一的語言: SQL語言集數(shù)據(jù)定義語言DDL、數(shù)據(jù)操縱語言DML、數(shù)據(jù)控制語言DCL的功能于一體,語言風(fēng)格統(tǒng)一,可以獨立完成數(shù)據(jù)庫生命周期中的全部活動,包括定義關(guān)系模式、錄入數(shù)據(jù)以建立數(shù)據(jù)庫、查詢、更新、維護、數(shù)據(jù)庫重構(gòu)、數(shù)據(jù)庫安全性控制等一系列操作要求,這就為數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)提供了良好的環(huán)境,例如用戶在數(shù)據(jù)庫投入運行后,還可根據(jù)需要隨時地逐步地修改模式,并不影響數(shù)據(jù)庫的運行,從而使系統(tǒng)具有良好的可擴充性。3).面向集合的操作方式 SQL語言采用集合操作方式,不僅查找結(jié)果可以是元組的集合,而且一次插入、刪除、更新操作的

4、對象也可以是元組的集合。 非關(guān)系數(shù)據(jù)模型采用的是面向記錄的操作方式,任何一個操作其對象都是一條記錄。例如查詢所有平均成績在80分以上的學(xué)生姓名,用戶必須說明完成該請求的具體處理過程,即如何用循環(huán)結(jié)構(gòu)按照某條路徑一條一條地把滿足條件的學(xué)生記錄讀出來。4)是所有關(guān)系數(shù)據(jù)庫的公共語言。3SQL語言的基本數(shù)據(jù)類型SQL Server提供了數(shù)值型、字符型、日期型、二進制型、位型、雙字節(jié)型等6大類數(shù)據(jù)類型。1)數(shù)值數(shù)據(jù)類型一般可以分為整數(shù)型、精確數(shù)值類型、浮點數(shù)值類型和貨幣類型等4類。數(shù)字數(shù)據(jù)只包含數(shù)字。數(shù)字數(shù)據(jù)類型包括正數(shù)和負數(shù)、小數(shù)(浮點數(shù))和整數(shù)整數(shù)由正整數(shù)和負整數(shù)組成,例如 39、25、0-2 和

5、 33967。在 Micrsoft SQL Server 中,整數(shù)存儲的數(shù)據(jù)類型是 Int,Smallint和 Tinyint。Int 數(shù)據(jù)類型存儲數(shù)據(jù)的范圍大于 Smallint 數(shù)據(jù)類型存儲數(shù)據(jù)的范圍,而 Smallint 據(jù)類型存儲數(shù)據(jù)的范圍大于Tinyint 數(shù)據(jù)類型存儲數(shù)據(jù)的范圍。使用 Int 數(shù)據(jù)狗昔存儲數(shù)據(jù)的范圍是從 -2 147 483 648 到 2 147 483 647(每一個值要求4個字節(jié)存儲空間)。使用 Smallint 數(shù)據(jù)類型時,存儲數(shù)據(jù)的范圍從 -32 768 到 32 767(每一個值要求2個字節(jié)存儲空間)。使用Tinyint 數(shù)據(jù)類型時,存儲數(shù)據(jù)的范圍是從0

6、 到255(每一個值要求1個字節(jié)存儲空間)。精確小婁數(shù)據(jù)在 SQL Server 中的數(shù)據(jù)類型是 Decimal 和 Numeric。這種數(shù)據(jù)所占的存儲空間根據(jù)該數(shù)據(jù)的位數(shù)后的位數(shù)來確定。在SQL Server 中,近似小數(shù)數(shù)據(jù)的數(shù)據(jù)類型是 Float 和 Real。例如,三分之一這個分數(shù)記作。3333333,當使用近似數(shù)據(jù)類型時能準確表示。因此,從系統(tǒng)中檢索到的數(shù)據(jù)可能與存儲在該列中數(shù)據(jù)不完全一樣。2)字符型常用的字符型有Char、Varchar和Text等3種。(1)char類型。長度固定。如果字段或變量被定義為char類型,而實際長度沒有達到定義的長度,則在字符串尾部添加空格以達到固定的

7、字符數(shù)。(2)varchar類型。長度可變。如果字段或變量被定義為varchar類型,而實際長度沒有達到定義的長度,SQL Server會自動丟掉尾部的空格以節(jié)省空間。(3)text類型。當要存儲的字符型數(shù)據(jù)非常龐大,長度超過了8000個字符時,可選擇text數(shù)據(jù)類型。即文本型,最大可存儲約2G的數(shù)據(jù)。3)日期時間型主要用來存儲日期和時間的組合數(shù)據(jù),根據(jù)取值范圍的大小分為datetime和smalldatetime兩種。日期和時間數(shù)據(jù)類型由有效的日期和時間組成。例如,有效的日期和時間數(shù)據(jù)包括“4/01/98 12:15:00:00:00 PM”和“1:28:29:15:01AM 8/17/98

8、”。前一個數(shù)據(jù)類型是日期在前,時間在后一個數(shù)據(jù)類型是霎時間在前,日期在后。在 Microsoft SQL Server中,日期和時間數(shù)據(jù)類型包括Datetime 和 Smalldatetime 兩種類型時,所存儲的日期范圍是從 1753 年 1 月 1 日開始,到9999 年12 月 31 日結(jié)束(每一個值要求 8 個存儲字節(jié))。使用 Smalldatetime 數(shù)據(jù)類型時,所存儲的日期范圍是 1900年 1 月 1日 開始,到 2079 年 12 月 31 日結(jié)束(每一個值要求 4 個存儲字節(jié))。日期的格式可以設(shè)定。設(shè)置日期格式的命令如下:Set DateFormat format | fo

9、rmat _var|其中,format | format_var 是日期的順序。有效的參數(shù)包括 MDY、DMY、YMD、YDM、MYD 和 DYM。在默認情況下,日期格式為MDY。例如,當執(zhí)行 Set DateFormat YMD 之后,日期的格式為年 月 日 形式;當執(zhí)行 Set DateFormat DMY 之后,日期的格式為日 月有年 形式4)二進制數(shù)據(jù)類型二進制數(shù)據(jù)類型有定長和變長之分,主要用來存儲二進制數(shù)據(jù),如圖形圖像、Word文檔文件等。SQL Server提供了binary、varbinary和image等3種常用二進制數(shù)據(jù)類型。5)位型bit(位型)是SQL Server提供的

10、一種支持邏輯數(shù)據(jù)的類型,只用來存儲1或0兩種,只有一位字節(jié)長,在SQL Server中bit字段的用途很多,可以作為“真/假”、“男/女”、“開/關(guān)”這類狀態(tài)信息的標志,可以作為活動賬號的指示器或項目的使用標志等。6)特殊數(shù)據(jù)類型有兩類不常用的數(shù)據(jù)類型,即雙字節(jié)數(shù)據(jù)類型和時間戳數(shù)據(jù)(Timestamp)類型。它們主要是為了實現(xiàn)特殊的用途,稱為特殊數(shù)據(jù)類型。時間戳數(shù)據(jù)類型往往因為其名字而造成誤解,實際上它既不是日期,也不是時間數(shù)據(jù),而是SQL Server根據(jù)事件的發(fā)生次序自動生成的一種二制數(shù)據(jù)。這個數(shù)據(jù)有很多用途,其中之一是在SQL Server關(guān)閉重新啟動時,作為進行恢復(fù)工作的重要部分。另外

11、利用timestamp數(shù)據(jù)還可以替代傳統(tǒng)的數(shù)據(jù)庫加鎖技術(shù)。2.3數(shù)據(jù)定義語言1)空值空值也可稱為NULL值??罩挡皇恰翱崭瘛狈颉?”值,它表示的是沒有值,是不確定的值。2)數(shù)據(jù)類型:確定后一般不改變2.3.1 數(shù)據(jù)庫在SQL中,數(shù)據(jù)庫被定義為對象的集合,這些對象主要有表、索引、視圖、存儲過程等。數(shù)據(jù)庫在磁盤上是以文件為單位存儲的,由數(shù)據(jù)文件和日志文件組成。數(shù)據(jù)文件中實際存放數(shù)據(jù)庫的所有數(shù)據(jù)和對象,日志文件用來存放用戶對數(shù)據(jù)庫所進行的所有操作,它是維護數(shù)據(jù)庫完整性的重要工具。(1)創(chuàng)建數(shù)據(jù)庫語句格式: CREATE DATABASE 語句功能:創(chuàng)建一個數(shù)據(jù)庫,就是定義一個存儲空間。應(yīng)用舉例:C

12、REATE DATABASE 教學(xué)管理庫(2)刪除數(shù)據(jù)庫語句格式:DROP DATABASE 語句功能:從計算機系統(tǒng)中刪除(撤消)一個數(shù)據(jù)庫。當然會同時把該庫中的所有信息一并刪除掉。語句舉例:DROP DATABASE 教學(xué)管理232表1)表的概念關(guān)系數(shù)據(jù)庫的主要特點之一就是用表的方式組織數(shù)據(jù)。表是SQL語言存放數(shù)據(jù)、查找數(shù)據(jù)以及更新數(shù)據(jù)的基本數(shù)據(jù)結(jié)構(gòu)。在SQL語言中,表有嚴格的定義,它是一個由行、列組成的二維結(jié)構(gòu),通常把行稱做記錄,把列稱為字段。表2-1 學(xué)生基本情況登記表學(xué)號姓名性別出生日期專業(yè)年級2008001張紅女1988-3-6計算機應(yīng)用12008002李勇男1988-10-11信息

13、管理1從表2-1可以看出,數(shù)據(jù)表一般具有以下屬性:(1)表名:表的惟一標識。比如學(xué)生基本情況登記表;(2)字段:一張表可以由若干列組成,稱為字段。列名惟一,且同一列的數(shù)據(jù)必須具有相同的數(shù)據(jù)類型。(3)記錄:表中的每一行稱為一條記錄,比如“2008001,張紅,女1988.3.6,計算機應(yīng)用,1”,它描述了一名學(xué)生的若干屬性;(4)主關(guān)鍵字:能夠惟一表示數(shù)據(jù)表中的每條記錄的字段或者字段的組合,也稱為主碼、主鍵,比如學(xué)號。在一個學(xué)校中,學(xué)生的姓名可能重復(fù),但學(xué)號必須是惟一的。2)創(chuàng)建表結(jié)構(gòu)(1)語句格式:CREATE TABLE (,,.)(2)語句功能:在當前數(shù)據(jù)庫中定義一個表的結(jié)構(gòu)(即關(guān)系模式

14、)。(3)語句舉例:如果希望在“教學(xué)管理”數(shù)據(jù)庫中創(chuàng)建一個名為“學(xué)生表”的表結(jié)構(gòu),則可執(zhí)行下列語句:CREATE TABLE 學(xué)生表( 學(xué)號 char(7) Primary Key, 姓名 char(6), 性別 char(2), 出生日期 datetime, 專業(yè) char(10), 年級 int )在上述語句中,數(shù)據(jù)表的名稱為“學(xué)生表”,它包括學(xué)生號、姓名、性別、出生日期、專業(yè)、年級等6個字段(列)。學(xué)名的數(shù)據(jù)類型為Char型(字符型),長度為7;出生日期的數(shù)據(jù)類型為Datatime型(日期型);年級的數(shù)據(jù)類型為Int型(整數(shù)型)。3)刪除表結(jié)構(gòu) (1)語句格式:DROP TABLE (2

15、)語句功能: 從當前數(shù)據(jù)庫中刪除一個表,當然在刪除表結(jié)構(gòu)的同時也刪除了全部內(nèi)容。(3) 語句舉例:DROP TABLE 學(xué)生表從當前數(shù)據(jù)庫中刪除掉名稱為“學(xué)生表”的表,假定事先已經(jīng)在當前庫建立過該表。232索引1索引的概念索引(Index)提供了一種快速訪問數(shù)據(jù)的途徑。索引具有以下特點。(1)索引是在基本表的列上建立的一種數(shù)據(jù)加對象,它和基本表分開存儲,它的建立或撤消對數(shù)據(jù)的內(nèi)容毫無影響。(2)索引一經(jīng)創(chuàng)建,就完全由系統(tǒng)自動選擇和維護,不需要用戶指定使用索引,也不需要用戶執(zhí)行打開索引或進行重新索引等操作,所有這些工作都是由SQL Server數(shù)據(jù)庫管理系統(tǒng)自動完成。(3)基本表的記錄數(shù)量越多,

16、記錄越長,越有必要創(chuàng)建索引,這對加快查詢速度的效率十分明顯。相反,對于記錄比較少的基本表而言,創(chuàng)建索引的意義不大。(4)索引是為了加速查詢速度而創(chuàng)建的,但同時會影響基本表的插入、刪除或修改等更新活動的速度,當對基本表的數(shù)據(jù)進行增刪改操作時,索引文件也要隨之變化,以保持與基本表的一致,因此只有對那些數(shù)據(jù)量大、查詢頻度較高、實時性要求強的基本表要創(chuàng)建索引,并且一張基本表上不要創(chuàng)建過多的索引。2創(chuàng)建索引的原則索引是建立在基本表列上的對象,通??蓞⒖家韵略瓌t:(1)基本表的記錄數(shù)量越多,記錄越長,越有必要創(chuàng)建索引,這對加快查詢速度的效率十分明顯。相反,對于記錄比較少的基本表而言,創(chuàng)建索引的意義不大。(

17、2)索引是為了加速查詢速度而創(chuàng)建的,但同時會影響基本表的插入、刪除或修改等更新活動的速度,當對基本表的數(shù)據(jù)進行增、刪、改操作時,索引文件也要隨之變化,以保持與基本表的一致,因此只有對那些數(shù)據(jù)量大、查詢頻度較高、實時性要求強的基本表要創(chuàng)建索引,并且一張基本表上不要創(chuàng)建過多的索引。(3)索引是建立在基本表列上的對象,到底在哪個列上創(chuàng)建索引,通??筛淖兞性赪HERE、ORDER BY、GROUP BY子句中出現(xiàn)的頻率。比如,如果某個或某些列經(jīng)常出現(xiàn)在ORDER BY子句中,那么就可考慮在之上建立索引。3 不易創(chuàng)建索引的幾種情況(1)包含太多重復(fù)值的列;(2)查詢中很少被引用的列;(3)值特別長的列。

18、(4)具有很多NULL值的列(5)需要經(jīng)常插入、刪除、修改的列。(6)記錄較少的基本表(7)需要進行頻繁、大批量數(shù)據(jù)更新的基本表4 索引的類型索引是創(chuàng)建在基本表列上的一種數(shù)據(jù)對象,從使用角度可將索引分為以下單列索引、惟一索引、復(fù)合索引三類;從是否改變基本表記錄的物理位置角度可分為聚集索引和非聚集索引兩類。實際的索引通常是這兩大類5種方式的組合。5 聚集和非聚集索引的對比聚集索引和非聚集索引是SQL Server中經(jīng)常用到的兩個概念,是非此即彼的關(guān)系。一個單列或復(fù)合索引即可以是聚集的也可以是非聚集的。在建立索引時,是采用聚集方式還是非聚集方式主要應(yīng)從以下幾點考慮:(1)存取速度從建立了聚集索引的

19、表中取出數(shù)據(jù)要比建立了非聚集索引的表快。但相對而言,聚集索引會降低向表中插入、刪除和修改數(shù)據(jù)的速度。(2)索引的數(shù)據(jù)對聚集索引的主要限制是每個表只能建立一個聚集索引。但是一個表可以有不止一個非聚集索引。實際上,對每個表最多可以建立249個非聚集索引。也可以對一個表同時建立聚集和非聚集索引。(3)所需空間非聚集索引需要較多的硬盤空間和內(nèi)存。6 創(chuàng)建索引(1)語句格式:CREATE UNIQUECLUSTERED INDEX ON (次序,次序)(2)語句功能主要參數(shù)的意義是:UNIQUE:為表或視圖創(chuàng)建惟一索引(不允許存在索引值相同的兩行)。CLUSTERED:聚集索引索引名:在實際使用時,用戶

20、并不需要知道索引名,但在創(chuàng)建階段,索引名應(yīng)符合SQL Server的命名規(guī)則。并且在整個數(shù)據(jù)庫中,索引名不能重復(fù)。次序:每個“列名”后面可以用“次序”指定索引值的排列次序,ASC表示升序,DESC表示降序,默認值是ASC。7 刪除索引(1)語句格式: DROP INDEX ,n(2)語句功能:使用該語句一次可以撤消一個或多個指定的索引,索引名之間用逗號間隔。234視圖1)視圖的概念視圖看上去同表一模一樣,具有一組命名的字段和數(shù)據(jù)項,但它其實是一個虛擬的表,在數(shù)據(jù)庫中并不實際存。在視圖是由查詢數(shù)據(jù)庫表產(chǎn)生的,它限制了用戶能看到和修改的數(shù)據(jù)。2)視圖的作用視圖是由一個或多個基本表導(dǎo)出的表,人們通常

21、把它理解為一組存儲在SQL Server數(shù)據(jù)庫中,經(jīng)過預(yù)先編譯的SELECT語句。在SQL Server中可以基本表一樣對視圖進行查詢、刪除、更新操作,但在對視圖數(shù)據(jù)所進行的增加、刪除、修改等更新操作最終都映射到相應(yīng)的基本表上,并有一定的限制,在實際應(yīng)用中,盡可能不要通過視圖對記錄進行更新操作。(1)視圖是經(jīng)過預(yù)編譯的SELECT語句,存儲在數(shù)據(jù)庫服務(wù)器端,因此執(zhí)行視圖比從客戶端直接執(zhí)行SELECT語句速度更快、效率更高一些。(2)視圖屬于用戶模式范疇,在實際中,一般的用戶不一定具有SELECT語句方面的專門知識,從戶友好性角度來說,視圖更便于用戶使用。(3)利用視圖可以簡化的形式表達復(fù)雜的S

22、ELECT語句組,如嵌套查詢等。3)創(chuàng)建視圖(1)語句格式:CREATE VIEW (,.) AS (2)語句功能:在當前數(shù)據(jù)庫中根據(jù)SELECT子句的查詢結(jié)果建立一個視圖。4)刪除視圖(1)語句格式:DROP VIEW (2)語句功能:刪除當前數(shù)據(jù)庫的一個視圖。235存儲過程1)存儲過程的概念存儲過程(Stored Procedure)是一組預(yù)先編譯好的,以一種可執(zhí)行的形式永久地存儲在數(shù)據(jù)中的SQL代碼,在master數(shù)據(jù)庫中存儲了一些SQL Server事先定義好的系統(tǒng)存儲過程,通常以sp_xxxx做為存儲過程的名字。當用戶創(chuàng)建數(shù)據(jù)庫時,也會自動生成一些事先定義好的存儲過程,通常以dt_x

23、xxx做為名字。使用存儲過程的好處可歸納為以下幾點:(1)執(zhí)行速度快。(2)模塊化的程序設(shè)計。(3)減少網(wǎng)絡(luò)流量。(4)保證系統(tǒng)的安全性。2)創(chuàng)建存儲過程(1)語句格式:CREATE PROCEDURE AS (2)語句功能:創(chuàng)建一個存儲過程,多數(shù)是指利用SQL Server的Transact-SQL編寫的程序。(3)create proc dsh_proc1as select * from 學(xué)生表3)執(zhí)行存儲過程(1)語句格式:EXEC ,或直接運行存儲過程名。(2)語句功能:執(zhí)行當前數(shù)據(jù)庫中事先定義好的一個存儲過程。Exec dsh_proc14)修改存儲過程(1)語句格式:ALTER P

24、ROC AS 。(2)語句功能:修改當前數(shù)據(jù)庫中事先定義好的一個存儲過程。Alert proc dsh_proc1As select *from 學(xué)生表 where 專業(yè)=軟件5)刪除存儲過程(1)語句格式:DROP PROC 。(2)語句功能:刪除當前數(shù)據(jù)庫中事先定義好的一個存儲過程。Drop proc dsh_proc19觸發(fā)器觸發(fā)器是一種特殊的存儲過程,它基于一個表創(chuàng)建,但可以針對多個表進行操作,與表緊密相連,可以看作是表定義的一部分,主要用來保證數(shù)據(jù)的完整性。在SQL Server中一張表可以有多個觸發(fā)器,用戶可以針對UPDATE、DELETE、INSERT語句分別設(shè)置觸發(fā)器,那么當用

25、戶進行UPDATE、INSER、DELETE等數(shù)據(jù)維護操作執(zhí)行后,這些事先定義好的觸發(fā)器對象就會被“觸發(fā)”,并按事先定義好的規(guī)則自動執(zhí)行。觸發(fā)器如果使用不當,會影響數(shù)據(jù)庫的效果,因此初學(xué)者慎用。24數(shù)據(jù)操縱語言SQL數(shù)據(jù)定義語言的主要作用是創(chuàng)建存儲數(shù)據(jù)的結(jié)構(gòu),而數(shù)據(jù)操縱語言的主要作用則是向數(shù)據(jù)庫中填寫數(shù)據(jù),具體包括增加、刪除、修改等操作。1)插入數(shù)據(jù)(1)語句格式INSERT INTO (, ) VALUES(,)(2)語句功能向一個表中所指定的若干列插入一行記錄。當向表中插入一完整的記錄時,可以省略列名表表。(3)語句舉例INSERT INTO 學(xué)生表 VALUES(2007001,王麗,女

26、,1987-10-31,2)在當前數(shù)據(jù)庫中執(zhí)行上述語句后,將在名為“學(xué)生表”的數(shù)據(jù)表中插入一名新同學(xué)的完整信息。由于“學(xué)生表”的學(xué)號、姓名和性別字段被定義為了字符型(Char型),因此它們對應(yīng)的字段值必須用半角的單引號引起來,在SQL Server中日期型(Datetime)也需要用單引號,而數(shù)值型(Int)則不需要這樣做。2)刪除數(shù)據(jù)(1)語句格式DELETE FROM WHERE (2)語句功能刪除一個表中滿足條件的所有記錄。(3)語句舉例DELETE FROM 學(xué)生表 WHERE 性別=男在當前數(shù)據(jù)庫中執(zhí)行上述語句后,將把“學(xué)生表”中所有性別等于“男”的記錄刪除。此處用到的“性別=男”是

27、一種邏輯表達式,表示刪除的條件,我們將在下一節(jié)詳細介紹。如果要刪除所有記錄,則可以直接執(zhí)行“DELETE FROM 學(xué)生表”。3)修改數(shù)據(jù)(1)語句格式UPDATE SET =, WHERE (2)語句功能按條件修改一個表中的某些列的值。(3)語句舉例UPDATE 學(xué)生表 SET 姓名=王莉 WHERE 學(xué)號=2007001在當前數(shù)據(jù)庫中執(zhí)行上述語句后,將把“學(xué)生表”中學(xué)號等于“2007001”的記錄的姓名字段的值修改為“王莉”。25數(shù)據(jù)查詢語言1)基本語法格式SQL數(shù)據(jù)查詢語言的主要作用是把數(shù)據(jù)從基本表中提取、展示出來,它只對應(yīng)一條語句,即SELECT語句。SELECT的英文的選擇的意思,該

28、語句帶有豐富的選項(稱為子句),每個選項都由一個關(guān)鍵字標識,其基本語法格式如下:SELECT 字段列表 INTO 新表名 FROM 源表名 WHERE 查詢條件 GROUP BY 分組表達式 HAVING 查找條件 ORDER BY 排序表達式 ASC | DESC 2)最簡單的格式SELECT * FROM 表名 3)最常用的格式SELECT * FROM 表名 WHERE 查詢條件這條語句翻譯成中文就是:從(FROM)某張表中選擇(SELECT)出所有滿足條件(WHERE)的所有字段(*)。二、本章涉及的實際操作以下內(nèi)容均可在SQL Server 的查詢分析器內(nèi)進行實驗。1建立數(shù)據(jù)庫建立名

29、為“教學(xué)管理庫”的數(shù)據(jù)庫create database教學(xué)管理庫2建立表建立名為“學(xué)生表”的表create table 學(xué)生表 (學(xué)號 char (8) primary Key,姓名 char(8),性別 bit,出生日期 datetime,專業(yè) char(10),年齡 int)3數(shù)據(jù)的插入與查詢1)給表中插入一個數(shù)據(jù)insert into 學(xué)生表 values (2007001,王麗,1,1982-8-5,計算機應(yīng)用,26)insert into 學(xué)生表 values (2007002,張華,0,1982-9-5,計算機應(yīng)用,26)insert into 學(xué)生表 values (200700

30、3,李敏,1,1982-3-15,計算機應(yīng)用,26)2) 查詢剛才輸入的記錄Select * from 學(xué)生表3) 教材29頁的例子學(xué)生表:create table 學(xué)生表 (學(xué)號 char (8) primary Key,姓名 char(8),性別 bit,出生日期 datetime,專業(yè) char(10),年齡 int)課程表:create table 課程表 (課程號 char (7) primary Key,課程名 char(20),任課教師 char (8)成績表:create table 成績表 (學(xué)號 char (8),課程號 char (7),成績 Numeric (4,2)給

31、學(xué)生表中添加的記錄:insert into 學(xué)生表 values (20030001,張青,1,1982-3-15,軟件,21)insert into 學(xué)生表 values (20030002,王麗,0,1984-6-29,軟件,19)insert into 學(xué)生表 values (20030003,趙紅,0,1985-7-21,軟件,18)insert into 學(xué)生表 values (20030004,李明,1,1981-9-21,應(yīng)用,22)insert into 學(xué)生表 values (20030005,趙東,1,1981-8-19,應(yīng)用,22)查看其中的內(nèi)容:Select * fro

32、m 學(xué)生表給課程表中添加的記錄:insert into 課程表 values (1000044,計算機網(wǎng)絡(luò),張向東)insert into 課程表 values (1000045,程序設(shè)計,王洪偉)insert into 課程表 values (1000046,有能力與應(yīng)用數(shù)據(jù)庫,李利)查看其中的內(nèi)容:Select * from 課程表給成績表中添加的記錄:insert into 成績表 values (20030001,1000044,80.5)insert into 成績表 values (20030002,1000044,78.5)insert into 成績表 values (2003

33、0001,1000045,81.5)insert into 成績表 values (20030003,1000045,83)insert into 成績表 values (20030001,1000046,0)insert into 成績表 values (20030003,1000046,0)查看其中的內(nèi)容:Select * from 成績表4查詢的實例教材31頁開始的各種涉及查詢的實例例1:查詢學(xué)生表中的學(xué)號、姓名、年齡、專業(yè)Select 學(xué)號,姓名,年齡,專業(yè) from 學(xué)生表例2:通配符*的使用Select * from 學(xué)生表例3:基于字段的表達式,注意str、year、month、

34、as的含義:按*年*月形式顯示出生年月Select 學(xué)號,姓名,str(year(出生日期),4)+年+str(month(出生日期),2)+月 as 年月 from 學(xué)生表例4:distinct短語的使用:列出所有的專業(yè)名Select distinct 專業(yè) from 學(xué)生表例5:使用where子句:查詢所有年齡在19-20的學(xué)生情況Select * from 學(xué)生表 where 年齡 between 19 and 21Select * from 學(xué)生表 where 年齡=19 and 年齡1985-1-1例9:練習(xí)使用in 短語:列出所有年齡為19,21的學(xué)生記錄Select * from

35、 學(xué)生表 where 年齡 in (19,21)Select * from 學(xué)生表 where 年齡=19 or 年齡=21例10:練習(xí)使用LIKE短語:列出所有姓王的學(xué)生的信息Select * from 學(xué)生表 where 姓名 like 王%例11:練習(xí)使用order by 字句:顯示所有“軟件”專業(yè)學(xué)生記錄Select * from 學(xué)生表 where 專業(yè)=軟件 order by 年齡例12:練習(xí)統(tǒng)計函數(shù)的使用:在學(xué)生表中列出專業(yè)個數(shù)Select count (distinct 專業(yè)) AS 專業(yè)數(shù) from 學(xué)生表例13:練習(xí)統(tǒng)計函數(shù)的使用:統(tǒng)計“學(xué)生表中”軟件專業(yè)學(xué)生個數(shù)Selec

36、t count (*) AS 專業(yè)人數(shù) from 學(xué)生表 where 專業(yè)=應(yīng)用例14:練習(xí)統(tǒng)計函數(shù)的使用:查詢學(xué)生表中應(yīng)用專業(yè)學(xué)生的最大年齡,最小年齡,平均年齡Select max(年齡) as 最大, min(年齡) as 最小, avg(年齡) as 平均 from 學(xué)生表 where 專業(yè)=應(yīng)用Select max(年齡) as 最大, min(年齡) as 最小, avg(年齡) as 平均 from 學(xué)生表 where 專業(yè)=應(yīng)用例15:列出學(xué)生表中不同專業(yè)中,各專業(yè)的學(xué)生人數(shù)Select 專業(yè), count(*) as學(xué)生數(shù) from 學(xué)生表 group by 專業(yè)例16:練習(xí)i

37、nto字句的使用Select * into 軟件專業(yè)學(xué)生表 from 學(xué)生表 order by 學(xué)號復(fù)雜查詢(連接查詢)例17: 列出所有學(xué)生的學(xué)號,姓名,課程號和成績Select 學(xué)生表.學(xué)號,姓名,課程號,成績 from 學(xué)生表,成績表 where 學(xué)生表.學(xué)號=成績表.學(xué)號嵌套查詢例18:列出所有學(xué)生的學(xué)號,姓名,課程號,課程名和成績Select 學(xué)生表.學(xué)號,姓名,課程表.課程號,課程名,成績 from 學(xué)生表,課程表,成績表 where 學(xué)生表.學(xué)號=成績表.學(xué)號 and 課程表.課程號=成績表.課程號例19:查詢所有女同學(xué)選修的課程號和課程名。Select課程號,課程名 from

38、課程表 where 課程號 in (select 課程號 from 成績表 where 學(xué)號 in (select 學(xué)號 from 學(xué)生表 where 性別=0)例20:平均成績小于總平均成績的學(xué)生學(xué)號、姓名、專業(yè)。Select 學(xué)號,姓名,專業(yè) from 學(xué)生表 where 學(xué)號 in (select distinct 學(xué)號 from 成績表 where 成績(select avg(成績) from 成績表)2.6數(shù)據(jù)控制語言數(shù)據(jù)控制語言的種類很多,其中事務(wù)控制是最常用、最重要的一種。1)事務(wù)的概念事務(wù)(Transaction)是并發(fā)控制的基本單位,它反映了現(xiàn)實世界中需要以一個完整的單位提交

39、的一項工作。SQL Server通過事務(wù)機制,將邏輯相關(guān)的一組操作捆綁在一起,以便服務(wù)器保持數(shù)據(jù)的完整性。它是SQL復(fù)雜程序設(shè)計必不可少的內(nèi)容。在使用事務(wù)的情況下,SQL Server可以保證,要么所有的記錄要么全部處理,要么一行也不處理。如果修改了全部記錄的一半時服務(wù)器出錯了,SQL Server會返回到以前未執(zhí)行UPDATE操作前的位置,清除它已經(jīng)修改過的數(shù)據(jù),這就是事務(wù)處理的作用。2)事務(wù)處理控制語句SQL Server中可通過以下3個語句完成事務(wù)控制:(1)開始一個事務(wù):BEGIN TRANSACTION 事務(wù)名。(2)提交一個事務(wù):COMMIT TRANSACTION 事務(wù)名。(3)回滾一個事務(wù):ROLLBACK TRANSACTION 事務(wù)名在數(shù)據(jù)庫應(yīng)用程序設(shè)計中,事務(wù)控制語句的一般用法是:第1步:BEGIN TRAN 事務(wù)名第2步:對數(shù)據(jù)庫進行增、刪、改等操作第3步:提交事務(wù)或回滾:基本邏輯是,如果沒有發(fā)生異常情況,則通過COMMIT語句提交事務(wù),確認第2步的操作;否則執(zhí)行ROLLBACK回滾命令,撤消第2步的所有操作。16

展開閱讀全文
溫馨提示:
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)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!