河北经贸大学信息技术学院_第1页
河北经贸大学信息技术学院_第2页
河北经贸大学信息技术学院_第3页
河北经贸大学信息技术学院_第4页
河北经贸大学信息技术学院_第5页
已阅读5页,还剩88页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

河北经贸大学信息技术学院数据库系统概论

AnIntroductionto

DatabaseSystems1河北经贸贸大学信信息技术术学院数据库系系统概论论AnIntroductiontoDatabaseSystem第三章关关系数数据库标标准语言言SQL第三章关系数据据库标准准语言SQL3.1SQL概述3.2学学生--课程数数据库3.3数数据定定义3.4数数据查查询3.5数数据更更新3.6视视图3.7小小结3.1SQL概述SQL((StructuredQueryLanguage)结构化查查询语言言,是关关系数据据库的标标准语言言SQL是是一个通通用的、、功能极极强的关关系数据据库语言言SQL概概述(续续)3.1..1SQL的产产生与发发展3.1..2SQL的特点点3.1..3SQL的基本本概念SQL标标准的进进展过程程标准大大致页页数发发布布日期SQL//861986..10SQL//89((FIPS127--1)120页页1989年SQL//92622页1992年SQL991700页1999年年SQL20032003年3.1SQL概述3.1..1SQL的产产生与发发展3.1..2SQL的特点点3.1..3SQL的基本本概念3.1..2SQL的特点点1.综合合统一集数据定定义语言言(DDL),,数据操操纵语言言(DML),,数据控控制语言言(DCL)功功能于一一体。可以独立立完成数数据库生生命周期期中的全全部活动动:定义关系系模式,,插入数数据,建建立数据据库;对数据库库中的数数据进行行查询和和更新;;数据库重重构和维维护数据库安安全性、、完整性性控制等等用户数据据库投入入运行后后,可根根据需要要随时逐逐步修改改模式,,不影响响数据的的运行。。数据操作作符统一一2.高度度非过程程化非关系数数据模型型的数据据操纵语语言“面向过程程”,必须须制定存存取路径径SQL只只要提出出“做什什么”,,无须了了解存取取路径。。存取路径径的选择择以及SQL的的操作过过程由系系统自动动完成。。3.1..2SQL的特点点3.面向向集合的的操作方方式非关系数数据模型型采用面面向记录录的操作作方式,,操作对对象是一一条记录录SQL采采用集合合操作方方式操作对象象、查找找结果可可以是元元组的集集合一次插入入、删除除、更新新操作的的对象可可以是元元组的集集合3.1..2SQL的特点点4.以同同一种语语法结构构提供多多种使用用方式SQL是是独立的的语言能够独立立地用于于联机交交互的使使用方式式SQL又又是嵌入入式语言言SQL能能够嵌入入到高级级语言((例如C,C+++,Java)程序序中,供供程序员员设计程程序时使使用3.1..2SQL的特点点5.语言言简洁,,易学易易用SQL功功能极强强,完成成核心功功能只用用了9个个动词。。3.1..2SQL的特点点3.1SQL概述3.1..1SQL的产产生与发发展3.1..2SQL的特点点3.1..3SQL的基本本概念SQL的的基本概概念(续续)SQL视图2视图1基本表2基本表1基本表3基本表4存储文件2存储文件1外模式模式内模式SQL支支持关系系数据库库三级模模式结构构SQL的的基本概概念(续续)基本表本身独立立存在的的表SQL中中一个关关系就对对应一个个基本表表一个(或或多个))基本表表对应一一个存储储文件一个表可可以带若若干索引引存储文件件逻辑结构构组成了了关系数数据库的的内模式式物理结构构是任意意的,对对用户透透明视图从一个或或几个基基本表导导出的表表数据库中中只存放放视图的的定义而而不存放放视图对对应的数数据视图是一一个虚表表用户可以以在视图图上再定定义视图图第三章关系数据据库标准准语言SQL3.1SQL概述3.2学学生--课程数数据库3.3数数据定定义3.4数数据查查询3.5数数据更更新3.6视视图3.7小小结3.2学学生--课程数数据库库学生-课课程模式式S--T::学生表::Student(Sno,Sname,,Ssex,Sage,Sdept)课程表::Course(Cno,Cname,,Cpno,Ccredit)学生选课课表:SC(Sno,,Cno,Grade))Student表学号Sno姓名Sname性别Ssex年龄Sage所在系Sdept200215121200215122200215123200515125李勇刘晨王敏张立男女女男20191819CSCSMAISCourse表表课程号Cno课程名Cname先行课Cpno学分Ccredit1234567数据库数学信息系统操作系统数据结构数据处理PASCAL语言516764243424SC表学号Sno课程号Cno成绩Grade200215121200215121200215121200215122200215122123239285889080第三章关系数据据库标准准语言SQL3.1SQL概述3.2学学生--课程数数据库3.3数数据定定义3.4数数据查查询3.5数数据更更新3.6视视图3.7小小结3.3数数据据定义SQL的数据定定义功能能:模式定义义、表定定义、视视图和索索引的定定义3.3数数据定定义3.3..1模模式的定定义与删删除3.3..2基基本表的的定义、、删除与与修改3.3..3索索引的建建立与删删除定义模式式(续))[例1]]定义一一个学生生-课程程模式S-TCREATESCHEMA“S-T””AUTHORIZATIONWANG;为用户WANG定义了了一个模模式S--T[例2]]CREATESCHEMAAUTHORIZATIONWANG;;<模式名名>隐含含为用户户名WANG如果没有有指定<<模式名名>,那那么<模模式名>>隐含为为<用户户名>定义模式式(续))定义模式式实际上上定义了了一个命名空间间在这个空空间中可可以定义义该模式式包含的的数据库库对象,,例如基基本表、、视图、、索引等等。在CREATESCHEMA中可可以接受受CREATETABLE,CREATEVIEW和GRANT子句。。CREATESCHEMA<模模式名>>AUTHORIZATION<<用户户名>[[<表定定义子句句>|<<视图定定义子句句>|<<授权定定义子句句>]定义模式式(续))[例3]]CREATESCHEMATESTAUTHORIZATIONZHANGCREATETABLETAB1(COL1SMALLINT,COL2INT,COL3CHAR((20)),COL4NUMERIC((10,,3),,COL5DECIMAL((5,2));为用户ZHANG创建建了一个个模式TEST,并在在其中定定义了一一个表TAB1。二、删除除模式DROPSCHEMA<<模式名名><<CASCADE|RESTRICT>CASCADE(级联联)删除模式式的同时时把该模模式中所所有的数数据库对对象全部部删除RESTRICT(限限制)如果该模模式中定定义了下下属的数数据库对对象(如如表、视视图等)),则拒拒绝该删删除语句句的执行行。当该模式式中没有有任何下下属的对对象时才才能执执行。删除模式式(续))[例4]]DROPSCHEMAZHANGCASCADE;删除模式式ZHANG同时该模模式中定定义的表表TAB1也被被删除3.3数数据定定义3.3..1模模式的定定义与删删除3.3..2基基本表的的定义、、删除与与修改3.3..3索索引的建建立与删删除3.3..2基基本表的的定义、、删除与与修改一、定义义基本表表CREATETABLE<<表名名>(<列名名><<数据类类型>[[<列列级完整整性约束束条件>>][,<列列名><<数据据类型>>[<<列级完完整性约约束条件件>]]]……[,<表表级完整整性约束束条件>>]));<列级完完整性约约束条件件>:涉及相相应属性性列的完完整性约约束条件件<表级完整整性约束束条件>>:涉及一一个或多多个属性性列的完完整性约约束条件件定义基本本表(续续)常用完整整性约束束主码约束束:PRIMARYKEY唯一性约约束:UNIQUE非空值约约束:NOTNULL参照完整整性约束束:FOREIGNKEY……REFERENCES…...PRIMARYKEY与UNIQUE的区区别?学生表Student[例5]]建建立“学学生”表表Student,学学号是主主码,姓姓名取值值唯一。。CREATETABLEStudent(SnoCHAR(9)PRIMARYKEY,/**列级级完整性性约束条条件*//SnameCHAR(20)UNIQUE,//*Sname取唯唯一值**/SsexCHAR((2),,SageSMALLINT,,SdeptCHAR(20));主码课程表Course[例6]建立一个个“课程程”表CourseCREATETABLECourse(CnoCHAR(4))PRIMARYKEY,CnameCHAR(40),,CpnoCHAR(4)),CcreditSMALLINT,FOREIGNKEY((Cpno)REFERENCESCourse(Cno));先修课Cpno是外码被参照表表是Course被参照列列是Cno学生选课课表SC[例7]建立一个个“学生生选课””表SCCREATETABLESC(SnoCHAR(9)),CnoCHAR((4),,GradeSMALLINT,PRIMARYKEY((Sno,Cno),,/*主主码由两两个属性性构成,,必须作作为表级级完整性性进行定定义*//FOREIGNKEY((Sno)REFERENCESStudent((Sno),/*表表级完整整性约束束条件,,Sno是外码码,被参参照表是是Student**/FOREIGNKEY((Cno)REFERENCESCourse(Cno))/*表表级完整整性约束束条件,,Cno是外外码,被被参照表表是Course*//);二、数据据类型SQL中中域的概概念用数据类型型来实现定义表的的属性时时需要要指明其其数据类类型及长长度选用哪种种数据类类型取值范围围要做哪些些运算二、数据据类型数据类型含义CHAR(n)长度为n的定长字符串VARCHAR(n)最大长度为n的变长字符串INT长整数(也可以写作INTEGER)SMALLINT短整数NUMERIC(p,d)定点数,由p位数字(不包括符号、小数点)组成,小数后面有d位数字REAL取决于机器精度的浮点数DoublePrecision取决于机器精度的双精度浮点数FLOAT(n)浮点数,精度至少为n位数字DATE日期,包含年、月、日,格式为YYYY-MM-DDTIME时间,包含一日的时、分、秒,格式为HH:MM:SS三、模式式与表每一个基基本表都都属于某某一个模模式一个模式式包含多多个基本本表定义基本本表所属属模式方法一::在表名名中明显显地给出出模式名名Createtable““S--T”..Student(........));//**模式名名为S-T**/Createtable““S--T”..Cource(........);;Createtable““S--T”..SC((........);方法二::在创建建模式语语句中同同时创建建表方法三::设置所所属的模模式模式与表表(续))创建基本本表(其其他数据据库对象象也一样样)时,,若没有有指定模模式,系系统根据据搜索路径径来确定该该对象所所属的模模式RDBMS会使使用模式式列表中中第一个存存在的模模式作为数据据库对象象的模式式名若搜索路路径中的的模式名名都不存存在,系系统将给给出错误误显示当前前的搜索索路径::SHOWsearch_path;;搜索路径径的当前前默认值值是:$$user,PUBLIC模式与表表(续))DBA用用户可以以设置搜搜索路径径,然后后定义基基本表SETsearch_pathTO““S--T”,,PUBLIC;CreatetableStudent(........));结果建立立了S--T.Student基本表表。RDBMS发现现搜索路路径中第第一个模模式名S-T存存在,就就把该模模式作为为基本表表Student所属属的模式式。四、修改改基本表表ALTERTABLE<<表名>>[ADD<<新列名名><<数据类类型>[[完完整性约约束]]][DROP<<完整整性约束束名>]][ALTERCOLUMN<列列名><<数据据类型>>];;修改基本本表(续续)[例8]]向Student表表增加““入学时时间”列列,其数数据类型型为日期期型。ALTERTABLEStudentADDS_entranceDATE;;不论基本本表中原原来是否否已有数数据,新新增加的的列一律律为空值值。[例9]]将年龄龄的数据据类型由由字符型型(假设设原来的的数据类类型是字字符型))改为整整数。ALTERTABLEStudentALTERCOLUMNSageINT;[例10]增加加课程名名称必须须取唯一一值的约约束条件件。ALTERTABLECourseADDUNIQUE(Cname);;五、删除除基本表表DROPTABLE<表表名>[[RESTRICT||CASCADE]];RESTRICT:删删除表是是有限制制的。欲删除的的基本表表不能被被其他表表的约束束所引用用如果存在在依赖该该表的对对象,则则此表不不能被删删除CASCADE:删除除该表没没有限制制。在删除基基本表的的同时,,相关的的依赖对对象一起起删除删除基本本表(续续)[例11]删删除Student表DROPTABLEStudentCASCADE;基本表定定义被删删除,数数据被删删除表上建立立的索引引、视图图、触发发器等一一般也将将被删除除删除基本本表(续续)[例12]若表上建建有视图图,选择择RESTRICT时时表不能能删除CREATEVIEWIS_StudentASSELECTSno,Sname,SageFROMStudentWHERESdept=''IS'';DROPTABLEStudentRESTRICT;;--ERROR:cannotdroptableStudentbecauseotherobjectsdependonit

删除基本本表(续续)[例12]如果选择择CASCADE时可可以删除除表,视视图也自自动被删删除DROPTABLEStudentCASCADE;--NOTICE:dropcascadestoviewIS_StudentSELECT**FROMIS_Student;;--ERROR:relation"IS__Student""doesnotexist删除基本本表(续续)序号标准及主流数据库的处理方式依赖基本表的对象SQL99KingbaseESORACLE9iMSSQLSERVER2000RCRCC1.索引无规定√√√√√2.视图×√×√√保留√保留√保留3.DEFAULT,PRIMARYKEY,CHECK(只含该表的列)NOTNULL等约束√√√√√√√4.ForeignKey×√×√×√×5.TRIGGER×√×√√√√6.函数或存储过程×√√保留√保留√保留√保留√保留DROPTABLE时,SQL99与3个RDBMS的处理策策略比较较R表示RESTRICT,,C表示CASCADE'×'表示不能能删除基基本表,,'√'表示能删删除基本本表,‘‘保留’’表示删删除基本本表后,,还保留留依赖对对象3.3数数据定定义3.3..1模模式的定定义与删删除3.3..2基基本表的的定义、、删除与与修改3.3..3索索引的建建立与删删除3.3..3索索引的建建立与删删除建立索引引的目的的:加快快查询速速度谁可以建建立索引引DBA或或表表的属主主(即建建立表的的人)DBMS一般会会自动建建立以下下列上的的索引PRIMARYKEYUNIQUE维护索引引DBMS自动完完成使用索引引DBMS自动选选择是否否使用索索引以及及使用哪哪些索引引索引引RDBMS中索索引一般般采用B+树、、HASH索引引来实现现B+树索索引具有有动态平平衡的优优点HASH索引具具有查找找速度快快的特点点采用B++树,还还是HASH索索引则则由具体体的RDBMS来决定定索引是关关系数据据库的内内部实现现技术,,属于内内模式的的范畴CREATEINDEX语语句定义义索引时时,可以以定义索索引是唯唯一索引引、非唯唯一索引引或聚簇簇索引一、建立立索引语句格式式CREATE[UNIQUE][[CLUSTER]INDEX<<索引名名>ON<<表名>>(<列列名>[[<次序序>][[,<列列名>[[<次序序>]]]…));用<表名>>指定要建建索引的的基本表表名字索引可以以建立在在该表的的一列或或多列上上,各列列名之间间用逗号号分隔用<次序>>指定索引引值的排排列次序序,升序序:ASC,降降序:DESC。缺省省值:ASCUNIQUE表明此索索引的每每一个索索引值只只对应唯唯一的数数据记录录CLUSTER表示要建建立的索索引是聚聚簇索引引建立索引引(续))[例13]CREATECLUSTERINDEXStusnameONStudent(Sname);在在Student表的的Sname((姓名))列上建建立一个个聚簇索索引,而而且Student表表中的记记录将按按照Sname值的升升序存放放在最经常常查询的的列上建建立聚簇簇索引以以提高查查询效率率一个基本本表上最最多只能能建立一一个聚簇簇索引经常更新新的列不不宜建立立聚簇索索引聚簇索引引的适用用范围很少对基基表进行行增删操操作很少对其其中的变变长列进进行修改改操作建立索引引(续))[例14]为学学生-课课程数据据库中的的Student,Course,,SC三三个表建建立立索引。。CREATEUNIQUEINDEXStusnoONStudent(Sno));CREATEUNIQUEINDEXCoucnoONCourse(Cno);;CREATEUNIQUEINDEXSCnoONSC(SnoASC,,CnoDESC));Student表按学学号升序序建唯一一索引;;Course表按按课程号号升序建建唯一索索引;SC表表按学号号升序和和课程号号降序建建唯一索索引对于已含含重复值值的属性性列不能能建UNIQUE索引引对某个列列建立UNIQUE索索引后,,插入新新记录时时DBMS会自自动检查查新记录录在该列列上是否否取了重重复值。。这相当当于增加加了一个个UNIQUE约束二、删除除索引DROPINDEX<<索引名名>;删除索引引时,系系统会从从数据字字典中删删去有关关该索引引的描述述。[例15]删删除Student表的Stusname索引引DROPINDEXStusname;第三章关系数据据库标准准语言SQL3.1SQL概述3.2学学生--课程数数据库3.3数数据定定义3.4数数据查查询3.5数数据更更新3.6视视图3.7小小结数据查询询语句格式式SELECT[ALL|DISTINCT]<<目标列列表达式式>[,<目目标列表表达式>>]……FROM<表名或或视图名名>[,,<表表名或视视图名>>]……[WHERE<条件表表达式>>][GROUPBY<列名1>[[HAVING<条件表表达式>>]]][ORDERBY<列名2>[[ASC|DESC]]];

语句格式式SELECT子子句:指定要要显示的的属性列列FROM子句:指定查查询对象象(基本本表或视视图)WHERE子句句:指定查查询条件件GROUPBY子句句:对查询询结果按按指定列列的值分分组,该该属性列列值相等等的元组组为一个个组。通通常会在在每组中中作用集集函数。。HAVING短短语:筛选出出只有满满足指定定条件的的组ORDERBY子句句:对查询询结果表表按指定定列值的的升序或或降序排排序3.4数数据据查询3.4..1单单表查询询3.4..2连连接查询询3.4..3嵌嵌套查询询3.4..4集集合查询询3.4..5Select语语句的一一般形式式

3.4..1单单表查查询查询仅涉涉及一个个表:一、选选择表中中的若干干列二、选选择表中中的若干干元组三、ORDERBY子句句四、聚聚集函数数五、GROUPBY子句句一、选选择表中中的若干干列查询指定定列[例1]]查查询全体体学生的的学号与与姓名。。SELECTSno,SnameFROMStudent;;

