




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、數(shù)據(jù)庫(DataBase,簡記為DB)就是一個有結(jié)構(gòu)的、集成的、可共享的統(tǒng)一管理的數(shù)據(jù)集合。所謂有結(jié)構(gòu)的,指的是數(shù)據(jù)是按一定的模型組織起來的。數(shù)據(jù)模型可用數(shù)據(jù)結(jié)構(gòu)來描述。數(shù)據(jù)模型決定數(shù)據(jù)的組織方式、操作方法。理解數(shù)據(jù)庫的前提是理解數(shù)據(jù)模型?,F(xiàn)在的數(shù)據(jù)庫多數(shù)是以關(guān)系模型來組織數(shù)據(jù)的??梢院唵蔚匕殃P(guān)系模型的數(shù)據(jù)結(jié)構(gòu)關(guān)系理解成為一張二維表。所謂集成的,是指數(shù)據(jù)庫中集中存放著企業(yè)各種各樣的數(shù)據(jù)。集中存放的好處是:一個數(shù)據(jù)只需一個備份,重復(fù)存儲少,即消除了數(shù)據(jù)的冗余。沒有數(shù)據(jù)冗余,也就能保證數(shù)據(jù)的一致。所謂共享,指的是數(shù)據(jù)庫中的數(shù)據(jù)可以被不同的用戶使用。也就是說,每一個用戶可以按自己的要求訪問相同的數(shù)據(jù)
2、庫。所謂統(tǒng)一管理的,指的是數(shù)據(jù)庫由DBMS統(tǒng)一管理,任何數(shù)據(jù)訪問都是通過DBMS來完成的。數(shù)據(jù)庫管理系統(tǒng) (DataBase Management System,DBMS) 是用來管理數(shù)據(jù)庫的一種商品化軟件。數(shù)據(jù)定義的功能。DBMS提供數(shù)據(jù)定義語言(Data Definition Language,DDL)。數(shù)據(jù)操縱的功能。DBMS提供數(shù)據(jù)操縱語言(Data Manipulation Language,DML)。數(shù)據(jù)庫的運(yùn)行管理(管理數(shù)據(jù)庫)功能。提供數(shù)據(jù)控制語言DCL(data controllanguage),負(fù)責(zé)數(shù)據(jù)庫在建立、運(yùn)行和維護(hù)時由DBMS統(tǒng)一管理和統(tǒng)一控制。數(shù)據(jù)庫系統(tǒng)DBS (
3、 DataBase System)數(shù)據(jù)庫系統(tǒng)(Database Systems,DBS)是一個帶有數(shù)據(jù)庫的計算機(jī)系統(tǒng),它能按照數(shù)據(jù)庫的方式存儲和維護(hù)數(shù)據(jù),并且能夠向應(yīng)用程序提供數(shù)據(jù)。一個完整的數(shù)據(jù)庫系統(tǒng)由數(shù)據(jù)庫(DB)、數(shù)據(jù)庫管理系統(tǒng)(DBMS)、應(yīng)用程序、用戶和硬件組成。數(shù)據(jù)庫系統(tǒng)的產(chǎn)生和發(fā)展(1) 人工管理階段(50年代初期)(2) 文件系統(tǒng)階段(50年代后期)(3) 數(shù)據(jù)庫系統(tǒng)階段(60年代后期開始)數(shù)據(jù)庫系統(tǒng)的特點(diǎn)(1)數(shù)據(jù)結(jié)構(gòu)化(2)數(shù)據(jù)的共享性高,冗余度低,易擴(kuò)充(3)數(shù)據(jù)獨(dú)立性高(4)數(shù)據(jù)由DBMS統(tǒng)一管理和控制數(shù)據(jù)庫的三級模式:外模式、概念模式、內(nèi)模式。數(shù)據(jù)獨(dú)立性是指應(yīng)用程序不
4、因物理存儲的改變而改變。數(shù)據(jù)獨(dú)立性包含邏輯獨(dú)立性和物理獨(dú)立性。邏輯獨(dú)立性是指概念模式改變時,外模式保持不變,從而使應(yīng)用程序保持不變。當(dāng)數(shù)據(jù)庫的概念模式改變時,DBMS只要改變外模式到模式的映射,就可保持外模式不變。從而使應(yīng)用程序保持不變。物理獨(dú)立性是指內(nèi)模式改變時,概念模式保持不變。因?yàn)楫?dāng)內(nèi)模式改變(如數(shù)據(jù)庫的存儲設(shè)備或存儲結(jié)構(gòu)改變)時,DBMS只要通過改變概念模式到內(nèi)模式映射,從而使概念模式保持不變,實(shí)現(xiàn)了數(shù)據(jù)的物理獨(dú)立性。decimal(2,1),有效長度為2,小數(shù)位占1位。 提供了CHAR、VARCHAR、TEXT、NCHAR、NVARCHAR和NTEXT 6種數(shù)據(jù)類型。前3種數(shù)據(jù)類型是
5、非Unicode字符數(shù)據(jù),后3種是Unicode字符數(shù)據(jù)。Datetime: 用于存儲日期和時間的結(jié)合體。定義可變長度字符型變量name ,長度為8 可變長度的字符型變量sex,長度為2,DECLARE name varchar(8),sex varchar 小整型變量age age smallint利用CAST函數(shù)可以將某一種數(shù)據(jù)類型強(qiáng)制轉(zhuǎn)換為另一種數(shù)據(jù)類型,其語法格式如下: CAST(expression AS data_type)CONVERT函數(shù)允許用戶把表達(dá)式從一種數(shù)據(jù)類型轉(zhuǎn)換為另一種數(shù)據(jù)類型,并且還在日期的不同顯示格式之間進(jìn)行轉(zhuǎn)換,其語法格式如下: CONVERT(data_typ
6、e(length),expression,style)可使用CREATE FUNCTION語句創(chuàng)建函數(shù),使用ALTER FUNCTION語句修改函數(shù),使用DROP FUNCTION語句刪除函數(shù)。函數(shù)用戶自定義函數(shù)Schema_name:用戶自定義函數(shù)所屬的模式名稱Function_name:用戶自定義函數(shù)的名稱parameter_name:用戶自定義函數(shù)的參數(shù)名稱Parameter_data_type:參數(shù)的數(shù)據(jù)類型Default:參數(shù)的默認(rèn)值Return_data_type:用戶自定義函數(shù)返回值的數(shù)據(jù)類型Function_body:用戶自定義函數(shù)體,是一系列實(shí)現(xiàn)函數(shù)功能的TransactSQ
7、L語句的集合。Expression:用戶自定義函數(shù)的返回值。數(shù)據(jù)文件;主數(shù)據(jù)文件名稱的默認(rèn)后綴是mdf,次數(shù)據(jù)文件名稱的默認(rèn)后綴是ndf系統(tǒng)數(shù)據(jù)庫 系統(tǒng)數(shù)據(jù)庫由master、model、msdb、tempdb和隱藏的Resource數(shù)據(jù)庫組成(1) master數(shù)據(jù)庫:master數(shù)據(jù)庫用于記錄SQL Server 2008 R2中所有服務(wù)器級別的對象。(2) model數(shù)據(jù)庫:model數(shù)據(jù)庫是一個模板數(shù)據(jù)庫。每當(dāng)創(chuàng)建新的數(shù)據(jù)庫時(包括系統(tǒng)數(shù)據(jù)庫tempdb),就會創(chuàng)建model數(shù)據(jù)庫的一個副本,并以新創(chuàng)建數(shù)據(jù)庫的名稱重命名該副本。(3) msdb數(shù)據(jù)庫;可以把msdb數(shù)據(jù)庫看作是SQL S
8、erver代理的數(shù)據(jù)庫,這是因?yàn)镾QL Server 2008 R2代理廣泛地使用msdb數(shù)據(jù)庫存儲自動化作業(yè)定義、作業(yè)計劃、操作員定義以及警報定義。(4) tempdb數(shù)據(jù)庫 SQL Server 2008 R2使用tempdb數(shù)據(jù)庫臨時性地存儲數(shù)據(jù)。在SQL Server 2008 R2操作中,tempdb數(shù)據(jù)庫有廣泛的運(yùn)用,因此要確保SQL Server 2008 R2數(shù)據(jù)庫有效的操作,就需要仔細(xì)計劃和評估tempdb數(shù)據(jù)庫的規(guī)模和位置。(5)Resource數(shù)據(jù)庫它是一個只讀數(shù)據(jù)庫,包含SQL Server 2008 R2實(shí)例使用的所有系統(tǒng)對象。 T-SQL語言創(chuàng)建數(shù)據(jù)庫Create
9、database語句中參數(shù)說明:database_name:新數(shù)據(jù)庫的名稱。ON :指定用來存儲數(shù)據(jù)庫數(shù)據(jù)部分的磁盤文件(數(shù)據(jù)文件)。LOG ON :指定顯式定義用來存儲數(shù)據(jù)庫日志的磁盤文件(日志文件)。NAME logical_file_name: 指定文件的邏輯名稱。FILENAME :指定操作系統(tǒng)(物理)文件名稱。SIZE :指定文件的大小。MAXSIZE :指定文件可增大到的最大大小。 FILEGROWTH :指定文件的自動增量。也可以指定百分比。exet1. sys.databases:可以查看該服務(wù)器上所有數(shù)據(jù)庫的基本信息。2. sp_helpdb:可以查看該服務(wù)器上所有數(shù)據(jù)庫或指
10、定單個數(shù)據(jù)庫的基本信息。如圖4-9所示存儲過程查看所有數(shù)據(jù)庫。 使用sp_helpdb JdglSys命令可以查看單個數(shù)據(jù)庫的詳細(xì)信息。使用sp_helpdb JdglSys命令可以查看單個數(shù)據(jù)庫的詳細(xì)信息。3. sp_helpfile:顯示當(dāng)前數(shù)據(jù)庫關(guān)聯(lián)的文件的名稱及屬性。如圖4-11所示。其中,use語句用來改變當(dāng)前數(shù)據(jù)庫,把JdglSys數(shù)據(jù)庫作為當(dāng)前查詢的數(shù)據(jù)庫。4. sp_helpfilegroup系統(tǒng)存儲過程查看JdglSys數(shù)據(jù)庫中的所有文件組或某一個文件組的信息。5. sp_spaceused系統(tǒng)存儲過程 顯示由整個數(shù)據(jù)庫保留和使用的磁盤空間。也可以使用exet sp_deta
11、ch_db系統(tǒng)存儲過程來分離數(shù)據(jù)庫例如:將JdglSys數(shù)據(jù)庫的空間縮減至可用剩余空間為60%。語句為:DBCC SHRINKDATABASE(JdglSys,60);使用T-SQL語言刪除數(shù)據(jù)庫 刪除數(shù)據(jù)庫也可以是用DROP DATABASE語句來刪除。 DROP DATABASE語句的語法是: DROP DATABASE database_name,n; 例如:使用DROP DATABASE語句刪除數(shù)據(jù)庫Studentdb。 語句為: DROP DATABASE Studentdb;完整備份數(shù)據(jù)庫JdglSys到指定的備份設(shè)備JdglSys_backup上。 語句為: backup dat
12、abase JdglSys to JdglSys_backup;使用Transact-SQL語言創(chuàng)建數(shù)據(jù)表時,主要是用到CREATE TABLE語句。CREATE TABLE 數(shù)據(jù)表名字(字段名稱1 (對字段的定義部分)字段名稱2 (對字段的定義部分) .字段名稱n (對字段的定義部分));對數(shù)據(jù)表進(jìn)行字段添加的語法如下:ALTER TABLE 數(shù)據(jù)表名 ADD 字段名 字段類型 是否為空向客房類型表中添加一個字段【備注】,類型為nchar,長度為10。USE hotelGOALTER TABLE 客房類型 ADD 備注 nchar(10) NULLGO對數(shù)據(jù)表進(jìn)行字段類型修改的語法如下:AL
13、TER TABLE table_name ALTER COLUMN column_name new_type_name客房類型的【備注】屬性列的字段類型為nchar10,現(xiàn)在把它修改為ntext類型。具體的Transact-SQL語句如下所示:USE hotelGOALTER TABLE 客房類型 ALTER COLUMN 備注 ntext GO對數(shù)據(jù)表進(jìn)行字段刪除的語法如下:ALTER TABLE 數(shù)據(jù)表名 DROP COLUMN 字段名對客房類型表刪除剛才添加的字段【備注】。具體的Transact-SQL語句如下所示:USE hotelGOALTER TABLE 客房類型 DROP COL
14、UMN 備注 GO插入數(shù)據(jù)一般地,使用INSERT語句一次只能插入一行數(shù)據(jù)。INSERT語句的基本語法形式如下:INSERT INTO table_or_view_name (column_list) VALUES (expression)在客房類型表中插入一行數(shù)據(jù),類型編號為“P004”,名稱為“普通三人間”,面積為“45”,床位為“3”,價格為“550”,空調(diào)為“1”,電視為“1”,衛(wèi)生間為“0”。具體的Transact-SQL語句如下所示:INSERT INTO hotel.dbo.客房類型 (類型編號,名稱 ,面積 ,床位 ,價格 ,空調(diào) ,電視 ,衛(wèi)生間) VALUES (P004
15、,普通三人間 ,45 ,3 ,550 ,1 ,1 ,0)GO更新數(shù)據(jù)可以使用UPDATE語句更新表中已經(jīng)存在的數(shù)據(jù)。UPDATE語句既可以一次更新一行數(shù)據(jù),也可以一次更新許多行,甚至可以一次更新表中的全部數(shù)據(jù)行。UPDATE語句的基本語法形式如下:UPDATE table_or_view_name SET column_name = expression, WHERE search_condition 由于物價上漲,現(xiàn)在對酒店所有類型房間的價格統(tǒng)一上調(diào)50元。具體的Transact-SQL語句如下所示:USE hotelGOUPDATE 客房類型 SET 價格 = 價格+50GO由于物價上漲,
16、現(xiàn)在對酒店的豪華商務(wù)房的價格統(tǒng)一上調(diào)50元。具體的Transact-SQL語句如下所示:USE hotelGOUPDATE 客房類型 SET 價格 = 價格+50 WHERE 名稱=豪華商務(wù)房GO刪除數(shù)據(jù)當(dāng)表中的數(shù)據(jù)不再需要時,可以將其刪除。一般情況下,使用DELETE語句刪除數(shù)據(jù)。DELETE語句可以從一個表中刪除一行或多行數(shù)據(jù)。刪除數(shù)據(jù)的DELEE語句的基本語法形式如下:DELETE FROM table_or_name WHERE search_condition 刪除客房類型數(shù)據(jù)表中【面積】=30平方米的房間類型數(shù)據(jù)。具體的Transact-SQL語句如下所示:USE hotelGOD
17、ELETE FROM 客房類型 WHERE 面積=30GO約束ALTER TABLE 客房類型ADD CONSTRAINT col_b_defDEFAULT 1 FOR 電視 ;CHECK約束用來限制用戶輸入某一個列的數(shù)據(jù),即在該列中只能輸入指定范圍的數(shù)據(jù)。CHECK約束的兩種基本語法形式如下:CONSTRAINT constraint_name CHECK (logical_expression)CHECK (logical_expression)UNIQUE約束指定表中某一個列或多個列不能有相同的兩行或兩行以上的數(shù)據(jù)存在。這種約束通過實(shí)現(xiàn)唯一性索引來強(qiáng)制實(shí)體完整性。UNIQUE約束的4種基
18、本語法形式如下所示:CONSTRAINT constraint_name UNIQUEUNIQUECONSTRAINT constraint_name UNIQUE (column_list)UNIQUE (column_list)雖然SELECT語句的完整語法比較復(fù)雜,但其主要子句可歸納如下:SELECT FROM WHERE GROUP BY HAVING ORDER BY ASC|DESC select(1)SELECT ,稱為SELECT子句。用于指定整個查詢結(jié)果表中包含的列。假定已經(jīng)執(zhí)行完FROM、WHERE、GROUP BY、HAVING子句,從概念上來說得到了一個表,若將該表稱為
19、T,從T表中選擇SELECT子句指定的目標(biāo)列即為整個查詢的結(jié)果表。(2)FROM ,稱為FROM子句。用于指定整個查詢語句用到的一個或多個基本表或視圖,是整個查詢語句的數(shù)據(jù)來源,通常稱為數(shù)據(jù)源表。(3)WHERE ,稱為WHERE子句。用于指定多個數(shù)據(jù)源表的連接條件和單個源表中行的篩選或選擇條件。如果只有一個源表,則沒有表間的連接條件,只有行的篩選條件。(4)GROUP BY ,稱為GROUP BY子句。假定已經(jīng)執(zhí)行完FROM、WHERE子句,則從概念上來說得到了一個表,若將該表稱為T1表,則GROUP BY用于指定T1表按哪些列(稱為分組列)進(jìn)行分組,對每一個分組進(jìn)行運(yùn)算,產(chǎn)生一行。所有這些
20、行組成一個表,不妨把它稱為T2表,T2表實(shí)際上是一個組表。(5)HAVING ,稱為HAVING子句。與GROUP BY子句一起使用。用于指定組表T2表的選擇條件,即選擇T2表中滿足的行,組成一個表。(6)ORDER BY ,稱為ORDER BY子句。若有ORDER BY子句,則用于指定查詢結(jié)果表T中按指定列進(jìn)行升序或降序排序(默認(rèn)情況下按升序排列),得到整個查詢的結(jié)果表?!纠?-1】 查詢?nèi)w客戶的身份證號和姓名。SELECT 身份證號,姓名 FROM 客戶信息;【例6-2】查詢?nèi)w客戶的身份證號,姓名和電話。SELECT 身份證號,姓名,電話 FROM 客戶信息;或SELECT * FRO
21、M 客戶信息;【例6-3】查詢所有客戶的姓名,并去掉重復(fù)行。SELECT DISTINCT姓名FROM 客戶信息;【例6-3】查詢所有客戶的姓名,并去掉重復(fù)行。SELECT DISTINCT姓名FROM 客戶信息;【例6-4】 查詢所有客房類型的類型編號和名稱,并將價格上漲5%。SELECT類型編號,名稱,價格*1.05FROM 客房類型;【例6-5】查詢所有客房類型的類型編號和名稱,將價格上漲5%并顯示為“新價格”。 SELECT 類型編號,名稱,價格*1.05 AS 新價格FROM 客房類型;或 SELECT類型編號,名稱,價格*1.05 新價格 FROM 客房類型;或 SELECT類型編
22、號,名稱, 新價格=價格*1.05 FROM 客房類型;【例6-6】查詢所有價格大于300的客房類型編號,名稱,面積,床位和價格信息。SELECT 類型編號,名稱,面積,床位,價格FROM客房類型 WHERE價格300;between【例6-7】查詢價格在400500之間的客房類型編號,名稱,面積和床位信息。SELECT 類型編號,名稱,面積,床位FROM客房類型 WHERE價格 BETWEEN 400 AND 500;等價于:SELECT 類型編號,名稱,面積,床位FROM客房類型 WHERE價格= 400 AND 價格=500;【例6-8】查詢價格不在400500之間的客房類型編號,名稱,
23、面積和床位信息。SELECT 類型編號,名稱,面積,床位FROM 客房類型 WHERE 價格 NOT BETWEEN 400 AND 500;等價于:SELECT 類型編號,名稱,面積,床位FROM 客房類型 WHERE 價格500;in【例6-9】查詢價格為160,260,560的客房類型編號和名稱。SELECT 類型編號,名稱FROM客房類型 WHERE 價格IN(160,260,560); 【例6-10】查詢價格不是160,260,560的客房類型編號和名稱。SELECT 類型編號,名稱FROM客房類型 WHERE 價格 NOT IN(160,260,560);like【例6-11】查找
24、名字包含個字符,且中間為毅的客戶身份證號和姓名。SELECT 身份證號,姓名FROM 客戶信息 WHERE 姓名LIKE _毅_;【例6-12】查找姓王 的客戶身份證號和姓名。SELECT 身份證號,姓名FROM 客戶信息 WHERE 姓名LIKE 王%;【例6-13】查找姓王,張或李 的客戶身份證號和姓名。SELECT 身份證號,姓名FROM 客戶信息 WHERE 姓名LIKE 王張李%;【例6-14】查找不姓王或張的客戶身份證號和姓名。SELECT 身份證號,姓名FROM 客戶信息 WHERE 姓名 LIKE 王張李%;NULL【例6-15】查詢沒有登記面積的客房類型編號和名稱。SELEC
25、T 類型編號,名稱FROM 客房類型WHERE 面積 IS NULL; 【例6-15】查詢沒有登記面積的客房類型編號和名稱。SELECT 類型編號,名稱FROM 客房類型WHERE 面積 IS NULL; 帶條件查詢where(and not or)NOT 運(yùn)算符表示邏輯“非”關(guān)系。用于對搜索條件的邏輯值求反。AND運(yùn)算符表示邏輯“與”關(guān)系。當(dāng)使用AND運(yùn)算符組合兩個邏輯表達(dá)式時,只有當(dāng)兩個表達(dá)式均為TRUE時返回TRUE。OR運(yùn)算符表示邏輯“或”關(guān)系。當(dāng)使用OR運(yùn)算符組合兩個邏表達(dá)式時,只要其中一個表達(dá)式的條件為TRUE,結(jié)果便返回TRUE?!纠?-17】查詢價格為160,260,560的客
26、房類型編號和名稱。SELECT 類型編號,名稱FROM 客房類型 WHERE 價格=160 OR 價格=260 OR 價格=560;【例6-18】查詢價格既不是260也不是560的客房類型編號和名稱。SELECT 類型編號,名稱FROM 客房類型WHERE 價格260 AND 價格560; 基于函數(shù)COUNT(*)求表中或組中記錄的個數(shù)COUNT()求不是NULL的列值個數(shù)SUM()求該列所有值的總和(必須是數(shù)值型列)AVG()求該列所有值的平均值(必須是數(shù)值型列)MAX()求該列所有值的最大值(必須是數(shù)值型列)MIN()求該列所有值的最小值(必須是數(shù)值型列)【例6-19】求客戶的總?cè)藬?shù)。SE
27、LECT COUNT(*) 總?cè)藬?shù)FROM 客戶信息; 【例6-20】求客房的最高價格、最低價格和平均價格。SELECT MAX(價格) 最高價格,MIN(價格) 最低價格,AVG(價格)平均價格FROM 客房類型;查詢結(jié)果處理【例 6-21】查詢不同種類的客房類型編號,名稱和價格,結(jié)果按價格降序排列。SELECT 類型編號,名稱,價格 FROM 客房類型 ORDER BY 價格 DESC;【例 6-22】查詢不同種類的客房類型編號和名稱,結(jié)果按價格降序排列,價格相同的情況下按面積升序排列。SELECT 類型編號,名稱,價格,面積 FROM 客房類型 ORDER BY 價格 DESC,面積 A
28、SC; 分組查詢GROUP BY子句在WHERE子句后邊。一般形式為:GROUP BY , n 其中是分組的依據(jù)。分組原則是的列值相同,就為同一組。當(dāng)有多個時,則先按第一個列值分組,然后對每一組再按第二個列值進(jìn)行分組,依此類推。 【例6-23】查詢同一客戶入住本酒店的次數(shù)。SELECT 身份證號,COUNT(*) 次數(shù)FROM 業(yè)務(wù)記錄 GROUP BY 身份證號; HAVING【例6-24】查詢?nèi)胱”揪频甏螖?shù)大于等于兩次的客戶身份證號和入住次數(shù)。SELECT 身份證號,COUNT(*) 入住次數(shù) FROM 業(yè)務(wù)記錄GROUP BY 身份證號 HAVING COUNT(*)=2; 內(nèi)連接是比較
29、常用的一種數(shù)據(jù)連接查詢方式。它使用比較運(yùn)算符進(jìn)行多個基表間的數(shù)據(jù)的比較操作,并列出這些基表中與連接條件相匹配的所有的數(shù)據(jù)行。一般用INNER JOIN或JOIN關(guān)鍵字來指定內(nèi)連接,又可分為等值連接、非等值連接和自然連接種。內(nèi)連接的語法格式為:SELECT FROM 表1 INNER JOIN 表2 ON 連接條件WHERE 查詢條件ORDER BY 排序條件【例6-25】查詢當(dāng)前入住本酒店的客戶信息及入住情況(用WHERE子句實(shí)現(xiàn))。SELECT 客房業(yè)務(wù).*,客戶信息.*FROM 客房業(yè)務(wù),客戶信息WHERE 客房業(yè)務(wù).身份證號=客戶信息.身份證號;【例6-26】 查詢當(dāng)前入住本酒店的客戶信
30、息和入住情況(用INNER JOIN的方式實(shí)現(xiàn))。SELECT 客房業(yè)務(wù).*,客戶信息.*FROM 客戶信息 INNER JOIN 客房業(yè)務(wù)ON 客戶信息.身份證號=客房業(yè)務(wù).身份證號;內(nèi)連接非等值連接非等值連接查詢就是在連接條件中使用除了等號之外的比較運(yùn)算符,來比較連接列的列值。在非等值連接中,可以使用的比較運(yùn)算符有:,=,=,也可以使用范圍運(yùn)算符BETWEEN?!纠?-27】 查詢?nèi)胱∵^本酒店且單次消費(fèi)金額大于200的客戶身份證號和姓名。SELECT 業(yè)務(wù)記錄.*,客戶信息.*FROM 客戶信息 INNER JOIN 業(yè)務(wù)記錄ON 客戶信息.身份證號=業(yè)務(wù)記錄.身份證號 AND 金額200
31、;其結(jié)果如圖6-34所示。自然連接自然連接查詢是在連接條件中使用比較運(yùn)算符比較連接列的列值,但它使用選擇列表指出查詢結(jié)果集中所包含的列,并刪除連接表中的重復(fù)列。在使用自然連接查詢時,它為具有相同名稱的列自動進(jìn)行記錄匹配?!纠?-28】 查詢當(dāng)前入住本酒店的客戶信息和入住情況。 SELECT 客戶信息.身份證號,客戶信息.姓名,客房業(yè)務(wù).客房號,客房業(yè)務(wù).入住時間 FROM 客戶信息 INNER JOIN 客房業(yè)務(wù) ON 客戶信息.身份證號=客房業(yè)務(wù).身份證號;右外連接=匹配行+左邊表中不匹配的行其中,缺少的左邊表中的列值用NULL表示?!纠?-30】查詢所有客房的基本信息,如果有客戶入住時顯示
32、其身份證號。SELECT 客房信息.*, 客房業(yè)務(wù).身份證號FROM 客房業(yè)務(wù) RIGHT JOIN 客房信息ON 客房業(yè)務(wù).客房號= 客房信息.客房號;完全連接的SELECT語句使用FULL OUTER JOIN關(guān)鍵字對兩個表進(jìn)行連接。這種連接方式返回左表和右表中的所有行。當(dāng)某行在一個表中沒有匹配的行時,則另一個表與之相對應(yīng)列的值為NULL。如果表之間有匹配的行,則整個結(jié)果集包含表的數(shù)據(jù)值。【例6-31】使用完全連接查詢客房信息和客房業(yè)務(wù)兩個表。SELECT 客房信息.*, 客房業(yè)務(wù).*FROM 客房信息 FULL OUTER JOIN 客房業(yè)務(wù)ON 客房業(yè)務(wù).客房號=客房信息.客房號;子查
33、詢指的是一個SELECT查詢語句,但它嵌套在SELECT、INSERT、UPDATE、DELETE 語句或其他子查詢語句中。通常把外層的SELECT語句叫外查詢,內(nèi)層的SELECT語句叫內(nèi)查詢(或子查詢)。子查詢要用圓括號括起來,它可以出現(xiàn)在允許使用表達(dá)式的任何地方。子查詢可分為:非相關(guān)子查詢和相關(guān)子查詢?!纠?-35】在業(yè)務(wù)記錄表中查詢和身份證號為“100100125615896458”的客戶同一天入住的客戶的身份證號。SELECT 身份證號 FROM 業(yè)務(wù)記錄 WHERE 入住時間=(SELECT 入住時間 FROM 業(yè)務(wù)記錄 WHERE 身份證號=100100125615896458);
34、 例6-36】在業(yè)務(wù)記錄表中查詢和身份證號為“100100125615896458”的客戶不在同一天入住的客戶的身份證號。SELECT 身份證號 FROM 業(yè)務(wù)記錄 WHERE 入住時間=(SELECT 入住時間 FROM 業(yè)務(wù)記錄 WHERE 身份證號=100100125615896458);【例6-39】查詢當(dāng)前住在本酒店,電話號碼不是以“135”開頭的客戶信息。SELECT 身份證號,姓名,電話FROM 客戶信息WHERE EXISTS (SELECT * FROM 客房業(yè)務(wù)WHERE 身份證號=客戶信息.身份證號 AND 客戶信息.電話 NOT LIKE 135%);【例6-40】查詢當(dāng)前住在本酒店,電話號碼是以“135”開頭的客戶信息。SELECT 身份證號,姓名,電話FROM 客戶信息WHERE EXISTS (SELECT * FROM 客房業(yè)務(wù)WHERE 身份證號=客戶信息.身份證號 AND 客戶信息.電話 LIKE 135%);聚集索引是一種數(shù)據(jù)表的物理順序與索引順序相同的索引。建立索引時,系統(tǒng)將對表的物理數(shù)據(jù)頁中的數(shù)據(jù)按列進(jìn)行排列,然后再重新存儲到磁盤上,即聚集索引與數(shù)據(jù)是混為一體的。聚集索引的葉級和非葉級構(gòu)成了一個特殊類型的B+樹結(jié)構(gòu).非聚集索引是
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 維修電工高級測試題與答案(附解析)
- 集控運(yùn)行初級工習(xí)題+答案(附解析)
- 中藥學(xué)課件-清利濕熱藥
- 5月1+x 新居住試題(附答案解析)
- 《CMT卷煙品牌市場推廣策略》課件
- 《PDCA循環(huán)原理與應(yīng)用》課件
- 2025年低噪聲對旋式局部通風(fēng)機(jī)項(xiàng)目合作計劃書
- 《WinCC課件第一章》課件
- 春耕中班活動課件
- 航空公司航空器性能分析考核試卷
- 智慧礦山無人機(jī)自動巡檢解決方案
- 測繪地理信息從業(yè)人員保密知識培訓(xùn)
- 《智慧化工園區(qū)系統(tǒng)運(yùn)維管理要求》
- 第3章通風(fēng)空調(diào)工程3.1通風(fēng)工程3.2空調(diào)工程57課件講解
- 公益事業(yè)對外捐贈管理辦法
- 拓?fù)浯朋w研究-洞察分析
- 2025年江蘇南京林業(yè)大學(xué)招聘專職輔導(dǎo)員15人(第二批)高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025年濟(jì)南鐵路局招聘筆試參考題庫含答案解析
- 藥品養(yǎng)護(hù)管理制度
- 《西方經(jīng)濟(jì)學(xué)(本)》形考任務(wù)(1-6)試題答案解析
- 產(chǎn)后出血介入手術(shù)護(hù)理
評論
0/150
提交評論