数据库第四章课件_第1页
数据库第四章课件_第2页
数据库第四章课件_第3页
数据库第四章课件_第4页
数据库第四章课件_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

1、第四章数据查询(一)回顾代码改错 1、INSERT INTO Students (SName,SAddress,SGrade,SEmail,SSEX) VALUES (张青裁,上海松江,6,ZQCSohu) 2、INSERT INTO Students (SCode, SName,SAddress,SGrade,SEmail,SSEX) VALUES (100,张青裁,上海松江,6,ZQCSohu,0) 3、INSERT INTO StudentsInfo (姓名, 地址, 电子邮件) SELECT SName,SAddress,SEmail FROM Students4、Update Stu

2、dents Set SName = 胡斐 Set SSex = 1 Where SName = 胡非 1、INSERT INTO Students (SName,SAddress,SGrade,SEmail,SSEX) VALUES (张青裁,上海松江,6,ZQCSohu,0) 2、INSERT INTO Students ( SName,SAddress,SGrade,SEmail,SSEX) VALUES (张青裁,上海松江,6,ZQCSohu,0) 3、INSERT INTO StudentsInfo (姓名, 地址, 电子邮件) SELECT SName,SAddress,SEmail

3、 FROM Students 4、Update Students Set SName = 胡斐,SSex = 1 Where SName = 胡非预习检查1、从学员表中查询全部的数据,SQL语句怎么写?2、查询排序使用的关键字是什么?本章任务编写简单SQL查询语句查询学员信息排序查询在查询中使用SQL Server的内置函数 理解查询的机制 使用SELECT语句进行条件查询 在查询中返回限制行、进行查询排序 在查询中使用表达式、运算符和函数本章目标什么是查询?客户程序查询请求查询结果集SQL SERVERA B C D E F G SELECT * FROM SALES查询产生一个虚拟表,看到

4、的是表形式显示的结果,但结果并不真正存储,每次执行查询只是现从数据表中提取数据,并按照表的形式显示出来怎么查的?学员编号学员姓名地址所在班级.001张明全湖南长沙S201002李菲湖北宜昌S202003于寄谦甘肃天水S204004刘国正山东荷泽S201005周接轮台湾新竹S204006巩小妹香港龙湾S203007巩大妹香港龙湾S203008张明敏北京顺义S202009矛十八四川棉阳S204010罗林光陕西临潼S202011司马坡新疆喀什S201SELECT * FROM StudentsH WHERE 所在班级 = S202S202陕西临潼罗林光010S202湖北宜昌李菲002S202北京顺义

5、张明敏008思考既然查询得到的“结果集”的结构类似于一张表,那么可以在“结果集”上继续进行查询吗?编写查询语句之前查询SELECT FROM WHERE ORDER BY ASC或DESC列名称SELECT SCode,SName,SAddress表名FROMStudents过滤条件WHERESSEX = 0排序条件ORDER BYSCodeSELECT SCode,SName,SAddress FROM Students WHERE SSEX = 0 ORDER BY SCode数据查询-基础查询全部的行和列SELECT * FROM Students 查询部分行SELECT SCode,S

6、Name,SAddress FROM StudentsWHERE SAddress = 河南新乡SELECT SCode,SName,SAddress FROM StudentsWHERE SAddress 河南新乡数据查询-列名使用AS来命名列SELECT SCode AS 学员编号,SName AS学员姓名,SAddress AS 学员地址 FROM StudentsWHERE SAddress 河南新乡SELECT FirstName + . + LastName AS 姓名 FROM Employees使用=来命名列SELECT 姓名 = FirstName+.+LastName FR

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

8、查询-排序 2-1升序排列SELECT StudentID As 学员编号,(Score*0.9+5) As 综合成绩FROM ScoreWHERE (Score*0.9+5)60ORDER BY Score降序排列SELECT Au_Lname +. +Au_fName AS EMP From Authors UnionSELECT fName +.+ LName AS EMP From EmployeeORDER BY EMP DESC数据查询-排序 2-2按多列排序SELECT StudentID As 学员编号, Score As 成绩FROM ScoreWHERE Score60OR

9、DER BY Score,CourseID排序中的字段,可以使用表达式吗? 如果不可以,请说明原因; 如果可以,请举例说明;小结1编写SQL语句:1、查询河北的男同学;2、查询考试成绩前五名的分数;SQL Server中的函数相当于Java语言中的内置包字符串函数日期函数数学函数系统函数字符串函数SELECT STUFF(ABCDEFG, 2, 3, 我的音乐我的世界)返回:A我的音乐我的世界EFG在一个字符串中,删除指定长度的字符,并在该位置插入一个新的字符串STUFFSELECT CHARINDEX(ACCP,My Accp Course,1 )返回:4用来寻找一个指定的字符串在另一个字符

