數(shù)據(jù)類型和索引和表_第1頁
數(shù)據(jù)類型和索引和表_第2頁
數(shù)據(jù)類型和索引和表_第3頁
數(shù)據(jù)類型和索引和表_第4頁
數(shù)據(jù)類型和索引和表_第5頁
已閱讀5頁,還剩79頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

數(shù)據(jù)類型和索引和表第一頁,共八十四頁,2022年,8月28日Oracle數(shù)據(jù)庫中常用的基本數(shù)據(jù)類型第二頁,共八十四頁,2022年,8月28日Sqlserver數(shù)據(jù)庫中常用的數(shù)據(jù)類型數(shù)據(jù)類型指定列、存儲過程參數(shù)及局部變量的數(shù)據(jù)特性數(shù)據(jù)按照數(shù)據(jù)類型存儲在列中系統(tǒng)數(shù)據(jù)類型:系統(tǒng)數(shù)據(jù)類型是SQLServer支持的內(nèi)置數(shù)據(jù)類型用戶定義的數(shù)據(jù)類型:用戶根據(jù)系統(tǒng)數(shù)據(jù)類型自己定義的數(shù)據(jù)類型第三頁,共八十四頁,2022年,8月28日系統(tǒng)數(shù)據(jù)類型(1)字符型描述所需空間char固定長度的字符數(shù)據(jù),最大長度為8,000個(gè)字符。0到8000字節(jié)varchar可變長度的數(shù)據(jù),最大長度為8000個(gè)字符輸入數(shù)據(jù)的實(shí)際長度text可變長度的數(shù)據(jù),最大長度為2^31-1個(gè)字符16字節(jié)的指針,每個(gè)初始化列至少外加2000字節(jié)第四頁,共八十四頁,2022年,8月28日系統(tǒng)數(shù)據(jù)類型(2)Unicode類型描述所需空間nchar固定長度的Unicode數(shù)據(jù),最大長度為4000個(gè)字符0到4000字節(jié),具體取決于定義nvarchar可變長度的Unicode數(shù)據(jù),最大長度為4000個(gè)字符存儲大小是輸入數(shù)據(jù)的實(shí)際長度ntext可變長度的Unicode數(shù)據(jù),最大長度為2^30-1個(gè)字符16字節(jié)的指針,每個(gè)初始化列至少外加2000字節(jié)第五頁,共八十四頁,2022年,8月28日系統(tǒng)數(shù)據(jù)類型(3)日期類型描述所需空間smalldatetime從1900.1.1到2079.6.6,精確到1分鐘4字節(jié)datetime從1753.1.1到9999.12.31,精確到三百分之一秒,即3.33毫秒。8字節(jié)。第六頁,共八十四頁,2022年,8月28日系統(tǒng)數(shù)據(jù)類型(4)數(shù)字類型描述所需空間int整型數(shù)據(jù),從–2^31到2^31-14字節(jié)smallint整型數(shù)據(jù),從-2^15到2^15-12字節(jié)tinyint整型數(shù)據(jù),從0到2551字節(jié)decimal帶定點(diǎn)精度和小數(shù)位數(shù)的十進(jìn)制數(shù)字類型。5-17字節(jié)(由精度決定)numericdecimal的同義詞5-17字節(jié)(由精度決定)bit整型數(shù)據(jù),值為1或01字節(jié)第七頁,共八十四頁,2022年,8月28日系統(tǒng)數(shù)據(jù)類型(5)浮點(diǎn)類型描述所需空間float浮點(diǎn)精度數(shù)字?jǐn)?shù)據(jù),從–1.79E+308到1.79E+3088字節(jié)real浮點(diǎn)精度數(shù)字?jǐn)?shù)據(jù),從–3.40E+38到3.40E+384字節(jié)。第八頁,共八十四頁,2022年,8月28日系統(tǒng)數(shù)據(jù)類型(6)貨幣類型描述所需空間money從–2^63到2^63-1,精確到每個(gè)貨幣單位的萬分之一8字節(jié)smallmoney從–2^31到2^31-1,精確到每個(gè)貨幣單位的萬分之一4字節(jié)第九頁,共八十四頁,2022年,8月28日系統(tǒng)數(shù)據(jù)類型(7)二進(jìn)制類型描述所需空間varbinary可變長度的二進(jìn)制數(shù)據(jù),最大長度為8000字節(jié)輸入數(shù)據(jù)的長度再加4字節(jié)binary固定長度的二進(jìn)制數(shù)據(jù),最大長度為8,000字節(jié)0到8000字節(jié),具體取決于定義image可變長度的二進(jìn)制數(shù)據(jù),最大長度為2^31-1字節(jié)16字節(jié)的指針每個(gè)初始化列至少外加2000字節(jié)第十頁,共八十四頁,2022年,8月28日系統(tǒng)數(shù)據(jù)類型(8)timestamp整個(gè)數(shù)據(jù)庫范圍內(nèi)的唯一數(shù)字8字節(jié)特殊類型描述所需空間uniqueidentifier產(chǎn)生全局唯一的標(biāo)識符(GUID)16字節(jié)第十一頁,共八十四頁,2022年,8月28日用戶定義的數(shù)據(jù)類型特性使用系統(tǒng)數(shù)據(jù)類型定義具有預(yù)定義長度指定其中是否可存儲null值指定是否必須賦予默認(rèn)值指定是否要應(yīng)用現(xiàn)有規(guī)則第十二頁,共八十四頁,2022年,8月28日管理用戶定義的數(shù)據(jù)類型(1)sp_addtype[@typename=]type,

