关系数据库标准语言SQL重点

上传人:我*** 文档编号:136934315 上传时间:2020-07-03 格式:PPT 页数:135 大小:552.50KB
返回 下载 相关 举报
关系数据库标准语言SQL重点_第1页
第1页 / 共135页
关系数据库标准语言SQL重点_第2页
第2页 / 共135页
关系数据库标准语言SQL重点_第3页
第3页 / 共135页
关系数据库标准语言SQL重点_第4页
第4页 / 共135页
关系数据库标准语言SQL重点_第5页
第5页 / 共135页
点击查看更多>>
资源描述

《关系数据库标准语言SQL重点》由会员分享,可在线阅读,更多相关《关系数据库标准语言SQL重点(135页珍藏版)》请在金锄头文库上搜索。

1、关系数据库标准语言SQL,2020/7/3,第2页,要点,SQL语言简介SQL语言及其使用方式独立式SQL嵌入式SQL,2020/7/3,第3页,3.1SQL概述,StructuredQueryLanguage,1974年提出关系数据库的国际标准语言:大多数数据库均用SQL作为共同的数据存取语言和标准接口,实现不同数据库系统之间的互操作目前仍被不断扩充介于关系代数和关系演算之间,三者可相互转换,2020/7/3,第4页,SQL的特点,综合统一:集DDL、DML、DCL功能于一体,可独立完成数据库生命周期中的全部活动,语言风格统一高度非过程化:用户只需提出“做什么”,而无需指明“怎么做”面向集合

2、的操作方式:操作对象、查询结果、更新数据均可以是元组的集合提供两种使用方式:自含式、嵌入式语言简捷,易学易用,2020/7/3,第5页,SQL语言的基本概念,SQL支持关系数据库的三级模式结构存储文件:组成关系数据库的内模式,对用户透明基表(BaseTable):组成关系数据库的模式,一个关系对应一个基表,一或多个基表对应一个存储文件视图(View):组成关系数据库的外模式,从一个或多个基表中导出,不独立存储在数据库中,2020/7/3,第6页,3.2数据定义,SQL的数据定义语言(DDL),2020/7/3,第7页,定义基表,数据类型:不同的数据库系统有自己的数据类型规定,但一般都包括INT

3、EGER,FLOAT,CHAR(n),VARCHAR(n)等完整性约束条件列级完整性约束条件:涉及表的某一列如对数据类型的约束,对数据格式的约束,对取值范围或集合的约束,对空值NULL(空值,不知道或不能用的值)的约束,对取值的唯一性UNIQUE约束,对列的排序说明等表级完整性约束条件:涉及表的一个或多个列如订货关系中规定发货量不得超过订货量,CREATETABLE(列级完整性约束,列级完整性约束,);,2020/7/3,第8页,SQL支持的数据类型,SMALLINT半字长的整数INT全字长的整数FLOAT浮点数CHAR(n)长度为n的定长字符串VARCHAR(n)最大长度为n的变长字符串DE