10、串中的起始位置CHARINDEX举例描述函数名SELECT LEN(SQL Server课程)返回:12返回传递给它的字符串长度LENSELECT LOWER(SQL Server课程)返回:sql server课程把传递给它的字符串转换为小写LOWERSELECT UPPER(sql server课程)返回:SQL SERVER课程把传递给它的字符串转换为大写UPPERSELECT LTRIM ( 周智宇 )返回:周智宇 (后面的空格保留)清除字符左边的空格LTRIMSELECT RTRIM ( 周智宇 )返回: 周智宇(前面的空格保留)清除字符右边的空格RTRIMSELECT RIGHT(

11、买卖提.吐尔松,3)返回:吐尔松从字符串右边返回指定数目的字符RIGHTSELECT REPLACE(莫乐可切.杨可,可,兰)返回:莫乐兰切.杨兰替换一个字符串中的字符REPLACE日期函数SELECT DATEPART(day, 01/15/2000)返回:15日期中指定日期部分的整数形式DATEPARTSELECT GETDATE()返回:今天的日期取得当前的系统日期GETDATE举例描述函数名SELECT DATEADD(mm,4,01/01/99)返回:以当前的日期格式返回05/01/99将指定的数值添加到指定的日期部分后的日期DATEADDSELECT DATEDIFF(mm,01/

12、01/99,05/01/99)返回:4两个日期之间的指定日期部分的区别DATEDIFFSELECT DATENAME(dw,01/01/2000)返回:Saturday日期中指定日期部分的字符串形式DATENAME数学函数SELECT SQRT(9)返回:3取浮点表达式的平方根SqrtSELECT ABS(-43)返回:43取数值表达式的绝对值ABS举例描述函数名SELECT CEILING(43.5)返回:44返回大于或等于所给数字表达式的最小整数CEILINGSELECT POWER(5,2)返回:25取数值表达式的幂值POWERSELECT ROUND(43.543,1)返回:43.5将

13、数值表达式四舍五入为指定精度ROUNDSELECT SIGN(-43)返回:-1对于正数返回+1,对于负数返回-1,对于0 则返回0SignSELECT FLOOR(43.5)返回:43取小于或等于指定表达式的最大整数FLOOR系统函数SELECT USER_NAME(1)返回:从任意数据库中返回“dbo”从给定的用户I D返回用户名USER_NAMESELECT CONVERT (VARCHAR (5),12345)返回:字符串12345用来转变数据类型CONVERT 举例描述函数名SELECT CURRENT_USER返回:你登录的用户名返回当前用户的名字CURRENT_USER SELE

14、CT DATALENGTH (中国A盟)返回:7返回用于指定表达式的字节数DATALENGTHSELECT HOST_NAME()返回:你所登录的计算机的名字返回当前用户所登录的计算机名字HOST_NAME SELECT SYSTEM_USER返回:你当前所登录的用户名返回当前所登录的用户名称SYSTEM_USER 案例分析1要求某公司印了一批充值卡,卡的密码是随机生成的,现在出现这个问题: 卡里面的“O和0”(哦和零)“i和1”(哎和一),用户反映说看不清楚,公司决定,把存储在数据库中的密码中所有的“哦”都改成“零”,把所有的“i”都改成“1”;请编写SQL语句实现以上要求;数据库表名:Ca

15、rd;密码字段名:PassWord;案例分析1分析这是更新语句,需要使用UPDATE语句;因为牵涉到字符串的替换,需要使用到SQL Server中的函数Replace;案例分析1T-SQL两行SQL语句Update Card 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)案例分析2要求在数据库表中有以下字符数据,如:13-1、13-2

16、、13-3、13-10、13-100、13-108、13-18、13-11、13-15、14-1、14-2现在希望通过SQL语句进行排序,并且首先要按照前半部分的数字进行排序,然后再按照后半部分的数字进行排需,输出要排成这样: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分析这是查询语句,需要使用SELECT语句需要使用到ORDER BY进行排序,并且在ORDER BY的排序列中,也需要重新计算出排序的数字来前半部分的数字,可以从先找到“-”符

17、号的位置,然后,取其左半部分,最后再使用Convert函数将其转换为数字:Convert(int, Left(ListNumber, CharIndex(-, ListNumber)-1)后半部分的数字,可以先找到“-”符号的位置,然后把从第一个位置到该位置的全部字符替换为空格,最后再使用Convert函数将其转换为数字:Convert(int, Stuff(ListNumber,1, Charindex(-, ListNumber), )案例分析2T-SQLSELECT ListNumberFROM SellRecordORDER BY Convert(int, Left(ListNumber, CharIndex(-, ListNumber)-1),Convert(int

温馨提示

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

评论

0/150

提交评论