[@phystype=]system_data_type

[,[@nulltype=]'null_type']第十三頁,共八十四頁,2022年,8月28日管理用戶定義的數(shù)據(jù)類型(2)參數(shù):[@typename=]type

用戶定義數(shù)據(jù)類型的名稱。數(shù)據(jù)類型名稱必須遵循標(biāo)識符規(guī)則,并且在每個(gè)數(shù)據(jù)庫中必須是唯一的。type是sysname,無默認(rèn)值。[@phystype=]system_data_type

物理或SQLServer提供的數(shù)據(jù)類型(decimal、int等),用戶定義的數(shù)據(jù)類型即基于該類型。system_data_type是sysname,無默認(rèn)值。[@nulltype=]‘null_type’

指定必須如何處理null值。null_type是varchar(8),設(shè)置值為‘NULL’(默認(rèn))、‘NOTNULL’

或‘NONULL’

第十四頁,共八十四頁,2022年,8月28日Access數(shù)據(jù)庫常用數(shù)據(jù)類型第十五頁,共八十四頁,2022年,8月28日Access2000中字段可用的數(shù)據(jù)類型有以下幾種:文本(Text):文本、文本與數(shù)字、不必計(jì)算的數(shù)字,最長255個(gè)字符。備注(Memo):較長的文本,最長64,000字符。數(shù)字(Number)型:用于算術(shù)運(yùn)算的數(shù)字。可在“字段大小”中分字節(jié)、整型、單精度等子類型日期及時(shí)間(Date/Time):從100到9999的日期及時(shí)間值。可進(jìn)行日期及時(shí)間的計(jì)算。8字節(jié)貨幣(Currency):貨幣值。使用貨幣類型可避免計(jì)算時(shí)四舍五入。8字節(jié)自動編號(AutoNumber):添加記錄時(shí)的自動序號

遞增:添一條記錄,字段值增1;

隨機(jī):添一條記錄,字段值為另一隨機(jī)數(shù)。

2.字段的數(shù)據(jù)類型第十六頁,共八十四頁,2022年,8月28日是/否(Yes/No):取兩種值之一,如Yes/No、True/False、On/Off。大小為1位。OLE對象(Object):可鏈接或嵌入其他使用OLE協(xié)議的程序所創(chuàng)建的對象,如Word文檔、圖象、聲音等。最多1G。對象可鏈接或嵌入到Access表中。但只能在窗體或報(bào)表中使用綁定對象框來顯示。超鏈接(Hyperlink):超文本,用作超鏈接地址。超鏈接最多包含三部分:

顯示文本:在字段或控件中顯示的文本;

地址:到文件(UNC)或頁面(URL)的路徑;

子地址:在文件或頁面中的地址。查閱向?qū)?LookupWizard):由查閱向?qū)?chuàng)建。字段的值來自另一個(gè)表或數(shù)據(jù)列表中,可在列表框或組合框中選擇一個(gè)數(shù)據(jù)作為其值。

