[计算机软件及应用]SQL第4章.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《[计算机软件及应用]SQL第4章.ppt》由会员分享,可在线阅读,更多相关《[计算机软件及应用]SQL第4章.ppt(68页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、SQL Server 2005应应用用教教程程4.1 任务一:认识任务一:认识SQL语言语言 l任务目标:l了解什么是Transact-SQL语言l熟练掌握Transact-SQL的语法l熟练运用常用的各种函数SQL Server 2005应应用用教教程程4.1.1 Transact-SQL的认识的认识 lSQL是Structure Query Language(结构化语言)的缩写,是一种用于数据库查询和编程的语言,已经成为关系型数据库普遍使用的标准,使用这种标准的数据库语言对程序设计和数据库维护都带来了极大的方便,它广泛地应用于各种数据查询中。lTransact-SQL(简称T-SQL)语言
2、是Microsoft公司对此标准的一个实现,它同时与多种ANSI SQL标准兼容,且还进行了许多扩展。 lSQL语言包含4个部分。l(1) 数据查询语言(Data Query Language,DQL)。l(2) 数据操纵语言(Data Manipulation Language,DML)。l(3) 数据定义语言(Data Definition Language,DDL)。l(4) 数据控制语言(Data Control Language,DCL)。SQL Server 2005应应用用教教程程4.1.2 T-SQL语法约定语法约定l1常量 常量,也称为文字值或标量值,是指程序运行中值不变的量
3、。表4-1列出了SQL Server 2005中可用的常量类型及表示说明。 常量类型表示说明举例字符串常量使用单引号括起来的字符或字符串how are you?二进制常量具有前缀0 x,且是十六进制数字字符串0 x12AE整型常量使用不带小数点的十进制数据1235, -340日期常量使用单引号括起来的日期时间字符串2009-12-02, 18:34:19实型常量有定点表示和浮点表示两种1893.34 , 3.0, -12e5货币常量以$作为前缀的整型或实型常量数据$12, $567SQL Server 2005应应用用教教程程l2变量l变量用于临时存放数据。变量名必须是一个合法的标识符。SQL
4、 Server有两种类型的变量。l(1) 全局变量:由系统提供,在名称前加两个“”符号区别于局部变量。l(2) 局部变量:用于保存单个数据值,在名称前加一个“”符号的为局部变量。局部变量是作用域局限在一定范围内的T-SQL对象。SQL Server 2005应应用用教教程程l 3变量的使用l(1) 用DECLARE语句声明变量,格式为:DECLARE 局部变量名,数据类型 ,.nl【操作演示】声明两个变量var1,var2,其数据类型分别为char(8)和int。 DECLARE var1 char(8) ,var2 int SQL Server 2005应应用用教教程程l(2) Set语句赋
5、值 SET语句将DECLARE语句创建的局部变量设置为表达式的值,格式为: SET 局部变量名=表达式l【操作演示】给两个变量var1和var2赋值后输出。DECLARE var1 char(8) ,var2 int Set var1=welcomeSet var2=100Select var1, var2SQL Server 2005应应用用教教程程l4注释语句 与其他程序设计语言一样,SQL Server也有注释语句,行注释语句使用“-”,块注释语句使用“/* */”。SQL Server 2005应应用用教教程程4.1.3 常用函数常用函数 SQL Server 2005为T-SQL语言
6、提供了大量的系统函数,使用户对数据库进行查询和修改时更加方便。常用的函数主要有:数学、字符串、日期时间和聚合函数等。l1数学函数 数学函数可对SQL Server 提供的数学运算并返回运算结果。常用的数学函数见表4-2。SQL Server 2005应应用用教教程程表表4-2 常用的数学函数常用的数学函数函数名函数名说明说明abs返回给定数字表达式的绝对值返回给定数字表达式的绝对值ceiling返回大于或等于指定数值表达式的最小整数返回大于或等于指定数值表达式的最小整数floor返回小于或等于指定数值表达式的最大整数返回小于或等于指定数值表达式的最大整数power幂函数,返回指定表达式的指定幂
7、的值幂函数,返回指定表达式的指定幂的值round圆整函数,舍入到指定的长度或精度圆整函数,舍入到指定的长度或精度rand返回返回0到到1之间的随机之间的随机float值值sign返回给定表达式的正返回给定表达式的正(+1)、零、零(0)或负或负(-1)号号pi返回返回pi的常量值的常量值sqrt返回给定表达式的平方根返回给定表达式的平方根SQL Server 2005应应用用教教程程【操作演示】lSELECT abs(10), abs(-10) l结果:10 10lSELECT rand(),sqrt(9)l结果:0.374631290756254 3lSELECT power(2,3),ro
8、und(234.2636,2)l结果:8 234.2600lSELECT floor(45.266),ceiling(45.266)l结果:45 46SQL Server 2005应应用用教教程程l2字符串函数 字符串函数用于对字符串进行处理。常用的字符串函数见表4-3。函数名函数名说明说明len返回指定字符串表达式的字符个数返回指定字符串表达式的字符个数(不是字节不是字节)substring子串函数,返回表达式中指定的部分数据子串函数,返回表达式中指定的部分数据upper大写函数大写函数lower小写函数小写函数charASCII代码转换函数,返回指定代码转换函数,返回指定ASCII代码的字
9、符代码的字符asciiASCII函数,返回字符表达式中最左侧的字符的函数,返回字符表达式中最左侧的字符的ASCII代码值代码值str将数字数据转换成字符数据将数字数据转换成字符数据L1 left返回从字符串左边开始指定个数的字符返回从字符串左边开始指定个数的字符right返回从字符串右边开始指定个数的字符返回从字符串右边开始指定个数的字符SQL Server 2005应应用用教教程程【操作演示】lSELECT len(abcdef) AS 个数, substring(welcome,2,3) l结果:6 elclSELECT lower(DKF) ,upper(abc)l结果:dkf ABCl
10、SELECT char(65),ascii(A)l结果:A 65lSELECT str(89.457,6,2)l结果:89.46lSELECT left(abcefg,4),right(abcdefg,4)l结果:abce defg句管理索引的方法SQL Server 2005应应用用教教程程l3日期时间函数 常用日期函数函数见表4-4。函数名函数名说明说明getdate按按datetime值的值的SQL Server标准内部格式返回当前系统日期和时间标准内部格式返回当前系统日期和时间month返回代表指定日期月份的整数返回代表指定日期月份的整数year返回表示指定日期年份的整数返回表示指定日
11、期年份的整数day返回代表指定日期的天的日期部分的整数返回代表指定日期的天的日期部分的整数dateadd在向指定日期加上一段时间的基础上在向指定日期加上一段时间的基础上,返回新的返回新的datetime值值datepart返回指定日期中指定部分的整数,返回指定日期中指定部分的整数,yy代表年,代表年,mm代表月代表月,dd代表日代表日,dw代代表星期等表星期等datename返回指定日期中指定部分的字符串返回指定日期中指定部分的字符串SQL Server 2005应应用用教教程程【操作演示】lSELECT getdate()l结果:2009-04-04 20:22:24.140lSELECT
12、month(03/12/2009) ,year(03/12/2009), day(03/12/2009)l结果:12 2009 3lSELECT dateadd(day , 20 , getdate()l结果:2010-04-24 20:22:24.140lSELECT datepart(yy,getdate(),datename(dw,getdate()l结果:2009 星期日SQL Server 2005应应用用教教程程l4聚合函数 聚合函数经常与SELECT语句和GROUP BY子句一起使用,它可以对一组值执行计算,并返回单个值。 常用的聚合函数在任务二中有详细讲解,这里就不再介绍了。S
13、QL Server 2005应应用用教教程程l5数据类型转换函数lCAST和CONVERT这两个函数都是实现数据类型转换的,将表达式的类型转换为指定的数据类型。但CONVERT的功能更强一些。其语法格式如下:lCAST (表达式 AS 数据类型)lCONVERT (数据类型(数据长度),表达式,STYLE)SQL Server 2005应应用用教教程程4.2 任务二:基本的任务二:基本的SELECT 语句语句l【任务目标】l熟悉SELECT基本语法格式,并进行简单查询l掌握WHERE子句的使用l在查询中熟练运用聚合函数SQL Server 2005应应用用教教程程4.2.1 SELECT子句子
14、句l4.2.1 SELECT子句lSELECT语句是SQL标准中最为灵活、使用最为广泛的语句之一。最基本的格式为:l格式:SELECT 显示字段 FROM 表名l说明:SELECT用于指定显示输出的字段,FROM用于指定查询的数据库表名。SQL Server 2005应应用用教教程程根据博客数据库BlogDb,做以下查询。l【操作演示】查询Users表的所有记录。 SELECT * FROM Users -*号代表所有列l【操作演示】查询Users表中所有记录,只显示UserName、Sex、Email字段。 SELECT UserName,Sex,Email FROM Users -直接写上
15、列名SQL Server 2005应应用用教教程程l【操作演示】显示Users表中所有记录,只显示UserName、Sex字段,并用中文显示字段名。SELECT 用户名=UserName,性别=Sex FROM Users -新标题=列名l或SELECT UserName AS用户名, Sex AS 性别 FROM Users -列名 AS 新标题 查询结果如图4.1所示。SQL Server 2005应应用用教教程程l【操作演示】显示有发表文章的开博用户名称。 SELECT DISTINCT UserName FROM Articlel【操作演示】在学生数据库中,查询成绩提高20%前后的成绩
16、记录。 SELECT 学号,课程号,成绩,提高后成绩=成绩*1.2 FROM 选课表 l查询结果如图4.2所示SQL Server 2005应应用用教教程程l【操作演示】查询所有发表文章的博客姓名、文章主题及发表时间,查询结果存放在MyArticle表中。 SELECT UserName,Subject,ShiJian INTO MyArticle FROM Articlel【操作演示】返加Article表中的前3条记录。 SELECT TOP 3 * FROM ArticleSQL Server 2005应应用用教教程程4.2.2 聚合函数的应用聚合函数的应用 l有时我们需要对查询列进行计算
17、再显示,这时必须采用一些聚合函数,常用聚合函数见表4-5。函数名函数名含义含义count()若选用若选用ALL,则统计出指定列的值的个数,则统计出指定列的值的个数(不去除重复值不去除重复值);若选用;若选用DISTINCT,则统计出指定列的不同值的个数;若选用,则统计出指定列的不同值的个数;若选用*,则统,则统计出所有元组个数计出所有元组个数max()求出对应的数值、字符或日期列的最大值求出对应的数值、字符或日期列的最大值min()求出对应的数值、字符或日期列的最小值求出对应的数值、字符或日期列的最小值avg()求出对应的数值列的平均值求出对应的数值列的平均值sum()求出对应的数值列的总和求
18、出对应的数值列的总和SQL Server 2005应应用用教教程程l聚合函数只能在以下位置作为表达式使用。l(1) SELECT语句的选择列表(子查询和外部查询)。l(2) HAVING子句。l【操作演示】在BlogDb数据库中,统计已开博的用户人数。 SELECT count(*) AS 开博人数 FROM UsersSQL Server 2005应应用用教教程程4.2.3 WHERE子句子句l在数据库中查询数据时,有时用户只希望得到一部分数据而不是全部,这时就必须用到WHERE条件语句。l数据表通过WHERE子句中的条件表达式进行筛选,不满足条件的行将不再显示。l格式:SELECT 显示字
19、段 FROM 数据来源 WHERE 条件表达式SQL Server 2005应应用用教教程程l在SQL Server 2005中,条件表达式通过以下几种运算符来进行,见表4-6。 运算符名称运算符名称运算符运算符说明说明比较运算符比较运算符、=、=、=、!、!大小比较大小比较范围运算符范围运算符BETWEENAND, NOT BETWEENAND判断表达式值是否在指定判断表达式值是否在指定的范围的范围列表运算符列表运算符IN (项项1,项项2,),NOT IN (项项1,项项2,)判断表达式是否为列表中判断表达式是否为列表中的指定项的指定项模式匹配符模式匹配符LIKE、NOT LIKE判断值是
20、否与指定的字符判断值是否与指定的字符通配格式相符通配格式相符逻辑运算符逻辑运算符NOT、AND、OR用于多条件的逻辑连接用于多条件的逻辑连接SQL Server 2005应应用用教教程程l【操作演示】查询性别为男的开博用户。 SELECT * FROM Users WHERE Sex=男 l【操作演示】查询在2008年前发表文章的开博用户名以及文章主题。 SELECT UserName,Subject FROM Article WHERE year(ShiJian)=2008l【操作演示】查询在2008至2010年间发表文章的开博用户名以及文章主题。 SELECT UserName,Subje
21、ct FROM Article WHERE year(ShiJian) BETWEEN 2008 AND 2010SQL Server 2005应应用用教教程程l【操作演示】查询开博用户姓名中含有字母o的记录。 SELECT * FROM Users WHERE UserName LIKE %o%l【操作演示】在学生数据库中,从学生表中查询专业为计算机、电气、通信的所有学生。SELECT *FROM 学生表WHERE 专业 IN (计算机,电气,通信) SQL Server 2005应应用用教教程程(2) 未知值。NULL表示未知的、不可用的或将在以后添加的数据。在WHERE子句中,使用IS
22、NULL或IS NOT NULL可查询某一数据值是否为NULL的数据信息。l格式为:WHERE 列名 IN NOT NULLl【操作演示】查询在博客发表的文章中,内容为空的文章。 SELECT * FROM Article WHERE content IS NULL查询结果如图4.4所示。SQL Server 2005应应用用教教程程4.3 任务三:单表查询任务三:单表查询【任务目标】l理解分组统计的作用l熟练掌握GROUP BY、HAVING子句的使用方法l能利用ORDER BY子句对查询结果进行排序SQL Server 2005应应用用教教程程4.3.1 GROUP BY子句子句 l功能:
23、分组统计。用于产生列函数的分组统计值,对某一列数据的值进行分类,形成结果集,然后在结果集的基础上再进行分组。 l(1) 为每一个组计算一个汇总值,并把此值保存在一个字段中。l(2) 一组只生成一条记录。l(3) 所有GROUP BY子句中指定的字段名,都必须出现在SELECT选择列中。l(4) 如果使用WHERE选项,则只对符合条件的记录进行分组和汇总。l(5) GROUP BY子句通常与统计函数联合使用,如sum、count等 SQL Server 2005应应用用教教程程l【操作演示】查询开博用户中男女各有多少人。说明:(1) Sex是分组列名,必须同时出现在SELECT子句中。(2) 该
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机软件及应用 计算机软件 应用 SQL
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内