ACCP6.0 第九章PPT TP09.ppt_第1页
ACCP6.0 第九章PPT TP09.ppt_第2页
ACCP6.0 第九章PPT TP09.ppt_第3页
ACCP6.0 第九章PPT TP09.ppt_第4页
ACCP6.0 第九章PPT TP09.ppt_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

1、第九章,数据查询基础,Students表中插入一条记录,回顾和作业点评2-1,INSERT INTO Students (SName,SAddress,SGrade,SEmail,SSEX) VALUES (张青裁,上海松江,6,ZQCS),INSERT INTO Students (SCode, SName,SAddress,SGrade,SEmail,SSEX) VALUES (100,张青裁,上海松江,6,ZQCS,0),INSERT INTO Students (SName,SAddress,SGrade,SEmail,SSEX) VALUES (张青裁,上海松江,6,ZQCS, 0)

2、,如果SCode为标识列,Students表中插入一条记录,字段个数不一致,不能为标识列字段赋值,INSERT INTO Students ( SName,SAddress,SGrade,SEmail,SSEX) VALUES (张青裁,上海松江,6,ZQCS,0),INSERT INTO StudentsInfo (姓名, 地址, 电子邮件) SELECT SName,SAddress,SEmail FROM Students,一次插入多条学生记录,INSERT INTO StudentsInfo (姓名, 地址, 电子邮件) SELECT SName,SAddress,SEmail FRO

3、M Students,UPDATE Students SET SName = 胡斐 SET SSex = 1 WHERE SName = 胡非,回顾和作业点评2-2,UPDATE Students SET SName = 胡斐, SSex = 1 WHERE SName = 胡非,修改学生记录,字段名不需要单引号,出现了2个SET子句,预习检查,从学生表中查询全部的数据,SQL语句怎么写? 查询排序使用的关键字是什么?,本章任务,查询学生信息 查询考试信息,掌握查询的机制 使用SELECT语句进行条件查询 使用表达式、运算符和函数实现查询 掌握查询排序,本章目标,什么是查询,客户端程序,SQL

4、 Server,SELECT * FROM SALES,查询产生一个虚拟表 看到的是表形式显示的结果,但结果并不真正存储 每次执行查询只是从数据表中提取数据,并按照表的形式显示出来,查询结果集,SELECT * FROM Students WHERE 所在班级 = S202,查询机制简介,SELECT FROM WHERE ORDER BY ASC或DESC,SELECT SCode,SName,SAddress FROM Students WHERE SSEX = 0 ORDER BY SCode,查询语法,查询全部的行和列,SELECT * FROM Students,数据查询基础2-1,

5、SELECT * FROM Course,查询全部学生信息,查询全部科目信息,查询部分列,SELECT SName, SAddress FROM Students,查询学生的姓名和地址,数据查询基础2-2,查询部分行或列,SELECT SName ,SGrade FROM Students WHERE SAddress = 北京,SELECTSName,SAddress FROM Students WHERE Ssex=1,查询 “北京”地区的学生姓名和年级,查询女学生姓名和地址,练习查询学生相关基本信息,需求说明: 查询全部S1的学生信息 查询全部S2的学生的姓名和电话 查询全部S1女同学的

6、信息 查询课时超过60的科目信息,完成时间:10分钟,使用AS来命名列,SELECT SCode AS 学生编号,SName AS 学生姓名, SAddress AS 学生地址 FROM Students WHERE SAddress 河南新乡,SELECT FirstName + . + LastName AS 姓名 FROM Employees,使用=来命名列,SELECT 姓名 = FirstName+.+LastName FROM Employees,注意: 1. + 连接的数据类型必须兼容 2. 如果 + 连接字符型数据,结果为字符串数据的连接 3. 如果 + 连接数值型数据,结果为

7、数值的和,数据查询-列别名,数据查询-空行、常量列,查询空行,SELECT SName FROM Students WHERE SEmail IS NULL,使用常量列,SELECT 姓名=SName,地址= SAddress,北京新兴桥 AS 学校名称 FROM Students,原来有数据,但数据被清除的列这样能怎样查出来?,数据查询-限制行数,限制固定行数,SELECT TOP 5 SName, SAddress FROM Students WHERE SSex = 0,返回百分之多少行,SELECT TOP 20 PERCENT SName, SAddress FROM Student

8、s WHERE SSex = 0,与取固定的数据行相比,提取固定百分比数据还能得到何种信息?,指导查询学生相关复杂信息 2-1,训练要点: 使用SELECT语句查询数据 需求说明: S2的科目名称 S2男同学的姓名和住址 无电子邮件的学生姓名和年级信息 出生日期在1990年之后的S2的学生姓名和年级信息 参加了日期为2010年2月15日的“HTML和CSS网页技术”科目考试的成绩信息,讲解需求说明,指导查询学生相关复杂信息 2-2,难点分析: 注意各个表之间的关系,例如通过查看S2的年级编号在科目表中查询对应科目,完成时间:20分钟,SELECT SubjectName FROM Subjec