第十七頁,共八十四頁,2022年,8月28日備注型、超鏈接型和OLE對象型字段不能索引。若在表中輸入數(shù)據(jù)后更改字段的數(shù)據(jù)類型,則 在保存表時(shí),由于進(jìn)行大量數(shù)據(jù)轉(zhuǎn)換,時(shí)間較長; 若新的“數(shù)據(jù)類型”屬性的設(shè)置與段原數(shù)據(jù)類型沖突, 可能會丟失某些數(shù)據(jù)。Number、Date/Time、Currency和Yes/No類型具有預(yù)定義格式??稍O(shè)置格式,但OLE對象型除外

5.選擇數(shù)據(jù)類型時(shí)應(yīng)注意的問題第十八頁,共八十四頁,2022年,8月28日MySQL數(shù)據(jù)類型數(shù)據(jù)類型種類數(shù)值列類型字符串列類型日期和時(shí)間列類型第十九頁,共八十四頁,2022年,8月28日數(shù)據(jù)類型種類數(shù)值型

分為整型和浮點(diǎn)型整型:

可以由十進(jìn)制和十六進(jìn)制表示 整數(shù)由數(shù)字序列組成,如:1,100。 由十六進(jìn)制表示方法:0x且后面加1—9和 A—F的任意數(shù)字或字母,并且0x中的X不 能大寫。浮點(diǎn)型:

浮點(diǎn)數(shù)由一個(gè)數(shù)字加一個(gè)小數(shù)點(diǎn)再加上一 個(gè)數(shù)字組成。兩個(gè)數(shù)字序列不能同時(shí)為空。 第二十頁,共八十四頁,2022年,8月28日字符串:

由單引號或者雙引號括起來的字符或者數(shù)字。 如:”abc”,‘a(chǎn)bc10’字符串中要用轉(zhuǎn)義字符才能表示的特殊符號第二十一頁,共八十四頁,2022年,8月28日日期和時(shí)間值 是存儲如“2005-1-1”

或者“12:00:00”這樣的數(shù)值的值。在MySQL中日期是按”年-月-日”的順序。NULL值 是一種無類型的值,表示“空,什么也沒有”。第二十二頁,共八十四頁,2022年,8月28日數(shù)值列類型

MySQL為除了NULL值外的所有通用數(shù)據(jù)類型提供了列類型。列類型是一種手段,通過這種手段可以描述表的列可以包含什么樣類型的值。數(shù)值列類型 所有數(shù)值列類型的類型名及其說明和所占的字節(jié)數(shù)見下表:第二十三頁,共八十四頁,2022年,8月28日數(shù)值列類型包括整型和浮點(diǎn)型

說明:TINYINT,SAMLLINT,MEDIUMINT,INT,BIGINT每個(gè)數(shù)據(jù)類型的取值范圍不同,故分別可以表示不同的數(shù)值范圍。在定義整型列時(shí),可以指定可選的顯示尺寸M(見上表),M是從1到255的值,它表示顯示列中值的字符數(shù)。第二十四頁,共八十四頁,2022年,8月28日

字符串列類型所有字符串列類型及其說明和所占的字節(jié)數(shù)見下表:第二十五頁,共八十四頁,2022年,8月28日說明:對于可變長的字符串類型,其長度取決于實(shí)際存放在列中的值的長度。此長度在上表中用L來表示。附加若干額外字節(jié),用來記錄字符串長度,也就是說總長度等于L+n(n=1、2、3、4、8)第二十六頁,共八十四頁,2022年,8月28日CHAR和VARCHAR類型

CHAR類型和VARCHAR類型長度范圍都是0~255之間的大小。他們之間的差別在于MySQL處理存儲的方式: CHAR把這個(gè)大小視為值的準(zhǔn)確大?。ㄓ每崭裉钛a(bǔ)比較短的值)。 VARCHAR類型把它視為最大值并且只使用了存儲字符串實(shí)際上需要的字節(jié)數(shù)(增加了一個(gè)額外的字節(jié)記錄長度)。因而,較短的值當(dāng)被插入一個(gè)語句為VARCHAR類型的字段時(shí),將不會用空格填補(bǔ)(然而,較長的值仍然被截短)。第二十七頁,共八十四頁,2022年,8月28日BLOB和TEXT類型