[例2]]查查询全体体学生的的姓名、、学号、、所在系系。SELECTSname,,Sno,SdeptFROMStudent;;2.查查询全部部列选出所有有属性列列:在SELECT关键字字后面列列出所有有列名将<目标标列表达达式>指指定为*[例3]]查查询全体体学生的的详细记记录。SELECTSno,Sname,Ssex,Sage,,SdeptFROMStudent;;或SELECT**FROMStudent;3.查查询经过过计算的的值SELECT子子句的<<目标列列表达式式>可以以为:算术表达达式字符串常常量函数列别名[例4]]查查全体学学生的姓姓名及其其出生年年份。SELECTSname,,2004-Sage/*假定定当年的的年份为为2004年**/FROMStudent;;

输出结果果:Sname2004--Sage李勇1984刘晨1985王敏1986张立1985查询经过过计算的的值(续续)查询经过过计算的的值(续续)[例5]]查查询全体体学生的的姓名、、出生年年份和所所有系,,要求用用小写字字母表示示所有系系名SELECTSname,,‘YearofBirth::',,2004-Sage,ISLOWER(Sdept)FROMStudent;;输出结果果:Sname''YearofBirth:'2004--SageISLOWER((Sdept))李勇YearofBirth:1984cs刘晨YearofBirth:1985is王敏YearofBirth:1986ma张立YearofBirth:1985is查询经过过计算的的值(续续)使用列别名改变查询询结果的的列标题题:

SELECTSnameNAME,'YearofBirth::’BIRTH,2000-SageBIRTHDAY,LOWER((Sdept))DEPARTMENTFROMStudent;输出结果果:NAMEBIRTHBIRTHDAYDEPARTMENT--------------------------------------------------------------------------李勇YearofBirth:1984cs刘晨YearofBirth:1985is王敏YearofBirth:1986ma张立YearofBirth:1985is3.4..1单单表查查询查询仅涉涉及一个个表:一、选选择表中中的若干干列二、选选择表中中的若干干元组三、ORDERBY子句句四、聚聚集函数数五、GROUPBY子句句二、选择择表中的的若干元元组1.消消除取值值重复的的行如果没有有指定DISTINCT关键键词,则则缺省为为ALL[例6]]查查询选修修了课程程的学生生学号。。SELECTSnoFROMSC;等价于::SELECTALLSnoFROMSC;;执行上面面的SELECT语句句后,结结果为::Sno200215121200215121200215121200215122200215122消除取值值重复的的行(续续)指定DISTINCT关键词词,去掉掉表中重重复的行行

SELECTDISTINCTSnoFROMSC;执行结果果Sno200215121200215122例题(续续)注意DISTINCT短语语的作用用范围是是所有目目标列例:查询询选修课课程的各各种成绩绩错误的写写法SELECTDISTINCTCno,DISTINCTGradeFROMSC;正确的写写法SELECTDISTINCTCno,GradeFROMSC;2.查询询满足条条件的元元组查询条件谓词比较=,>,<,>=,<=,!=,<>,!>,!<;NOT+上述比较运算符确定范围BETWEENAND,NOTBETWEENAND确定集合IN,NOTIN字符匹配LIKE,NOTLIKE空值ISNULL,ISNOTNULL多重条件(逻辑运算)AND,OR,NOT表3.4常用的查查询条件件(1)比比较大大小[例7]]查查询计算算机科学学系全体体学生的的名单。。SELECTSnameFROMStudentWHERESdept=‘‘CS’’;[例8]]查询询所有年年龄在20岁以以下的学学生姓名名及其年年龄。SELECTSname,,SageFROMStudentWHERESage<20;;[例9]]查询询考试成成绩有不不及格的的学生的的学号。。SELECTDISTINCTSnoFROMSCWHEREGrade<60;(2)确确定范围围谓词:BETWEEN…AND……NOTBETWEEN……AND……[例10]查查询年龄龄在20~23岁(包包括20岁和23岁))之间的的学生的的姓名、系系别和年年龄SELECTSname,,Sdept,,SageFROMStudentWHERESageBETWEEN20AND23;;[例11]查查询年年龄不在在20~~23岁岁之间的的学生姓姓名、系系别和年年龄SELECTSname,,Sdept,,SageFROMStudentWHERESageNOTBETWEEN20AND23;(3)确确定集集合谓词:IN<<值表>>,NOTIN<值值表>[例12]查查询信息息系(IS)、、数学系系(MA)和计计算机科科学系((CS))学生的的姓名和和性别。。SELECTSname,,SsexFROMStudentWHERESdeptIN(('IS',,'MA',''CS'');;[例13]查查询既不不是信息息系、数数学系,,也不是是计算机机科学系系的学生生的姓名名和性别别。SELECTSname,,SsexFROMStudentWHERESdeptNOTIN((''IS'','MA',,'CS'));(4)字符匹配配谓词:[NOT]LIKE‘‘<匹配配串>’’[[ESCAPE‘<<换码码字符>>’]匹配串为为固定字字符串[例14]查查询询学号为为200215121的学生生的详细细情况。。SELECT**FROMStudentWHERESnoLIKE‘200215121';等价于::SELECT**FROMStudentWHERESno==''200215121'';字符匹配配(续))2)匹配串为为含通配配符的字字符串[例15]]查查询所有有姓刘学学生的姓姓名、学学号和性性别。SELECTSname,,Sno,SsexFROMStudentWHERESnameLIKE‘刘刘%’;[例16]查查询姓姓"欧阳阳"且全全名为三三个汉字字的学生生的姓名名。SELECTSnameFROMStudentWHERESnameLIKE'欧欧阳___';字符匹配配(续))[例17]查查询名名字中第第2个字字为"阳阳"字的的学生的的姓名和和学号。。SELECTSname,,SnoFROMStudentWHERESnameLIKE‘___阳%%’;[例18]查查询所所有不姓姓刘的学学生姓名名。SELECTSname,,Sno,SsexFROMStudentWHERESnameNOTLIKE'刘%'';字符匹配配(续))3)使用换码码字符将将通配符符转义为为普通字字符,当当用户要要查询的的字符串串本身就就含有%%或或_时时,要要使用ESCAPE''<换换码字符符>'短短语对对通配符符进行转转义。

