第4章--SQL查询ppt课件_第1页
第4章--SQL查询ppt课件_第2页
第4章--SQL查询ppt课件_第3页
第4章--SQL查询ppt课件_第4页
第4章--SQL查询ppt课件_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

.,了解SQL的基本概念。熟悉Access中SQL视图的作用及切换。掌握SQLSELECT查询语句的格式及应用。了解SQL数据定义语句、数据操纵语句的格式及应用。,第4章SQL查询,.,4.1.1SQL概述按照其实现的功能可以将SQL语句划分为4类。数据查询语言(DataQueryLanguage,DQL)数据定义语言(DataDefinitionLanguage,DDL)数据操纵语言(DataManipulationLanguage,DML)数据控制语言(DataControlLanguage,DCL),4.1SQL在Access中的应用,.,4.1.2SQL视图与SQL查询1SQL视图实际上,在使用查询设计视图创建查询时,Access会自动将操作步骤转化为一条条等价的SQL语句,只要打开查询,并进入该查询的SQL视图就可以看到系统生成的SQL语句。,.,.,2SQL查询SQL查询包括联合查询、传递查询和数据定义查询。创建SQL查询的步骤如下。打开“教学管理”数据库,单击“创建”选项卡,再在“查询”命令组中单击“查询设计”命令按钮,打开查询设计视图窗口,再在“显示表”对话框中单击“关闭”按钮,不添加任何表或查询,进入空白的查询设计视图。在“查询工具/设计”选项卡的“结果”命令组中单击“视图”命令按钮,在下拉菜单中选择“SQL视图”命令,进入SQL视图并输入SQL语句。也可以在“查询工具/设计”选项卡的“查询类型”命令组中选择“联合”、“传递”或“数据定义”命令,即打开相应的特定查询窗口,在窗口中输入合适的SQL语句。将创建的查询存盘并运行查询。,.,4.2SQL数据查询SQL数据查询通过SELECT语句实现。SELECT语句中包含的子句很多,其语法格式为SELECTALL|DISTINCT|TOPn.AS,.ASFROM,WHEREGROUPBY,HAVINGUNIONALLSELECT语句ORDERBYASC|DESC,ASC|DESC以上格式中“”中的内容是必选的,“”中的内容是可选的,“|”表示多个选项中只能选择其中之一。,.,4.2.1基本查询1简单的查询语句简单的SELECT语句只包含SELECT子句和FROM子句,其格式为SELECTALL|DISTINCT|TOPn.AS,.ASFROM,,.,例4-1对“学生”表进行如下操作,写出操作步骤和SQL语句。列出全部学生信息。列出前5个学生的姓名和年龄。操作1的SELECT语句:SELECT*FROM学生操作2的SELECT语句:SELECTTOP5姓名,Year(Date()-Year(出生日期)AS年龄FROM学生例4-2求出所有学生的平均入学成绩。SELECT语句如下。SELECTAvg(入学成绩)AS入学成绩平均分FROM学生,.,2带条件查询WHERE子句用于指定查询条件,其格式为WHERE例4-3写出对“教学管理”数据库进行如下操作的语句。列出入学成绩在580分以上的学生记录。求出湖南学生入学成绩平均值。操作1:SELECT*FROM学生WHERE入学成绩580操作2:SELECTAvg(入学成绩)AS入学成绩平均分FROM学生WHERE籍贯=湖南,.,例4-4写出对“教学管理”数据库进行如下操作的语句。列出江苏籍和贵州籍的学生名单。列出入学成绩在560650分之间的学生名单。列出所有姓张的学生名单。列出所有成绩为“空值”的学生学号和课程编号。,.,操作1:SELECT学号,姓名,籍贯FROM学生WHERE籍贯In(江苏“,贵州)语句中的WHERE子句还有如下等价的形式。WHERE籍贯江苏Or籍贯贵州操作2:SELECT学号,姓名,入学成绩FROM学生WHERE入学成绩Between560And650语句中的WHERE子句还有如下等价的形式。WHERE入学成绩=560And入学成绩=80ORDERBYAvg(成绩)ASC操作4:SELECT学号,Count(课程编号)AS选课门数FROM选课GROUPBY学号HAVINGCount(课程编号)1ORDERBY2DESC,1,.,4.2.2嵌套查询1返回单值的子查询例4-7对“教学管理”数据库,列出选修“宏观经济学”的所有学生的学号。SELECT学号FROM选课WHERE课程编号=(SELECT课程编号FROM课程WHERE课程名称=宏观经济学),.,2返回一组值的子查询(1)Any运算符的用法Any运算符可以找出满足子查询中任意一个值的记录,使用格式为Any()例4-8对“教学管理”数据库,列出选修“800101”课的学生中成绩比选修“800102”课的最低成绩高的学生的学号和成绩。SELECT学号,成绩FROM选课WHERE课程编号=800101And成绩Any(SELECT成绩FROM选课WHERE课程编号=800102),.,(2)All运算符的用法All运算符可以找出满足子查询中所有值的记录,使用格式为All()例4-9对“教学管理”数据库,列出选修“800101”课的学生中成绩比选修“800102”课的最高成绩还要高的学生的学号和成绩。SELECT学号,成绩FROM选课WHERE课程编号=800101And成绩All(SELECT成绩FROM选课WHERE课程编号=800102v),.,(3)In运算符的用法In是属于的意思,等价于“Any”,即等于子查询中任何一个值。例4-10写出对“教学管理”数据库进行如下操作的语句。列出选修“宏观经济学”或“微积分”的所有学生的学号。显示“选课”表的第610号记录。操作1:SELECT学号FROM选课WHERE课程编号In(SELECT课程编号FROM课程WHERE课程名称=宏观经济学Or课程名称=微积分)操作2:SELECTTOP5*FROM选课WHERE学号NotIn(SELECTTOP5学号FROM选课),.,4.2.3多表查询例4-11写出对“教学管理”数据库进行如下操作的语句。输出所有学生的成绩单,要求给出学号、姓名、课程编号、课程名称和成绩。列出少数民族学生的选课情况,要求列出学号、姓名、课程编号、课程名称和成绩。求选修“800101”课的女生的平均年龄。,.,操作1:SELECTa.学号,姓名,b.课程编号,课程名称,成绩FROM学生a,选课b,课程cWHEREa.学号=b.学号Andb.课程编号=c.课程编号操作2:SELECTa.学号,a.姓名,b.课程编号,课程名称,成绩FROM学生a,选课b,课程cWHEREa.学号=b.学号Andb.课程编号=c.课程编号And民族汉族操作3:SELECTAvg(Year(Date()-Year(出生日期)AS平均年龄FROM学生,选课WHERE学生.学号=选课.学号And课程编号=800101And性别=女,.,4.2.4联合查询联合查询实际是将两个或更多个表或查询中的记录纵向合并成为一个查询结果。数据合并(UNION)子句的格式为UNIONALL其中,ALL表示结果全部合并。若没有ALL,则重复的记录将被自动去掉。合并的规则如下。不能合并子查询的结果。两个SELECT语句必须输出同样的列数。两个表各相应列的数据类型必须相同,数字和字符不能合并。仅最后一个SELECT语句中可以用ORDERBY子句,且排序选项必须用数字说明。,.,例4-12对“教学管理”数据库,列出选修“800101”课或“800102”课的所有学生的学号和姓名,要求建立联合查询。SELECT学生.学号,学生.姓名FROM选课,学生WHERE课程编号=800101And选课.学号=学生.学号UNIONSELECT学生.学号,学生.姓名FROM选课,学生WHERE课程编号=800102And选课.学号=学生.学号,.,4.3SQL数据定义4.3.1建立表结构在SQL中可以通过CREATETABLE语句建立表结构,其语句格式为CREATETABLE(字段级完整性约束1,字段级完整性约束2,字段级完整性约束n,),.,MicrosoftAccessSQL常用数据类型,.,例4-13在“教学管理”数据库中建立“教师”表:教师(编号,姓名,性别,基本工资,出生年月,研究方向),其中允许“出生年月”字段为“空值”。CREATETABLE教师(编号Char(7),姓名Char(8),性别Char(2),基本工资Money,出生年月DatetimeNull,研究方向Text(50),.,4.3.2修改表结构如果表不满足要求,就需要进行修改。可以使用ALTERTABLE语句修改已建表的结抅,其语句格式为ALTERTABLEADD字段级完整性约束条件DROPALTER,.,例4-14对“课程”表的结构进行修改,写出操作语句。为“课程”表增加一个整数类型的“学时”字段。删除“课程”表中的“学时”字段。操作1:ALTERTABLE课程ADD学时Smallint操作2:ALTERTABLE课程DROP学时,.,4.3.3删除表如果希望删除某个不需要的表,可以使用DROPTABLE语句,其语句格式为DROPTABLE其中,是指要删除的表的名称。例4-15在“教学管理”数据库中删除已建立的“教师”表。DROPTABLE教师注意:表一旦被删除,表中数据将自动被删除,并且无法恢复,因此,执行删除表的操作时一定要慎重。,.,4.4SQL数据操纵4.4.1插入记录INSERT语句实现数据的插入功能,可以将一条新记录插入到指定表中,其语句格式为INSERTINTO(,)VALUES(,)例4-16向“学生”表中添加记录。INSERTINTO学生(学号,姓名,出生日期)VALUES(231109,王大力,#1989-09-10#),.,4.4.2更新记录UPDATE语句对表中某些记录的某些字段进行修改,实现记录更新,其语句格式为UPDATESET,WHERE,.,例4-17写出对“教学管理”数据库进行如下操作的语句。将“学生”表中“李百强

温馨提示

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

评论

0/150

提交评论