BLOB是二進(jìn)制大對象,如果想存儲二進(jìn)制數(shù)BLOB將是最佳選擇,而TEXT與之相同,只是BOLOB按照二進(jìn)制編碼排序(區(qū)分大小寫),TEXT按照字符文本模式排序(不區(qū)分大小寫)。ENUM和SET類型 是特殊的串類型,其列值必須從固定的串集中選擇,二者差別為前者必須是只能選擇其中的一個(gè)值,而后者可以多選。(不推薦使用)第二十八頁,共八十四頁,2022年,8月28日日期和時(shí)間列類型所有時(shí)間和日期列類型的類型名及其說明和所占的字節(jié)數(shù)見下表 :第二十九頁,共八十四頁,2022年,8月28日第三十頁,共八十四頁,2022年,8月28日說明:每個(gè)時(shí)間和日期列類型都有一個(gè)零值,當(dāng)插入非法數(shù)值時(shí)就用零值來添加表示日期時(shí)必須先按:年,月,日的順序給出DATE,TIME,DATETIME分別是存儲日期,時(shí)間與日期和時(shí)間的組合,其格式為“YYYY-MM-DD”,

“hh:mm:ss”和“YYYY-MM-DDhh:mm:ss”,對于DATETIME類型,日期和時(shí)間部分都需要TIMESTAMP

時(shí)間戳列類型以YYYYMMDDhhmmss的格式來表示值,其取值范圍是到2037年的某個(gè)時(shí)間,主要用于記錄更改或創(chuàng)建某個(gè)記錄第三十一頁,共八十四頁,2022年,8月28日總結(jié):常用數(shù)據(jù)類型分類備注和說明數(shù)據(jù)類型說明二進(jìn)制數(shù)據(jù)類型存儲非子符和文本的數(shù)據(jù)BLOB可用來存儲圖像文本數(shù)據(jù)類型字符數(shù)據(jù)包括任意字母、符號或數(shù)字字符的組合char固定長度的非Unicode字符數(shù)據(jù)varchar可變長度非Unicode數(shù)據(jù)text存儲長文本信息日期和時(shí)間日期和時(shí)間在單引號內(nèi)輸入time時(shí)間date日期datetime日期和時(shí)間數(shù)值型數(shù)據(jù)該數(shù)據(jù)僅包含數(shù)字,包括正數(shù)、負(fù)數(shù)以及浮點(diǎn)數(shù)intsmallint整數(shù)floatdouble浮點(diǎn)數(shù)貨幣數(shù)據(jù)類型用于財(cái)務(wù)數(shù)據(jù)decimal定點(diǎn)數(shù)Bit數(shù)據(jù)類型表示是/否的數(shù)據(jù)bit存儲布爾數(shù)據(jù)類型第三十二頁,共八十四頁,2022年,8月28日3.3.3索引的建立和刪除建立索引是加快查詢速度的有效手段建立索引DBA或表的屬主(即建立表的人)根據(jù)需要建立有些DBMS自動建立以下的索引

PRIMARYKEYUNIQUE第三十三頁,共八十四頁,2022年,8月28日一、建立索引語句格式CREATE[UNIQUE]INDEX<索引名>ON<表名>(<字段>[<次序>][,<字段>[<次序>]]…); 用<表名>指定要建索引的基本表名字索引可以建立在該表的一列或多列上,各列名之間用逗號分隔用<次序>指定索引值的排列次序,升序:ASC,降序:DESC。缺省值:ASCUNIQUE表明此索引的每一個(gè)索引值只對應(yīng)唯一的數(shù)據(jù)記錄第三十四頁,共八十四頁,2022年,8月28日例題

[例14]為學(xué)生-課程數(shù)據(jù)庫中的Student,Course兩個(gè)表建立索引。其中Student表按姓名升序建索引,Course表按課程名稱降序建唯一索引。CREATEINDEXstu_sname_indexONStudent(S_name);CREATEUNIQUEINDEXcourse_cname_indexONCourse(C_namedesc);第三十五頁,共八十四頁,2022年,8月28日㈡刪除索引DROPINDEX<索引名>;刪除索引時(shí),系統(tǒng)會從數(shù)據(jù)字典中刪去有關(guān)該索引的描述。[例15]刪除Student表的stu_sname_index索引。