4、C(p,q)十进制数,共p位,小数点后有q位DATE日期型,格式YYYY-MM-DDTIME时间型,格式为HH.MM.SSTIMESTAMP日-时戳(日期加时间),2020/7/3,第9页,完整性约束,CREATETABLE的完整性约束NOTNULL属性值禁止为空UNIQUE取值唯一PRIMARYKEY(A1,.,An)主码-若干属性列CHECK(P)P为条件表达式,2020/7/3,第10页,例:建立学生管理的相关基表,CREATETABLEStudent(SnoCHAR(5)NOTNULLUNIQUE,SnameCHAR(20)UNIQUE,SsexCHAR(1),SageINTEGER,

5、SdeptCHAR(15);,CREATETABLESC(SnoCHAR(5)NOTNULLUNIQUE,CnoCHAR(8)NOTNULLUNIQUE,GradeINTEGER);,CREATETABLECourse(CnoCHAR(8)NOTNULLUNIQUE,CnameCHAR(20),CpnoINTEGER,CcreditINTEGER);,2020/7/3,第11页,例:建立图书管理的相关基表,CREATETABLEBorrows(CardNoINTEGERNOTNULLUNIQUE,NameCHAR(10),DeptCHAR(20);,CREATETABLEBooks(BookN

6、oINTEGERNOTNULLUNIQUE,SortNoCHAR(10),TitleCHAR(30),AuthorCHAR(12),PriceFLOAT,LoanNoINTEGER);,CREATETABLELoans(CardNoINTEGERNOTNULLUNIQUE,BookNoINTEGERNOTNULLUNIQUE,TitleCHAR(30),DateCHAR(10);,2020/7/3,第12页,例:完整性约束,CREATETABLEbranch(branch-namechar(15)notnull,branch-citychar(30),assetsinteger);CREATE

7、TABLEbranch(branch-namechar(15),branch-citychar(30),assetsInteger,PRIMARYKEY(branch-name),CHECK(assets=0);,2020/7/3,第13页,修改基表,ALTERTABLEADD列级完整性约束DROPMODIFY;,例,ALTERTABLELoansMODIFYCardnoSMALLINT;,ALTERTABLELoansDROPUNIQUE(BookNo);,ALTERTABLELoansADDXXINT;,2020/7/3,第14页,删除基本表,DROPTABLE;,例,DROPTABLEL

8、oans;,2020/7/3,第15页,建立索引,加快检索速度UNIQUE表示索引的每一个索引值只对应唯一的数据记录CLUSTER:建聚簇索引,即索引项顺序与表中记录的物理顺序一致,一个基表只能建一个聚簇索引ASC(升序,缺省)、DESC(降序)索引建立后由系统使用和维护,不需用户干预,CREATEUNIQUECLUSTERINDEXON(,);,CREATEUNIQUEINDEXIBONBorrows(CardNo);,例,CREATEUNIQUEINDEXISONStudent(Sno);,CREATEUNIQUEINDEXSCnoONSC(SnoASC,CnoDESC);,2020/7/

9、3,第16页,删除索引,DROPINDEX;,例,DROPINDEXIB;,DROPINDEXSCno;,提示:在Access中用DROPINDEXSCnoONSC;,2020/7/3,第17页,3.3查询,数据库查询是数据库的核心操作,SQL提供了基于集合和关系的查询操作,具有丰富的功能和灵活的使用方式一个SQL查询的结果是一个关系查询可分为单表查询:查询只涉及一个表连接查询:查询同时涉及两个以上的表嵌套查询:一个查询块嵌套在另一个查询块中视图查询:在视图基础上的查询,2020/7/3,第18页,SQL查询语句的格式,查询语句的典型格式这个查询与下面的关系代数表达式等价:A1,A2,.,An

10、(P(r1xr2x.xrm),SELECTALL|DISTINCT,FROM,WHEREGROUPBYHAVINGORDERBYASC|DESC;,selectA1,A2,.,Anfromr1,r2,.,rmwhereP,在做每个SQL查询时都试着写出其关系代数表达式,2020/7/3,第19页,SELECT*FROMStudent;,3.3.1单表查询,一、选择表中若干列查询指定列:在中指定预查属性查询全部列:在中使用*查询经计算的值:在中可使用常量、表达式、函数等,SELECTSname,YearofBirthis,2002-SageFROMStudent;,SELECTSno,Sname

11、FROMStudent;,2020/7/3,第20页,查询实例,SELECTSname,YearofBirthis,2002-Sage,ISLOWER(Sdept)FROMStudent;,结果为:SnameyearofBirth:2002-SageISLOWER(Sdept)李勇YearofBirht:1982cs刘晨YearofBirht:1983is王敏YearofBirht:1984ma张立YearofBirht:1983is,2020/7/3,第21页,定义别名,用户可以通过指定别名来改变查询结果的列标题,这对于含算术表达式、常量、函数名的目标列表达式尤为有用。例如对于上例,可以定义

12、如下列别名:,SELECTSnameNAME,YearofBirth:BIRTH,1996-SageYEAR,ISLOWER(Sdept)DEPARTMENTFROMStudent;,结果为:NAMEBIRTHYEARDEPARTMENT-李勇YearofBirth:1982cs刘晨YearofBirth:1983if王敏YearofBirth:1984ma张立YearofBirth:1983if,2020/7/3,第22页,ACCESS数据库中SQL例,别名表示:字段as别名注:ISLOWER()函数在access中无法识别,SELECTSnameASNAME,YearofBirth:ASB

13、IRTH,1996-SageASYEAR,SdeptASDEPARTMENTFROMStudent;,2020/7/3,第23页,二、选择表中若干元组,取消取值重复的列:指定DISTINCT短语查询满足条件的元组:在WHERE子句中指定条件对查询结果排序:使用ORDERBY使用集函数:COUNT,SUM,AVG,MAX,MIN对查询结果分组:使用GROUPBY,HAVING,2020/7/3,第24页,DISTINCT短语,SQL允许重复的元组/行存在,如果需要去掉重复的元组/行,必须指定DISTINCT短语,缺省为ALL例:查询选修了课程的学生学号结果为:结果为:SnoSno95001950

14、019500195002950019500295002,SELECTDISTINCTSnoFROMSC;,SELECTSnoFROMSC;或SELECTALLSnoFROMSC;,2020/7/3,第25页,WHERE子句,查询满足条件的元组:在WHERE子句中指定条件WHERE子句常用的查询条件:,2020/7/3,第26页,Where子句比较大小,SELECTSnameFROMStudentWHERESdept=CS;,SELECTDISTINCTSnoFROMSCWHEREGrade60;,例查询计算机系全体学生的名单,例查询考试成绩有不及格的学生的学号,例查询所有年龄在20岁以下的学生

15、姓名及其年龄,SELECTSname,SageSELECTSname,SageFROMStudentFROMStudentWHERESage=20;,2020/7/3,第27页,Where子句确定范围,SELECTSname,Sdept,SageFROMStudentWHERESageBETWEEN20AND40;,例查询年龄在2040岁之间的学生姓名、系别和年龄,SELECTSname,Sdept,SageFROMStudentWHERESageNOTBETWEEN20AND23;,例查询年龄不在2023岁之间的学生姓名、系别和年龄,2020/7/3,第28页,Where子句确定集合,SEL

16、ECTSname,SsexFROMStudentWHERESdeptIN(IS,MA,CS);,例查询信息系(IS)、数学系(MA)和计算机系(CS)学生的姓名和性别,SELECTSname,SsexFROMStudentWHERESdeptNOTIN(IS,MA,CS),例查询除信息系(IS)、数学系(MA)和计算机系(CS)以外其它系学生的姓名和性别,2020/7/3,第29页,Where子句字符串匹配,谓词LIKE可以用来进行字符串的匹配格式:NOTLIKEESCAPE匹配串中%代表任意长度的字符串,如a%b:acb,addgb,ab匹配串中_代表任意单个字符,如a_b:acbafb,例查询学号为95001的学生的详细情况:,相当于,提示:Access中的匹配符分别使用*和?。,2020/7/3,第30页,通配符例子,SELECT*FROMStudentWHERESnameLIKE刘%;,SELECT*FROMStudentWHERESnameLIKE_明_;,例查询所有姓刘的学生的详细信息,例查询所有全名为三个字且中间汉字为“

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号