[例19]查查询DB_Design课课程的课课程号和和学分。。SELECTCno,CcreditFROMCourseWHERECnameLIKE'DB\_Design'ESCAPE''\‘‘;[例20]查查询以以"DB_"开开头,且且倒数第第3个字字符为i的课课程的详详细情况况。SELECT**FROMCourseWHERECnameLIKE''DB\_%i___''ESCAPE''\\‘;ESCAPE''\''表示示“\\”为为换码字字符(5)涉涉及空空值的查查询谓词:ISNULL或ISNOTNULL“IS””不能能用““=”代代替[例21]某某些学学生选修修课程后后没有参参加考试试,所以以有选课课记录,,但没有有考试成成绩。查查询缺少少成绩的的学生的的学号和和相应的的课程号号。SELECTSno,CnoFROMSCWHEREGradeISNULL[例22]查查所有有有成绩绩的学生生学号和和课程号号。SELECTSno,CnoFROMSCWHEREGradeISNOTNULL;;(6)多多重条条件查询询逻辑运算算符:AND和和OR来联结结多个查查询条件件AND的的优先级级高于OR可以用括括号改变变优先级级可用来实实现多种种其他谓谓词[NOT]IN[NOT]BETWEEN…AND……多重条件件查询((续)[例23]查查询计计算机系系年龄在在20岁岁以下的的学生姓姓名。SELECTSnameFROMStudentWHERESdept=''CS'ANDSage<20;多重条件件查询((续)改写[例例12]][例12]查查询信信息系((IS))、数学学系(MA)和和计算机机科学系系(CS)学生生的姓名名和性别别。SELECTSname,,SsexFROMStudentWHERESdeptIN(('IS',,'MA',''CS'')可改写为为:SELECTSname,,SsexFROMStudentWHERESdept=='IS''ORSdept=''MA'ORSdept=='CS'';3.4..1单单表查查询查询仅涉涉及一个个表:一、选选择表中中的若干干列二、选选择表中中的若干干元组三、ORDERBY子句句四、聚聚集函数数五、GROUPBY子句句三、ORDERBY子句ORDERBY子句句可以按一一个或多多个属性性列排序序升序:ASC;;降序::DESC;缺缺省值为为升序当排序列列含空值值时ASC::排序列列为空值值的元组组最后显显示DESC:排序序列为空空值的元元组最先先显示O

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论