DROPINDEXstu_sname_index;注意:主鍵索引不能被刪除;刪除主鍵約束時(shí),主鍵索引會被自動刪除。第三十六頁,共八十四頁,2022年,8月28日3.4.1單表查詢查詢僅涉及一個(gè)表,是一種最簡單的查詢操作一、選擇表中的若干列二、選擇表中的若干元組三、orderby子句四、聚集函數(shù)(aggregatefunctions)五、groupby子句第三十七頁,共八十四頁,2022年,8月28日一、選擇表中的若干列1.查詢指定列[例1]查詢?nèi)w學(xué)生的學(xué)號與姓名。SELECTSno,SnameFROMStudent;

[例2]查詢?nèi)w學(xué)生的姓名、學(xué)號、所在系。SELECTSname,Sno,SdeptFROMStudent;第三十八頁,共八十四頁,2022年,8月28日[例3]查詢?nèi)w學(xué)生的詳細(xì)記錄。SELECTSno,Sname,Ssex,SBirthday,SdeptFROMStudent;或SELECT*FROMStudent;2.查詢?nèi)苛?/p>

第三十九頁,共八十四頁,2022年,8月28日SELECT子句的<目標(biāo)列表達(dá)式>為表達(dá)式算術(shù)表達(dá)式字符串常量函數(shù)列別名等3.查詢經(jīng)過計(jì)算的值

第四十頁,共八十四頁,2022年,8月28日3.查詢經(jīng)過計(jì)算的值

[例4]查全體學(xué)生的姓名及其年齡。SELECTSname,Ceil((SysDate-Sbirthday)/365)FROMStudent;

輸出結(jié)果:

SnameCeil((SysDate-Sbirthday)/365)----------------------

李勇20

劉晨21

王名19

張立19第四十一頁,共八十四頁,2022年,8月28日3.查詢經(jīng)過計(jì)算的值[例5]查詢?nèi)w學(xué)生的姓名、出生年份和所有系,要求用小寫字母表示所有系名。SELECTSname,‘a(chǎn)ge:‘,Ceil((SysDate-Sbirthday)/365),LOWER(Sdept)FROMStudent;

第四十二頁,共八十四頁,2022年,8月28日例題(續(xù))輸出結(jié)果:Sname‘a(chǎn)ge:‘Ceil((SysDate-Sbirthday)/365)LOWER(Sdept)---------------------------------------------------------李勇age:20cs劉晨age:21is王名age:19ma張立age:19is第四十三頁,共八十四頁,2022年,8月28日[例6]使用列別名改變查詢結(jié)果的列標(biāo)題SELECTSname姓名,Ceil((SysDate-Sbirthday)/365)

年齡,LOWER(Sdept)所在系FROM

Student;輸出結(jié)果:

姓名年齡所在系

-----------------------------

李勇20cs

劉晨21is

王名19ma

張立19is第四十四頁,共八十四頁,2022年,8月28日二、選擇表中的若干元組消除取值重復(fù)的行查詢滿足條件的元組第四十五頁,共八十四頁,2022年,8月28日1.消除取值重復(fù)的行在SELECT子句中使用DISTINCT短語假設(shè)SC表中有下列數(shù)據(jù)

SnoCnoGrade---------------------9500119295001285950013889500229095002380第四十六頁,共八十四頁,2022年,8月28日ALL與

DISTINCT

[例6]查詢選修了課程的學(xué)生學(xué)號。(1)SELECTSnoFROMSC;

或(默認(rèn)ALL)SELECTALLSnoFROMSC;

結(jié)果:Sno-------9500195001950019500295002第四十七頁,共八十四頁,2022年,8月28日例題(續(xù))(2)SELECTDISTINCTSnoFROMSC;

結(jié)果:

Sno-------9500195002第四十八頁,共八十四頁,2022年,8月28日例題(續(xù))注意DISTINCT短語的作用范圍是所有目標(biāo)列例:查詢選修課程的各種成績錯(cuò)誤的寫法SELECTDISTINCTCno,DISTINCTGradeFROMSC;正確的寫法

SELECTDISTINCTCno,GradeFROMSC;

第四十九頁,共八十四頁,2022年,8月28日2.查詢滿足條件的元組WHERE子句常用的查詢條件第五十頁,共八十四頁,2022年,8月28日(1)比較大小在WHERE子句的<比較條件>中使用比較運(yùn)算符=,>,<,>=,<=,!=或<>,!>,!<,邏輯運(yùn)算符NOT+比較運(yùn)算符[例8]查詢所有年齡在20歲以下的學(xué)生姓名及其年齡。

