sql server 2005的查询语句练习课件.ppt
文本预览下载声明
Score StudentsID CourseID Score 1 2 2 3 001 001 002 002 97 89 67 76 3 003 81 多表联结查询—左外联结 Stundents SName 梅超风 陈玄风 陆乘风 曲灵风 SCode 1 2 3 4 查询结果 SName 梅超风 陈玄风 陈玄风 陆乘风 CourseID Score 001 001 002 002 97 89 67 76 陆乘风 003 81 曲灵风 NULL NULL 猜一猜:这样写,返回的查询结果是一样的吗? SELECT S.SName,C.CourseID,C.Score From Score AS C LEFT JOIN Students AS S ON C.StudentID = S.SCode SELECT S.SName,C.CourseID,C.Score From Students AS S LEFT JOIN Score AS C ON C.StudentID = S.SCode 多表联结查询—右外联结 SELECT Titles.Title_id, Titles.Title, Publishers.Pub_name FROM titles RIGHT OUTER JOIN Publishers ON Titles.Pub_id = Publishers.Pub_id * 讲解要点: * 可适当讲解UNION和UNION ALL的区别 * 讲解要点: 数据查询-限制行数 限制固定行数 SELECT TOP 5 SName, SAddress FROM Students WHERE SSex = 0 返回百分之多少行 SELECT TOP 20 PERCENT SName, SAddress FROM Students WHERE SSex = 0 数据查询-排序 2-1 升序排列 SELECT StudentID As 学员编号,(Score*0.9+5) As 综合成绩 FROM Score WHERE (Score*0.9+5)60 ORDER BY Score 降序排列 SELECT Au_Lname +. +Au_fName AS EMP From Authors Union SELECT fName +.+ LName AS EMP From Employee ORDER BY EMP DESC 数据查询-排序 2-2 按多列排序 SELECT StudentID As 学员编号, Score As 成绩 FROM Score WHERE Score60 ORDER BY Score,CourseID 排序中的字段,可以使用表达式吗? —— 如果不可以,请说明原因; —— 如果可以,请举例说明; SQL Server中的函数 相当于Java语言中的内置包 字符串函数 日期函数 数学函数 系统函数 字符串函数 SELECT STUFF(ABCDEFG, 2, 3, 我的音乐我的世界) 返回:A我的音乐我的世界EFG 在一个字符串中,删除指定长度的字符,并在该位置插入一个新的字符串 STUFF SELECT CHARINDEX(ACCP,My Accp Course,1 ) 返回:4 用来寻找一个指定的字符串在另一个字符串中的起始位置 CHARINDEX 举例 描述 函数名 SELECT LEN(SQL Server课程) 返回:12 返回传递给它的字符串长度 LEN SELECT LOWER(SQL Server课程) 返回:sql server课程 把传递给它的字符串转换为小写 LOWER SELECT UPPER(sql server课程) 返回:SQL SERVER课程 把传递给它的字符串转换为大写 UPPER SELECT LTRIM ( 周智宇 ) 返回:周智宇 (后面的空格保留) 清除字符左边的空格 LTRIM SELECT RTRIM ( 周智宇 ) 返回: 周智宇(前面的空格保留) 清除字符右边的空格 RTRIM SELECT RIGHT(买卖提.吐尔松,3) 返回:吐尔松 从字符串右边返回指定数目的字符 RIGHT SELECT REPLACE(莫乐可切.杨可,可,兰) 返回:莫乐兰切.杨兰 替换一个字符串中的字符 REPLACE 日期函数 SELECT DATEPART(day, ’01/15/2000’) 返回:15 日期中指定日期部分的整数形式 DATEPART SELECT GETDATE() 返回:今天的日期 取得当前的系统日期 GETDATE 举例 描述 函数名 SELECT DATEADD(mm,4,’
显示全部