sqlserver2005数据查询1

上传人:平*** 文档编号:46198904 上传时间:2018-06-23 格式:PPT 页数:28 大小:1.76MB
返回 下载 相关 举报
sqlserver2005数据查询1_第1页
第1页 / 共28页
sqlserver2005数据查询1_第2页
第2页 / 共28页
sqlserver2005数据查询1_第3页
第3页 / 共28页
sqlserver2005数据查询1_第4页
第4页 / 共28页
sqlserver2005数据查询1_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《sqlserver2005数据查询1》由会员分享,可在线阅读,更多相关《sqlserver2005数据查询1(28页珍藏版)》请在金锄头文库上搜索。

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

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

3、te Students Set SName = 胡斐,SSex = 1 Where SName = 胡非2本章任务n编写简单SQL查询语句查询学员信息n排序查询n在查询中使用SQL Server的内置函数3n 理解查询的机制n 使用SELECT语句进行条件查询n 在查询中返回限制行、进行查询排序n 在查询中使用表达式、运算符和函数本章目标4什么是查询?客户程序查询请求查询结果集SQL SERVERA B C D E F GSELECT * FROM SALES查询产生一个虚拟表,看到的是表形式显示的结果,但结果并不真正存储 ,每次执行查询只是现从数据表中提取数据,并按照表的形式显示出来5怎么查

4、的?学员编号学员姓名地址所在班级. 001张明全湖南长沙S201 002李菲湖北宜昌S202 003于寄谦甘肃天水S204 004刘国正山东荷泽S201 005周接轮台湾新竹S204 006巩小妹香港龙湾S203007巩大妹香港龙湾S203 008张明敏北京顺义S202 009矛十八四川棉阳S204 010罗林光陕西临潼S202 011司马坡新疆喀什S201SELECT * FROM StudentsH WHERE 所在班级 = S202S202陕西临潼罗林光010S202湖北宜昌李菲002S202北京顺义张明敏0086思考 n既然查询得到的“结果集”的结构类似于一 张表,那么可以在“结果集”

5、上继续进行查 询吗?7编写查询语句之前8查询SELECT FROM WHERE ORDER BY ASC或DESC列名称 SELECT SCode, SName, SAddress表名 FROM Students过滤条件 WHERE SSEX = 0排序条件 ORDER BY SCodeSELECT SCode,SName,SAddress FROM Students WHERE SSEX = 0 ORDER BY SCode9数据查询-基础查询全部的行和列SELECT * FROM Students 查询部分行SELECT SCode,SName,SAddress FROM Students

6、 WHERE SAddress = 河南新乡SELECT SCode,SName,SAddress FROM Students WHERE SAddress 河南新乡SELECT FirstName + . + LastName AS 姓名 FROM Employees使用=来命名列SELECT 姓名 = FirstName+.+LastName FROM Employees11数据查询-空行常量列查询空行SELECT SName FROM Students WHERE SEmail IS NULL原来有数据,但数据被清除的列这样能查出来吗?使用常量列SELECT 姓名=SName,地址= S

7、Address,河北新龙 AS 学校名称 FROM Students12数据查询-限制行数限制固定行数SELECT TOP 5 SName, SAddress FROM Students WHERE SSex = 0返回百分之多少行SELECT TOP 20 PERCENT SName, SAddress FROM Students WHERE SSex = 013数据查询-排序 2-1升序排列SELECT StudentID As 学员编号,(Score*0.9+5) As 综合成绩 FROM Score WHERE (Score*0.9+5)60 ORDER BY Score降序排列SEL

8、ECT Au_Lname +. +Au_fName AS EMP From Authors Union SELECT fName +.+ LName AS EMP From Employee ORDER BY EMP DESC14数据查询-排序 2-2按多列排序SELECT StudentID As 学员编号, Score As 成绩 FROM Score WHERE Score60 ORDER BY Score,CourseID排序中的字段,可以使用表达式吗? 如果不可以,请说明原因; 如果可以,请举例说明;15小结1 编写SQL语句:1、查询河北的男同学; 2、查询考试成绩前五名的分数;1