SELECTSname,Sage

FROMStudentWHERESage<20;或SELECTSname,SageFROMStudentWHERENOTSage>=20;

第五十一頁,共八十四頁,2022年,8月28日(2)確定范圍使用謂詞BETWEEN…AND…NOTBETWEEN…AND…[例10]查詢年齡在20~23歲(包括20歲和23歲)之間的學(xué)生的姓名、系別和年齡。

SELECTSname,Sdept,SageFROMStudentWHERESageBETWEEN20AND23;

第五十二頁,共八十四頁,2022年,8月28日例題(續(xù))[例11]查詢年齡不在20~23歲之間的學(xué)生姓名、系別和年齡。SELECTSname,Sdept,SageFROMStudentWHERESageNOTBETWEEN20AND23;

第五十三頁,共八十四頁,2022年,8月28日(3)確定集合使用謂詞IN<值表>,NOTIN<值表>

<值表>:用逗號分隔的一組取值[例12]查詢信息系(IS)、數(shù)學(xué)系(MA)和計(jì)算機(jī)科學(xué)系(CS)學(xué)生的姓名和性別。SELECTSname,SsexFROMStudentWHERESdeptIN('IS','MA','CS');第五十四頁,共八十四頁,2022年,8月28日(3)確定集合[例13]查詢既不是信息系、數(shù)學(xué)系,也不是計(jì)算機(jī)科學(xué)系的學(xué)生的姓名和性別。SELECTSname,SsexFROMStudent WHERESdeptNOTIN('IS','MA','CS');第五十五頁,共八十四頁,2022年,8月28日(4)字符串匹配

[NOT]LIKE‘<匹配串>’[ESCAPE‘<換碼字符>’]<匹配串>:指定匹配模板匹配模板:固定字符串或含通配符的字符串當(dāng)匹配模板為固定字符串時(shí),可以用=運(yùn)算符取代LIKE謂詞用!=或<>運(yùn)算符取代NOTLIKE謂詞第五十六頁,共八十四頁,2022年,8月28日通配符%(百分號)代表任意長度(長度可以為0)的字符串例:a%b表示以a開頭,以b結(jié)尾的任意長度的字符串。如acb,addgb,ab等都滿足該匹配串_(下橫線)代表任意單個(gè)字符例:a_b表示以a開頭,以b結(jié)尾的長度為3的任意字符串。如acb,afb等都滿足該匹配串第五十七頁,共八十四頁,2022年,8月28日ESCAPE短語:當(dāng)用戶要查詢的字符串本身就含有%或_時(shí),要使用ESCAPE'<換碼字符>'短語對通配符進(jìn)行轉(zhuǎn)義。第五十八頁,共八十四頁,2022年,8月28日例題1)匹配模板為固定字符串[例14]查詢學(xué)號為95001的學(xué)生的詳細(xì)情況。

SELECT*FROMStudentWHERESnoLIKE'95001';等價(jià)于:

SELECT*FROMStudentWHERESno='95001';第五十九頁,共八十四頁,2022年,8月28日例題(續(xù))2)匹配模板為含通配符的字符串[例15]查詢所有姓劉學(xué)生的姓名、學(xué)號和性別。

SELECTSname,Sno,SsexFROMStudentWHERESnameLIKE‘劉%’;第六十頁,共八十四頁,2022年,8月28日例題(續(xù))匹配模板為含通配符的字符串(續(xù))[例16]查詢姓"歐陽"且全名為三個(gè)漢字的學(xué)生的姓名。

SELECTSnameFROMStudentWHERESnameLIKE'歐陽_';第六十一頁,共八十四頁,2022年,8月28日例題(續(xù))匹配模板為含通配符的字符串(續(xù))[例17]查詢名字中第2個(gè)字為"陽"字的學(xué)生的姓名和學(xué)號。

SELECTSname,SnoFROMStudentWHERESnameLIKE'_陽%';第六十二頁,共八十四頁,2022年,8月28日例題(續(xù))匹配模板為含通配符的字符串(續(xù))[例18]查詢所有不姓劉的學(xué)生姓名。

