![數(shù)據(jù)庫原理第8講_第1頁](http://file4.renrendoc.com/view/6d1ade6949a57b81dfe85ec41731fd51/6d1ade6949a57b81dfe85ec41731fd511.gif)
![數(shù)據(jù)庫原理第8講_第2頁](http://file4.renrendoc.com/view/6d1ade6949a57b81dfe85ec41731fd51/6d1ade6949a57b81dfe85ec41731fd512.gif)
![數(shù)據(jù)庫原理第8講_第3頁](http://file4.renrendoc.com/view/6d1ade6949a57b81dfe85ec41731fd51/6d1ade6949a57b81dfe85ec41731fd513.gif)
![數(shù)據(jù)庫原理第8講_第4頁](http://file4.renrendoc.com/view/6d1ade6949a57b81dfe85ec41731fd51/6d1ade6949a57b81dfe85ec41731fd514.gif)
![數(shù)據(jù)庫原理第8講_第5頁](http://file4.renrendoc.com/view/6d1ade6949a57b81dfe85ec41731fd51/6d1ade6949a57b81dfe85ec41731fd515.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
數(shù)據(jù)庫系統(tǒng)概論AnIntroductiontoDatabaseSystem第三章關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言SQL.兩個(gè)概念Schema(架構(gòu),P83)Createschema...Index(索引,P89).Schema(架構(gòu))Aschemaisessentiallyanamespace:itcontainsnamedobjects(tables,datatypes,functions,andoperators)whosenamesmayduplicatethoseofotherobjectsexistinginotherschemas.Namedobjectsareaccessedeitherby"qualifying"
theirnameswiththeschemanameasaprefix,orbysettingasearchpaththatincludesthedesiredschema(s).
.Index(索引)索引以某個(gè)(或某些)屬性值為輸入并找出對(duì)應(yīng)屬性值符合要求的紀(jì)錄。具體來說,索引使我們只需查看所有可能記錄中的一小部分就能找到所需記錄。建立索引的屬性(組合)稱為查找鍵(searchkey),簡稱鍵。索引存放記錄的塊值匹配的記錄.稠密索引(DenseIndexes)和
稀疏索引(SparseIndexes)稠密索引:數(shù)據(jù)文件中每個(gè)記錄在索引文件中都設(shè)有一個(gè)索引項(xiàng)。.102010203040506070809010011012030405060708090100索引文件數(shù)據(jù)文件圖3-2順序文件(右)上的稠密索引(左).1020103050709011013015017019021023030405060708090100圖3-2順序文件上的稀疏索引.多級(jí)索引(MultipleLevelsofIndex)10901702501090170250一級(jí)稀疏索引二級(jí)稀疏索引.輔助索引(SecondaryIndexes)2040101020202030405050601020503010506020.B-樹(B-Trees)...3.1SQL概述SQL(StructuredQueryLanguage)結(jié)構(gòu)化查詢語言,是關(guān)系數(shù)據(jù)庫的標(biāo)準(zhǔn)語言SQL是一個(gè)通用的、功能極強(qiáng)的關(guān)系數(shù)據(jù)庫語言.概述SQL的發(fā)展1974年,由Boyce和Chamberlin提出1975~1979,IBMSanJoseResearchLab的關(guān)系數(shù)據(jù)庫管理系統(tǒng)原型SystemR實(shí)施了這種語言SQL-86是第一個(gè)SQL標(biāo)準(zhǔn)SQL-89、SQL-92(SQL2)、SQL-99(SQL3)、SQL2003.3.1SQL概述SQL的特點(diǎn)1.綜合統(tǒng)一2.高度非過程化3.面向集合的操作方式4.以同一種語法結(jié)構(gòu)提供兩種使用方法5.語言簡潔,易學(xué)易用.3.1.2SQL的特點(diǎn)集數(shù)據(jù)定義語言(DDL),數(shù)據(jù)操縱語言(DML),數(shù)據(jù)控制語言(DCL)功能于一體。1.綜合統(tǒng)一
.AnIntroductiontoDatabaseSystem2.高度非過程化非關(guān)系數(shù)據(jù)模型的數(shù)據(jù)操縱語言“面向過程”,必須制定存取路徑SQL只要提出“做什么”,無須了解存取路徑。存取路徑的選擇以及SQL的操作過程由系統(tǒng)自動(dòng)完成。.3.面向集合的操作方式非關(guān)系數(shù)據(jù)模型采用面向記錄的操作方式,操作對(duì)象是一條記錄SQL采用集合操作方式操作對(duì)象、查找結(jié)果可以是元組的集合一次插入、刪除、更新操作的對(duì)象可以是元組的集合.4.以同一種語法結(jié)構(gòu)提供多種使用方式SQL是獨(dú)立的語言能夠獨(dú)立地用于聯(lián)機(jī)交互的使用方式SQL又是嵌入式語言SQL能夠嵌入到高級(jí)語言(例如C,C++,Java)程序中,供程序員設(shè)計(jì)程序時(shí)使用.AnIntroductiontoDatabaseSystem5.語言簡潔,易學(xué)易用SQL功能極強(qiáng),完成核心功能只用了9個(gè)動(dòng)詞。5.語言簡潔,易學(xué)易用.3.2數(shù)據(jù)定義.定義模式[例1]定義一個(gè)學(xué)生-課程模式S-TCREATESCHEMA“S-T”AUTHORIZATIONWANG;為用戶WANG定義了一個(gè)模式S-T[例2]CREATESCHEMAAUTHORIZATIONWANG;<模式名>隱含為用戶名WANG如果沒有指定<模式名>,那么<模式名>隱含為<用戶名>.定義模式(續(xù))定義模式實(shí)際上定義了一個(gè)命名空間在這個(gè)空間中可以定義該模式包含的數(shù)據(jù)庫對(duì)象,例如基本表、視圖、索引等。在CREATESCHEMA中可以接受CREATETABLE,CREATEVIEW和GRANT子句。 CREATESCHEMA<模式名>AUTHORIZATION<用戶名>[<表定義子句>|<視圖定義子句>|<授權(quán)定義子句>].定義模式(續(xù))[例3]CREATESCHEMATESTAUTHORIZATIONZHANG CREATETABLETAB1(COL1SMALLINT, COL2INT, COL3CHAR(20), COL4NUMERIC(10,3), COL5DECIMAL(5,2) );.刪除模式DROPSCHEMA<模式名><CASCADE|RESTRICT> CASCADE(級(jí)聯(lián))
刪除模式的同時(shí)把該模式中所有的數(shù)據(jù)庫對(duì)象全部刪除 RESTRICT(限制)
如果該模式中定義了下屬的數(shù)據(jù)庫對(duì)象(如表、視圖等),則拒絕該刪除語句的執(zhí)行。
當(dāng)該模式中沒有任何下屬的對(duì)象時(shí)才能執(zhí)行。[例4]DROPSCHEMAZHANGCASCADE;.定義基本表CREATETABLE<表名>
(<列名><數(shù)據(jù)類型>[<列級(jí)完整性約束條件>][,<列名><數(shù)據(jù)類型>[<列級(jí)完整性約束條件>]]…[,<表級(jí)完整性約束條件>]);如果完整性約束條件涉及到該表的多個(gè)屬性列,則必須定義在表級(jí)上,否則既可以定義在列級(jí)也可以定義在表級(jí)。.例題[例1]建立一個(gè)“學(xué)生”表Student,它由學(xué)號(hào)Sno、姓名Sname、性別Ssex、年齡Sage、所在系Sdept五個(gè)屬性組成。其中學(xué)號(hào)不能為空,值是唯一的,并且姓名取值也唯一。
CREATETABLEStudent(SnoCHAR(5)NOTNULLUNIQUE,
SnameCHAR(20)UNIQUE,
SsexCHAR(1),
SageINT,
SdeptCHAR(15));.定義基本表(續(xù))常用完整性約束主碼約束:PRIMARYKEY唯一性約束:UNIQUE非空值約束:NOTNULL參照完整性約束PRIMARYKEY與
UNIQUE的區(qū)別?.例題(續(xù))[例2]建立一個(gè)“學(xué)生選課”表SC,它由學(xué)號(hào)Sno、課程號(hào)Cno,修課成績Grade組成,其中(Sno,Cno)為主碼。CREATETABLESC(SnoCHAR(5),CnoCHAR(3),Gradeint,Primarykey(Sno,Cno));.模式與表每一個(gè)基本表都屬于某一個(gè)模式一個(gè)模式包含多個(gè)基本表定義基本表所屬模式方法一:在表名中明顯地給出模式名 Createtable“S-T”.Student(......);/*模式名為S-T*/ Createtable“S-T”.Cource(......); Createtable“S-T”.SC(......);方法二:在創(chuàng)建模式語句中同時(shí)創(chuàng)建表方法三:設(shè)置所屬的模式.二、修改基本表ALTERTABLE<表名>[ADD<新列名><數(shù)據(jù)類型>[完整性約束]][DROP<完整性約束名>][MODIFY<列名><數(shù)據(jù)類型>];.例題[例2]向Student表增加“入學(xué)時(shí)間”列,其數(shù)據(jù)類型為日期型。
ALTERTABLEStudentADDScomeDATE;不論基本表中原來是否已有數(shù)據(jù),新增加的列一律為空值。
.語句格式(續(xù))刪除屬性列
直接/間接刪除把表中要保留的列及其內(nèi)容復(fù)制到一個(gè)新表中刪除原表再將新表重命名為原表名直接刪除屬性列:(新)例:ALTERTABLEStudentDropScome;.
[例3]將年齡的數(shù)據(jù)類型改為半字長整數(shù)。
ALTERTABLEStudentMODIFYSageSMALLINT;注:修改原有的列定義有可能會(huì)破壞已有數(shù)據(jù).例題[例4]刪除學(xué)生姓名必須取唯一值的約束。
ALTERTABLEStudentDROPUNIQUE(Sname);.三、刪除基本表 DROPTABLE<表名>;
基本表刪除 表的定義、數(shù)據(jù)、表上的索引都刪除 表上的視圖往往仍然保留,但 無法引用刪除基本表時(shí),系統(tǒng)會(huì)從數(shù)據(jù)字典中刪去有關(guān)該基本表及其索引的描述
(標(biāo)準(zhǔn)中沒有,認(rèn)為表建立后就永久存在).例題[例5]刪除Student表
DROPTABLE
Student;.3.2.2建立與刪除索引建立索引是加快查詢速度的有效手段建立索引DBA或表的屬主(即建立表的人)根據(jù)需要建立有些DBMS自動(dòng)建立以下列上的索引
PRIMARYKEYUNIQUE維護(hù)索引
DBMS自動(dòng)完成
使用索引
DBMS自動(dòng)選擇是否使用索引以及使用哪些索引.索引RDBMS中索引一般采用B+樹、HASH索引來實(shí)現(xiàn)B+樹索引具有動(dòng)態(tài)平衡的優(yōu)點(diǎn)HASH索引具有查找速度快的特點(diǎn)采用B+樹,還是HASH索引則由具體的RDBMS來決定索引是關(guān)系數(shù)據(jù)庫的內(nèi)部實(shí)現(xiàn)技術(shù),屬于內(nèi)模式的范疇CREATEINDEX語句定義索引時(shí),可以定義索引是唯一索引、非唯一索引或聚簇索引.一、建立索引CREATE[UNIQUE][CLUSTER]INDEX<索引名>ON<表名>(<列名>[<次序>][,<列名>[<次序>]]…); .例題[例6]為學(xué)生-課程數(shù)據(jù)庫中的Student,Course,SC三個(gè)表建立索引。其中Student表按學(xué)號(hào)升序建唯一索引,Course表按課程號(hào)升序建唯一索引,SC表按學(xué)號(hào)升序和課程號(hào)降序建唯一索引。CREATEUNIQUEINDEXStusnoONStudent(Sno);CREATEUNIQUEINDEXCoucnoONCourse(Cno);CREATEUNIQUEINDEXSCnoONSC(SnoASC,CnoDESC);
.建立索引(續(xù))唯一值索引對(duì)于已含重復(fù)值的屬性列不能建UNIQUE索引對(duì)某個(gè)列建立UNIQUE索引后,插入新記錄時(shí)DBMS會(huì)自動(dòng)檢查新記錄在該列上是否取了重復(fù)值。這相當(dāng)于增加了一個(gè)UNIQUE約束.建立索引(續(xù))聚簇索引建立聚簇索引后,基表中數(shù)據(jù)也需要按指定的聚簇屬性值的升序或降序存放。也即聚簇索引的索引項(xiàng)順序與表中記錄的物理順序一致例:CREATECLUSTERINDEXStusnameONStudent(Sname);在Student表的Sname(姓名)列上建立一個(gè)聚簇索引,而且Student表中的記錄將按照Sname值的升序存放
.建立索引(續(xù))在一個(gè)基本表上最多只能建立一個(gè)聚簇索引聚簇索引的用途:對(duì)于某些類型的查詢,可以提高查詢效率聚簇索引的適用范圍很少對(duì)基表進(jìn)行增刪操作很少對(duì)其中的變長列進(jìn)行修改操作.二、刪除索引DROPINDEX<索引名>;刪除索引時(shí),系統(tǒng)會(huì)從數(shù)據(jù)字典中刪去有關(guān)該索引的描述。[例7]刪除Student表的Stusname索引。
DROPINDEXStusname;.3.3查詢3.3.1概述3.3.2單表查詢3.3.3連接查詢3.3.4嵌套查詢3.3.5集合查詢3.3.6小結(jié).3.3.1概述語句格式SELECT[ALL|DISTINCT]<目標(biāo)列表達(dá)式>[,<目標(biāo)列表達(dá)式>]…FROM<表名或視圖名>[,<表名或視圖名>]…[WHERE<條件表達(dá)式>][GROUPBY<列名1>[HAVING<條件表達(dá)式>]][ORDERBY<列名2>[ASC|DESC]];
.語句格式SELECT子句:指定要顯示的屬性列FROM子句:指定查詢對(duì)象(基本表或視圖)WHERE子句:指定查詢條件
GROUPBY子句:對(duì)查詢結(jié)果按指定列的值分組,該屬性列值相等的元組為一個(gè)組。通常會(huì)在每組中作用集函數(shù)。HAVING短語:篩選出只有滿足指定條件的組ORDERBY子句:對(duì)查詢結(jié)果表按指定列值的升序或降序排序.
數(shù)據(jù)查詢是數(shù)據(jù)庫應(yīng)用的核心功能基本結(jié)構(gòu)
SelectA1,A2,...,An
Fromr1,r2,...,rm
WhereP
πA1,A2,...,An(p(r1×r1×...×rm))數(shù)據(jù)查詢SelectWhereFrom.SQL具有包的特性Select子句的缺省情況是保留重復(fù)元組(ALL),可用
Distinct去除重復(fù)元組SelectDistinctsdeptFromStudentSelectAllsdeptFromStudent去除重復(fù)元組:費(fèi)時(shí)需要臨時(shí)表的支持 Select子句——重復(fù)元組.Select子句——*與屬性列表星號(hào)*表示所有屬性星號(hào)*:按關(guān)系模式中屬性的順序排列,并具有一定的邏輯數(shù)據(jù)獨(dú)立性顯式列出屬性名:按用戶順序排列Select*FromStudentSelectStudent.*,cno,gradeFromStudent,SCWhereStudent.sno=SC.sno.Select子句——更名為結(jié)果集中的某個(gè)屬性改名使結(jié)果集更具可讀性Selectsnoasstu_no,cnoascourse_no,gradeFromSCSelectsno,sname,2001-sageasbirthdayFromStudent.Where
子句——運(yùn)算符比較:<、<=、>、>=、=、<>、not+~確定范圍:
BetweenAandB、NotBetweenAandB確定集合:IN、NOTIN字符匹配:LIKE,NOTLIKE空值:ISNULL、ISNOTNULL多重條件:AND、OR、NOT.Where子句——Like字符匹配:Like、NotLike通配符%——匹配任意字符串_——匹配任意一個(gè)字符大小寫敏感.Where子句——Like例:列出姓張的學(xué)生的學(xué)號(hào)、姓名。
Selectsno,sname FromStudent WheresnameLIKE‘張%’.Where子句——Like例:列出張姓且單名的學(xué)生的學(xué)號(hào)、姓名。
Selectsno,sname FromStudent WheresnameLIKE‘張__’.Where子句——轉(zhuǎn)義符escape
例:列出課程名稱中帶有‘_’的課號(hào)及課名。
Selectcno,cname FromCourse WherecnameLIKE‘%\_%’escape‘\’.From子句From子句對(duì)應(yīng)與關(guān)系代數(shù)中的笛卡兒積(×)列出將被掃描的關(guān)系(表)例:列出所有學(xué)生的學(xué)號(hào)、姓名、課號(hào)、成績。SelectSudent.sno,sname,SC.cno,gradeFromStudent,SCWhereStudent.sno=SC.sno.From子句——元組變量為From子句中的關(guān)系定義元組變量方便關(guān)系名的引用在同一關(guān)系的笛卡兒積中進(jìn)行辨別例:列出與95001同歲的同學(xué)的學(xué)號(hào),姓名,年齡Select T.sno,T.sname,T.sageFrom StudentasT,StudentasSWhere S.sno=‘95001’AND T.sage=S.sage
.示例數(shù)據(jù)庫學(xué)生-課程數(shù)據(jù)庫學(xué)生表:Student(Sno,Sname,Ssex,Sage,Sdept)課程表:Course(Cno,Cname,Cpno,Ccredit)
學(xué)生選課表:SC(Sno,Cno,Grade).3.3查詢3.3.1概述3.3.2單表查詢3.3.3連接查詢3.3.4嵌套查詢3.3.5集合查詢3.3.6小結(jié).3.3.2單表查詢
查詢僅涉及一個(gè)表,是一種最簡單的查詢操作一、選擇表中的若干列二、選擇表中的若干元組三、對(duì)查詢結(jié)果排序四、使用集函數(shù)五、對(duì)查詢結(jié)果分組
.查詢指定列[例1]查詢?nèi)w學(xué)生的學(xué)號(hào)與姓名。SELECTSno,SnameFROMStudent;
[例2]查詢?nèi)w學(xué)生的姓名、學(xué)號(hào)、所在系。SELECTSname,Sno,SdeptFROMStudent;.查詢?nèi)苛衃例3]查詢?nèi)w學(xué)生的詳細(xì)記錄。SELECTSno,Sname,Ssex,Sage,SdeptFROMStudent;或SELECT*FROMStudent;.3.查詢經(jīng)過計(jì)算的值SELECT子句的<目標(biāo)列表達(dá)式>為表達(dá)式算術(shù)表達(dá)式字符串常量函數(shù)列別名等.3.查詢經(jīng)過計(jì)算的值[例4]查全體學(xué)生的姓名及其出生年份。SELECTSname,2000-SageFROMStudent;
輸出結(jié)果:
Sname2000-Sage----------------------
李勇1976
劉晨1977
王名1978
張立1978.3.查詢經(jīng)過計(jì)算的值[例5]查詢?nèi)w學(xué)生的姓名、出生年份和所有系,要求用小寫字母表示所有系名。SELECTSname,'YearofBirth:',2000-Sage,
ISLOWER(Sdept)FROMStudent;
.例題(續(xù))輸出結(jié)果:
Sname'YearofBirth:'2000-SageISLOWER(Sdept)----------------------------------------------
李勇YearofBirth:1976cs
劉晨YearofBirth:1977is
王名YearofBirth:1978ma
張立YearofBirth:1977is.[例5.1]使用列別名改變查詢結(jié)果的列標(biāo)題SELECTSnameNAME,'YearofBirth:’
BIRTH,
2000-SageBIRTHDAY,ISLOWER(Sdept)DEPARTMENTFROM
Student;輸出結(jié)果:
NAMEBIRTHBIRTHDAYDEPARTMENT------------------------------------------------------
李勇YearofBirth:1976cs
劉晨YearofBirth:1977is
王名YearofBirth:1978ma
張立YearofBirth:1977is.二、選擇表中的若干元組消除取值重復(fù)的行查詢滿足條件的元組.1.消除取值重復(fù)的行在SELECT子句中使用DISTINCT短語假設(shè)SC表中有下列數(shù)據(jù)
SnoCnoGrade---------------------9500119295001285950013889500229095002380.ALL與
DISTINCT
[例6]查詢選修了課程的學(xué)生學(xué)號(hào)。(1)SELECTSnoFROMSC;
或(默認(rèn)ALL)SELECTALLSnoFROMSC;
結(jié)果:Sno-------9500195001950019500295002.例題(續(xù))(2)SELECTDISTINCTSnoFROMSC;
結(jié)果:
Sno-------9500195002.例題(續(xù))注意DISTINCT短語的作用范圍是所有目標(biāo)列例:查詢選修課程的各種成績錯(cuò)誤的寫法SELECTDISTINCTCno,DISTINCTGradeFROMSC;正確的寫法
SELECTDISTINCTCno,GradeFROMSC;
.2.查詢滿足條件的元組WHERE子句常用的查詢條件.(1)比較大小在WHERE子句的<比較條件>中使用比較運(yùn)算符=,>,<,>=,<=,!=或<>,!>,!<,邏輯運(yùn)算符NOT+比較運(yùn)算符[例8]查詢所有年齡在20歲以下的學(xué)生姓名及其年齡。
SELECTSname,Sage
FROMStudentWHERESage<20;或SELECTSname,SageFROMStudentWHERENOTSage>=20;
.(2)確定范圍使用謂詞BETWEEN…AND…NOTBETWEEN…AND…[例10]查詢年齡在20~23歲(包括20歲和23歲)之間的學(xué)生的姓名、系別和年齡。
SELECTSname,Sdept,SageFROMStudentWHERESageBETWEEN20AND23;
.例題(續(xù))[例11]查詢年齡不在20~23歲之間的學(xué)生姓名、系別和年齡。SELECTSname,Sdept,SageFROMStudentWHERESageNOTBETWEEN20AND23;
.(3)確定集合使用謂詞IN<值表>,NOTIN<值表>
<值表>:用逗號(hào)分隔的一組取值[例12]查詢信息系(IS)、數(shù)學(xué)系(MA)和計(jì)算機(jī)科學(xué)系(CS)學(xué)生的姓名和性別。SELECTSname,SsexFROMStudentWHERESdeptIN('IS','MA','CS');.(3)確定集合[例13]查詢既不是信息系、數(shù)學(xué)系,也不是計(jì)算機(jī)科學(xué)系的學(xué)生的姓名和性別。SELECTSname,SsexFROMStudent WHERESdeptNOTIN('IS','MA','CS');.(4)字符串匹配[NOT]LIKE‘<匹配串>’[ESCAPE‘<換碼字符>’]<匹配串>:指定匹配模板匹配模板:固定字符串或含通配符的字符串當(dāng)匹配模板為固定字符串時(shí),可以用=運(yùn)算符取代LIKE謂詞用!=或<>運(yùn)算符取代NOTLIKE謂詞.通配符%(百分號(hào))代表任意長度(長度可以為0)的字符串例:a%b表示以a開頭,以b結(jié)尾的任意長度的字符串。如acb,addgb,ab等都滿足該匹配串_(下橫線)代表任意單個(gè)字符例:a_b表示以a開頭,以b結(jié)尾的長度為3的任意字符串。如acb,afb等都滿足該匹配串.ESCAPE短語:當(dāng)用戶要查詢的字符串本身就含有%或_時(shí),要使用ESCAPE'<換碼字符>'短語對(duì)通配符進(jìn)行轉(zhuǎn)義。.例題1)匹配模板為固定字符串[例14]查詢學(xué)號(hào)為95001的學(xué)生的詳細(xì)情況。
SELECT*FROMStudentWHERESnoLIKE'95001';等價(jià)于:
SELECT*FROMStudentWHERESno='95001';.例題(續(xù))2)匹配模板為含通配符的字符串[例15]查詢所有姓劉學(xué)生的姓名、學(xué)號(hào)和性別。
SELECTSname,Sno,SsexFROMStudentWHERESnameLIKE‘劉%’;.例題(續(xù))匹配模板為含通配符的字符串(續(xù))[例16]查詢姓"歐陽"且全名為三個(gè)漢字的學(xué)生的姓名。
SELECTSnameFROMStudentWHERESnameLIKE'歐陽__';.例題(續(xù))匹配模板為含通配符的字符串(續(xù))[例17]查詢名字中第2個(gè)字為"陽"字的學(xué)生的姓名和學(xué)號(hào)。
SELECTSname,SnoFROMStudentWHERESnameLIKE'__陽%';.例題(續(xù))匹配模板為含通配符的字符串(續(xù))[例18]查詢所有不姓劉的學(xué)生姓名。
SELECTSname,Sno,SsexFROMStudentWHERESnameNOTLIKE'劉%';.例題(續(xù))3)使用換碼字符將通配符轉(zhuǎn)義為普通字符
[例19]查詢DB_Design課程的課程號(hào)和學(xué)分。
SELECTCno,CcreditFROMCourseWHERECnameLIKE'DB\_Design'
ESCAPE'\'.例題(續(xù))使用換碼字符將通配符轉(zhuǎn)義為普通字符(續(xù))[例20]查詢以"DB_"開頭,且倒數(shù)第3個(gè)字符為i的課程的詳細(xì)情況。
SELECT*FROMCourseWHERECnameLIKE'DB\_%i__'ESCAPE'\';.(5)涉及空值的查詢
使用謂詞ISNULL或ISNOTNULL
“ISNULL”
不能用“=NULL”
代替[例21]某些學(xué)生選修課程后沒有參加考試,所以有選課記錄,但沒有考試成績。查詢?nèi)鄙俪煽兊膶W(xué)生的學(xué)號(hào)和相應(yīng)的課程號(hào)。
SELECTSno,CnoFROMSCWHEREGradeISNULL;.例題(續(xù))[例22]查所有有成績的學(xué)生學(xué)號(hào)和課程號(hào)。
SELECTSno,CnoFROMSCWHEREGradeISNOTNULL;.(6)多重條件查詢用邏輯運(yùn)算符AND和OR來聯(lián)結(jié)多個(gè)查詢條件
AND的優(yōu)先級(jí)高于OR
可以用括號(hào)改變優(yōu)先級(jí)可用來實(shí)現(xiàn)多種其他謂詞
[NOT]IN[NOT]BETWEEN…AND….例題[例23]查詢計(jì)算機(jī)系年齡在20歲以下的學(xué)生姓名。
SELECTSnameFROMStudentWHERESdept='CS'ANDSage<20;.改寫[例12][例12]查詢信息系(IS)、數(shù)學(xué)系(MA)和計(jì)算機(jī)科學(xué)系(CS)學(xué)生的姓名和性別。SELECTSname,SsexFROMStudentWHERESdeptIN('IS','MA','CS')可改寫為:SELECTSname,SsexFROMStudentWHERESdept='IS'ORSdept='MA'ORSdept='CS';.改寫[例10][例10]查詢年齡在20~23歲(包括20歲和23歲)之間的學(xué)生的姓名、系別和年齡。
SELECTSname,Sdept,SageFROMStudentWHERESageBETWEEN20AND23;可改寫為:
SELECTSname,Sdept,SageFROMStudentWHERESage>=20ANDSage<=23;.三、對(duì)查詢結(jié)果排序
使用ORDERBY子句可以按一個(gè)或多個(gè)屬性列排序升序:ASC;降序:DESC;缺省值為升序當(dāng)排序列含空值時(shí)ASC:排序列為空值的元組最后顯示DESC:排序列為空值的元組最先顯示.對(duì)查詢結(jié)果排序(續(xù))[例24]查詢選修了3號(hào)課程的學(xué)生的學(xué)號(hào)及其成績,查詢結(jié)果按分?jǐn)?shù)降序排列。
SELECTSno,GradeFROMSCWHERECno='3'ORDERBYGradeDESC;.查詢結(jié)果
SnoGrade--------------9501095024950079295003829501082950097595014619500255.對(duì)查詢結(jié)果排序(續(xù))[例25]查詢?nèi)w學(xué)生情況,查詢結(jié)果按所在系的系號(hào)升序排列,同一系中的學(xué)生按年齡降序排列。
SELECT*FROMStudentORD
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 環(huán)境藝術(shù)設(shè)計(jì)與室內(nèi)設(shè)計(jì)的審美互動(dòng)
- 生產(chǎn)工藝流程中的質(zhì)量控制與安全管理
- 現(xiàn)代服務(wù)業(yè)在商業(yè)地產(chǎn)中的價(jià)值挖掘
- 物流技術(shù)與管理教育的新模式
- Unit 4 Plants around us Lesson 6(說課稿)-2024-2025學(xué)年人教PEP版(2024)英語三年級(jí)上冊(cè)
- 7《可愛的動(dòng)物》(說課稿)2023-2024學(xué)年統(tǒng)編版道德與法治一年級(jí)下冊(cè)
- Unit 2 Whats your name (Story time)(說課稿)-2024-2025學(xué)年譯林版(三起)(2024)英語三年級(jí)上冊(cè)001
- Unit 4 A glimpse of the future 說課稿-2023-2024學(xué)年高二下學(xué)期英語外研版(2019)選擇性必修第三冊(cè)001
- 14文言文二則《兩小兒辯日》說課稿-2023-2024學(xué)年統(tǒng)編版語文六年級(jí)下冊(cè)
- 《12干點(diǎn)家務(wù)活》(說課稿)-部編版道德與法治一年級(jí)下冊(cè)001
- 2024化工園區(qū)危險(xiǎn)品運(yùn)輸車輛停車場(chǎng)建設(shè)規(guī)范
- 工地試驗(yàn)室質(zhì)量手冊(cè)
- 信息資源管理(馬費(fèi)成-第三版)復(fù)習(xí)重點(diǎn)
- 郵輪外部市場(chǎng)營銷類型
- GB/T 42460-2023信息安全技術(shù)個(gè)人信息去標(biāo)識(shí)化效果評(píng)估指南
- 05G359-3 懸掛運(yùn)輸設(shè)備軌道(適用于一般混凝土梁)
- 工程與倫理課程
- CKDMBD慢性腎臟病礦物質(zhì)及骨代謝異常
- 潮汕英歌舞課件
- 田字格模版內(nèi)容
- 第一章 公共政策分析的基本理論與框架
評(píng)論
0/150
提交評(píng)論