9、6SQL Server中的函数n字符串函数n日期函数n数学函数n系统函数17字符串函数SELECT STUFF(ABCDEFG, 2, 3, 我的音乐我的世界) 返回:A我的音乐我的世界EFG在一个字符串中,删除指定长度的 字符,并在该位置插入一个新的字 符串STUFFSELECT CHARINDEX(ACCP,My Accp Course,1 ) 返回:4用来寻找一个指定的字符串在另一 个字符串中的起始位置CHARINDE X举例描述函数名SELECT LEN(SQL Server课程) 返回:12返回传递给它的字符串长度LENSELECT LOWER(SQL Server课程) 返回:sq

10、l server课程把传递给它的字符串转换为小写LOWERSELECT UPPER(sql server课程) 返回:SQL SERVER课程把传递给它的字符串转换为大写UPPERSELECT LTRIM ( 周智宇 ) 返回:周智宇 (后面的空格保留)清除字符左边的空格LTRIMSELECT RTRIM ( 周智宇 ) 返回: 周智宇(前面的空格保留)清除字符右边的空格RTRIMSELECT RIGHT(买卖提.吐尔松,3) 返回:吐尔松从字符串右边返回指定数目的字符RIGHTSELECT REPLACE(莫乐可切.杨可,可,兰) 返回:莫乐兰切.杨兰替换一个字符串中的字符REPLACE18

11、日期函数SELECT DATEPART(day, 01/15/2000) 返回:15日期中指定日期部分的整数形 式DATEPARTSELECT GETDATE() 返回:今天的日期取得当前的系统日期GETDATE举例描述函数名SELECT DATEADD(mm,4,01/01/99) 返回:以当前的日期格式返回05/01/99将指定的数值添加到指定的日 期部分后的日期DATEADDSELECT DATEDIFF(mm,01/01/99,05/01/99) 返回:4两个日期之间的指定日期部分 的区别DATEDIFFSELECT DATENAME(dw,01/01/2000) 返回:Saturda

12、y日期中指定日期部分的字符串 形式DATENAME19数学函数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将数值表达式四舍五入为指定 精度ROUNDSELECT SIGN(-43) 返回:-1对于正数返回+1,对于负数返 回-1,对于0 则返回0SignS

13、ELECT FLOOR(43.5) 返回:43取小于或等于指定表达式的最 大整数FLOOR20系统函数SELECT USER_NAME(1) 返回:从任意数据库中返回“dbo”从给定的用户I D返回用户名USER_NAMESELECT CONVERT (VARCHAR (5) ,12345) 返回:字符串12345用来转变数据类型CONVERT 举例描述函数名SELECT CURRENT_USER 返回:你登录的用户名返回当前用户的名字CURRENT_USER SELECT DATALENGTH (中国A盟) 返回:7返回用于指定表达式的字节 数DATALENGTHSELECT HOST_NA

14、ME() 返回:你所登录的计算机的名字返回当前用户所登录的计算 机名字HOST_NAME SELECT SYSTEM_USER 返回:你当前所登录的用户名返回当前所登录的用户名称SYSTEM_USER 21案例分析1要求n某公司印了一批充值卡,卡的密码是随机生成的 ,现在出现这个问题:卡里面的“O和0”(哦和零)“i和1”(哎和一), 用户反映说看不清楚,公司决定,把存储在数据 库中的密码中所有的“哦”都改成“零”,把所有的 “i”都改成“1”;请编写SQL语句实现以上要求;n数据库表名:Card;密码字段名:PassWord;22案例分析1分析n这是更新语句,需要使用UPDATE语句;n因为

15、牵涉到字符串的替换,需要使用到 SQL Server中的函数Replace;23案例分析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)24案例分析2要求n在数据库表中有以下字符数据,如:13-1、13-2、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-2n数据库表名:SellRecord;字段名:ListNumber;25案例分析2分析n这是查询语句,需要使用SELECT语句n需要使用到ORDER BY进行排序,并且在ORDER BY的 排序列中,也需要重新计算出排序的数字来n前半部分的数字,可以从先找到“-”符号的位置,然后,取 其左半部分,

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

当前位置:首页 > 高等教育 > 大学课件

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