SELECTSnameFROMStudentWHERESnameNOTLIKE'劉%';第六十三頁,共八十四頁,2022年,8月28日例題(續(xù))使用換碼字符將通配符轉(zhuǎn)義為普通字符(續(xù))[例20]查詢以"DB_"開頭,且倒數(shù)第3個(gè)字符為i的課程的詳細(xì)情況。

SELECT*FROMCourseWHERECnameLIKE'DB\_%i__'ESCAPE'\';第六十四頁,共八十四頁,2022年,8月28日(5)涉及空值的查詢

使用謂詞ISNULL或ISNOTNULL“ISNULL”不能用“=NULL”代替[例21]某些學(xué)生選修課程后沒有參加考試,所以有選課記錄,但沒有考試成績。查詢?nèi)鄙俪煽兊膶W(xué)生的學(xué)號和相應(yīng)的課程號。

SELECTSno,CnoFROMSCWHEREGradeISNULL;第六十五頁,共八十四頁,2022年,8月28日例題(續(xù))

[例22]查所有有成績的學(xué)生學(xué)號和課程號。

SELECTSno,CnoFROMSCWHEREGradeISNOTNULL;第六十六頁,共八十四頁,2022年,8月28日(6)多重條件查詢用邏輯運(yùn)算符AND和OR來聯(lián)結(jié)多個(gè)查詢條件

AND的優(yōu)先級高于OR

可以用括號改變優(yōu)先級可用來實(shí)現(xiàn)多種其他謂詞

[NOT]IN[NOT]BETWEEN…AND…第六十七頁,共八十四頁,2022年,8月28日例題[例23]查詢計(jì)算機(jī)系年齡在20歲以下的學(xué)生姓名。

SELECTSnameFROMStudentWHERESdept='CS'ANDSage<20;第六十八頁,共八十四頁,2022年,8月28日改寫[例12][例12]查詢信息系(IS)、數(shù)學(xué)系(MA)和計(jì)算機(jī)科學(xué)系(CS)學(xué)生的姓名和性別。SELECTSname,SsexFROMStudentWHERESdeptIN('IS','MA','CS')可改寫為:SELECTSname,SsexFROMStudentWHERESdept='IS'ORSdept='MA'ORSdept='CS';第六十九頁,共八十四頁,2022年,8月28日改寫[例10][例10]查詢年齡在20~23歲(包括20歲和23歲)之間的學(xué)生的姓名、系別和年齡。

SELECTSname,Sdept,SageFROMStudentWHERESageBETWEEN20AND23;可改寫為:

SELECTSname,Sdept,SageFROMStudentWHERESage>=20ANDSage<=23;第七十頁,共八十四頁,2022年,8月28日三、orderby子句 使用ORDERBY子句可以按一個(gè)或多個(gè)屬性列排序升序:ASC;降序:DESC;缺省值為升序當(dāng)排序列含空值時(shí)ASC:排序列為空值的元組最后顯示DESC:排序列為空值的元組最先顯示第七十一頁,共八十四頁,2022年,8月28日Orderby子句(續(xù))[例24]查詢選修了3號課程的學(xué)生的學(xué)號及其成績,查詢結(jié)果按分?jǐn)?shù)降序排列。

SELECTSno,GradeFROMSCWHERECno='3'ORDERBYGradeDESC;第七十二頁,共八十四頁,2022年,8月28日查詢結(jié)果

SnoGrade--------------9501095024950079295003829501082950097595014619500255第七十三頁,共八十四頁,2022年,8月28日Orderby子句(續(xù))[例25]查詢?nèi)w學(xué)生情況,查詢結(jié)果按所在系的系號升序排列,同一系中的學(xué)生按年齡降序排列。

SELECT*FROMStudentORDERBYSdept,SageDESC;第七十四頁,共八十四頁,2022年,8月28日四、聚集函數(shù)5類主要集函數(shù)計(jì)數(shù)COUNT([DISTINCT|ALL]*)COUNT([DISTINCT|ALL]<列名>)計(jì)算總和SUM([DISTINCT|ALL]<列名>) 計(jì)算平均值A(chǔ)VG([DISTINCT|ALL]<列名>)第七十五頁,共八十四頁,2022年,8月28日聚集函數(shù)(續(xù))求最大值MAX([DISTINCT|ALL]<列名>)

求最小值MIN([DISTINCT|ALL]<列名>) DISTINCT短語:在計(jì)算時(shí)要

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論