9、t WHERE GradeId=2,查询单列排序,升序排列,SELECT StudentID AS 学生编号,(Score*0.9+5) AS 综合成绩 FROM Score WHERE (Score*0.9+5)60 ORDER BY Score,降序排列,SELECT StudentID,Score FROM Score ORDER BY Score,SELECT StudentID,Score FROM Score ORDER BY Score DESC,按多列排序,SELECT StudentID AS 学生编号, CourseID AS 课程ID, Score AS 成绩 FROM

10、Score WHERE Score 60 ORDER BY CourseID, Score,1、如果成绩按升序,课程编号按降序,该如何编写? 2、排序中的列,可以使用表达式吗? 如果不可以,请说明原因 如果可以,请举例说明,查询多列排序,小结,编写SQL语句: 1、查询河北的男同学 2、查询考试成绩前五名的分数,参考答案,练习使用排序查询学生相关信息,需求说明: 查询学生相关信息 查询科目相关信息 查询成绩相关信息,完成时间:25分钟,常用的几类函数 字符串函数 用于控制返回给用户的字符串 日期函数 用于操作日期值 数学函数 用于对数值进行代数运算 系统函数 获取有关SQL Server中对象

11、和设置的系统信息,SQL Server中的函数,字符串函数,日期函数,数学函数,系统函数,案例1问题,某公司印了一批充值卡,卡的密码是随机生成的,现在出现这个问题: 卡里面的字母“O和数字0”、“字母i和数字1”,用户反映说看不清楚,公司决定,把存储在数据库中的密码中所有的“O”都改成“0”,把所有的“i”都改成“1”; 请编写SQL语句实现以上要求 数据库表名:Card 密码列名:PassWord,实现卡密码更新的功能,需要使用UPDATE语句 牵涉到字符串的替换,需要使用到SQL Server中的函数REPLACE(),案例1分析,案例1T-SQL,两行SQL语句,UPDATE Card

12、SET PassWord = REPLACE(PassWord ,O,0) UPDATE Card SET PassWord = REPLACE(PassWord ,i,1),一行SQL语句,UPDATE Card SET PassWord = REPLACE(REPLACE(PassWord ,O,0),i,1),在数据库表中有以下字符数据,如: 13-1、13-2、13-3、13-10、13-100、13-108、13-18、13-11、13-15、14-1、14-2 现在希望通过SQL语句进行排序,并且首先要按照前半部分的数字进行排序,然后再按照后半部分的数字进行排序,输出要排成这样:

13、13-1、13-2、13-3、13-10、13-11、13-15、13-18、13-100、13-108、14-1、14-2 数据库表名:SellRecord 列名:ListNumber,案例2问题,排序:ORDER BY 在ORDER BY的排序列中,需要重新计算出排序的数字 前半部分的数字: 找到“-”符号的位置 取其左半部分 使用CONVERT函数将其转换为数字: 后半部分的数字: 找到“-”符号的位置 把从第一个位置到该位置的全部字符替换为空格 使用CONVERT函数将其转换为数字:,案例2分析,CONVERT(INT, LEFT(ListNumber, CHARINDEX(-, Li

14、stNumber)-1),CONVERT(INT, STUFF(ListNumber,1, CHARINDEX(-, ListNumber), ),SELECT ListNumber FROM SellRecord ORDER BY CONVERT(int, LEFT(ListNumber, CHARINDEX(-, ListNumber)-1), CONVERT(int, STUFF(ListNumber,1, CHARINDEX(-, ListNumber), ),案例2T-SQL,关键代码如下:,指导使用函数查询学生相关信息 2-1,训练要点: 使用SELECT语句查询数据 使用函数处理

15、数据 需求说明: 查询年龄超过20周岁的y2的学生信息 查询1月份过生日的学生信息 查询今天过生日的学生姓名及所在年级 查询学号为“Y21003007”的学生Email的域名 新生入学,为其分配一个Email地址,讲解需求说明,指导使用函数查询学生相关信息2-2,难点分析: 年满20周岁的条件 获取Email的域名 获取当前日期的年、月、日 获取4位随机数,完成时间:25分钟,DATEDIFF(DD,BornDate, GETDATE()=365*20,RIGHT(Email, LEN(Email) - CHARINDEX(,Email) ),CONVERT(VARCHAR(4), DATEPART(YYYY,GETDATE(),RIGHT(RAND(),4),共性问题集中讲解,常见调试问题及解决办法 代码规范问题,共性问题集中讲解,总结,查询全部女同学的SQL语句怎么写? 在学生信息表中如何查询邮件地址是空的学生姓名? 说出以下T-

温馨提示

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

评论

0/150

提交评论