SQL标准培训教程.ppt
《SQL标准培训教程.ppt》由会员分享,可在线阅读,更多相关《SQL标准培训教程.ppt(75页珍藏版)》请在课桌文档上搜索。
1、功能强大的SQL语句,利用SQL语句,可以查询、插入、更新、删除数据库中的数据。,3.1 select 语句解析与简单SQL语句(P63),从某种意义上说,select语句是数据库结构化查询语言SQL的真正核心。使用select语句可以以多种不同的方式查找数据库中的数据,并且可以显示通过现有数据推导、计算出的数据信息。,3.1.1 select 语句解析(P64),在数据库引擎查询文档中输入64页的代码 use 企业销售管理系统 select 仓库号,城市,面积,创建时间from 仓库where 面积800执行该SQL语句,就可以从数据库表“仓库”中挑选出面积大于800的仓库号、城市、面积、创
2、建时间信息。,Select语言句的基本格式,Select语言句的基本格式是:select all distinct select_list from table_list/view_list where conditions group by group_list having conditions order by order_list,3.1.2 选择所有的列(P65),Select 语句的第一个子句,即select关键字开头的子句,用于选择进行显示的列,并且可以指定是否显示重复的记录。在数据库引擎输入如下代码:use 企业销售管理系统 select 职工ID,职工号,仓库号,姓名,性别,
3、工资 from 职工,3.1.3 投影查询(P66),有时并不需要将所有的列都显示出来,投影查询就是允许用户显示所需要的列。如:use 企业销售管理系统 select 职工号,姓名,工资 from 职工,3.1.4 条件查询(P66),Where子句是在使用select语句进行查询时最重要的子句,在where子句中指出了检索的条件,系统进行检索时将按照这些指定的条件对记录进行检索,找出符合条件的记录。在SQL中提供了各种运算符和关键字来实现搜索条件,其中运算符分为比较运算符与逻辑运算符,关键字有in、like、betweenand、is null、is not null等。,3.1.4.1 比
4、较运算符(P67),比较运算符在where字句中使用非常普遍,几乎所有的条件查询都要用到比较运算符。如67页表3-1所列出的比较运算符。,数字的比较,显示订单金额大于10000元的订单信息,执行下面的代码:use 企业销售管理系统 select*from 订购单 where 金额10000,字符串比较,纯英文字符串的比较按照字典顺序进行,先比较第一个字母在字典顺序中的位置,位置在前的字符小于位置在后面的字符,若第一个字符相同则继续比较第二个字符,直到得出比较结果。执行下面的代码:use 企业销售管理系统select*from 订购单where 订购单号or3,日期时间的比较,比较方法按照年、月
5、、日、小时、分钟、秒进行比较。执行下面的代码:use 企业销售管理系统select*from 订购单where 订购日期2004-09-01,3.1.4.2 逻辑运算符(P69),SQL中的逻辑运算符共有3种:and(与)or(或)not(非),and(与),and运算符可以连接两个或两个以上的条件,只有当and连接的条件都为真时,and的结果才为真。执行代码如下:use 企业销售管理系统 select*from 职工where 工资1510 and 仓库号!=wh2,or(或),当or连接的条件中有一个为真,or的结果就为真。执行代码如下:use 企业销售管理系统 select*from 职
6、工where 工资2000 or 仓库号=wh1,not(非),表示将原条件取反,如果原条件为真,则加上not后就是假。执行代码如下:use 企业销售管理系统 select*from 职工where not 工资1500,3.1.4.3 运算符的优先级(P70),SQL语句各运算符的优先级如71页图31-2所示执行代码如下:use 企业销售管理系统 select*from 职工where(仓库号=wh1 or 仓库号=wh2)and not 性别=女 and 工资1300 and 工资2100,3.1.5 谓词in查询(P71),使用多个or运算符将使where子句过长,这时使用in就非常方便
7、。使用or运算 select*from 订购单 where 职工号=zg1 or 职工号=zg11 or 职工号=zg15 使用谓词in select*from 订购单where 职工号in(zg1,zg11,zg15),3.1.6 模糊like查询(P72),有时我们不清楚所要查询的确切信息,如不能确定职工的姓名,只知道姓王,该如何查找。SQL提供了like关键字。执行以下代码:use 企业销售管理系统select*from 职工where 姓名like 王%select*from 职工where 姓名not like 王%select*from 职工where 姓名not like 王_,
8、3.1.7 空值null查询(P74),很多情况下表中记录某一列的值是空值。空值null不能使用比较运算符,null代表的是未知,null不代表任何值。执行以下代码:use 企业销售管理系统select*from 职工 where 性别 is nullselect*from 职工 where 性别 is not null,3.1.8 限制范围betweenand查询(P75),限制范围可以使用大于等于号、小于等于号和and运算符三者来完成范围的限制,但使用betweenand结构会使SQL更清楚。use 企业销售管理系统select*from 职工 where 工资=1300 and 工资=1
9、900使用限制范围select*from 职工 where 工资 between 1300 and 1900,3.1.9 消除重复字段数据distinct 查询(P75),使用关键字distinct可以从结果中除去重复的行 use 企业销售管理系统select 工资 from 职工select distinct 工资 from 职工,3.1.10 实例剖析-企业销售管理系统(P76),use 企业销售管理系统 select*from 供应商where 供应商名like%厂%select*from 订购单where 供应商号in(s1,s2,s5)and 金额between 8000 and 1
10、600 and 订购日期=2004-09-02select 仓库号,城市 from 仓库 where 城市 is not null and 面积!=900,3.2 嵌套查询(P77),嵌套查询就是在一个select 查询语句中嵌套了另一个select子查询语句,即一个select查询结果作为另一个查询的一部分。,3.2.1 单表嵌套查询(P77),单表嵌套查询就是在一个select 查询语句中嵌套了另一个select 子查询语句首先利用select语句求出wh1仓库的面积,然后再显示面积大于该值的仓库信息。use 企业销售管理系统select*from 仓库where 面积(select 面积
11、from 仓库where 仓库号=wh1)嵌套查询中也可以带有逻辑运算符、谓词in、like、betweenand等。,3.2.2 多表嵌套查询(P78),多表查询语句就是外层select 语句与内层select语句来源于不同的表use 企业销售管理系统select*from 职工where 仓库号in(select 仓库号from 仓库where 城市=北京)select*from 订购单where 职工号in(select 职工号from 职工where 仓库号in(select 仓库号from 仓库where 城市=北京),3.2.3 实例剖析-企业销售管理系统.实例4(P79),没有职
12、工的仓库信息,就是该仓库中没有职工,哪个仓库号没有在职工表中出现。use 企业销售管理系统select*from 仓库where 仓库号not in(select 仓库号from 职工),实例剖析-企业销售管理系统.实例5(P80),显示供应商名中含有“青岛”两个字的供应商的订购单信息,并且不显示zg15和zg9职工的订单信息。use 企业销售管理系统select*from 订购单where 供应商号in(select 供应商号from 供应商where 供应商名like%青岛%)and 职工号not in(zg15,zg9),实例剖析-企业销售管理系统.实例6(P80),显示至少经手一次订单
13、的职工信息use 企业销售管理系统select*from 职工where 职工号in(select 职工号from 订购单),实例剖析-企业销售管理系统.实例7(P80),显示城市不为空,工资在1200到2100之间,销售金额不在8000到1200之间的职工信息use 企业销售管理系统select*from 职工where 仓库号in(select 仓库号from 仓库where 城市is not null)and 工资between 1300 and 2100 and 职工号in(select 职工号from 订购单where 金额not between 8000 and 12000),实例
14、剖析-企业销售管理系统.实例8(P81),显示工资在职工zg1到zg15工资之间的,职工所在城市为“北京”的职工信息use 企业销售管理系统select*from 职工where 工资between(select 工资from 职工where 职工号=zg1)and(select 工资from 职工where 职工号=zg15)and 仓库号in(select 仓库号from 仓库where 城市=北京),3.3 排顺查询(P81),查询显示结果一般按照数据被添加到表时的顺序显示,可是在实际运用中往往要求按指定的字段进行排序显示。,3.3.1 单级排序(P82),排序的关键字是order by
15、,默认升序,升序关键字asc,降序排列关键字desc。use 企业销售管理系统select*from 职工 order by 工资 desc,3.3.2 多级排序(P82),先按工资降序,再按职工ID升序:use 企业销售管理系统select*from 职工 order by 工资 desc,职工ID asc,3.4 统计函数与别名查询(P83),实际应用中经常需要得到某项值的总和、平均值、最大值等,常用的函数有5个:count()统计个数sum()计算总和avg()计算平均值max()确定最大值min()确定最小值,3.4.1 与列名一起使用的统计函数(P84),use 企业销售管理系统se
16、lect max(工资),min(工资),sum(工资),avg(工资),count(*)from 职工以上查询结果中统计值没有列名,用下面的代码可显示列名:select max(工资)as 最大工资,min(工资)as 最小工资,sum(工资)as 工资总和,avg(工资)as 平均工资,count(*)as 职工人数from 职工,3.4.2 带有统计函数的嵌套查询(P85),use 企业销售管理系统select*from 职工where 工资(select avg(工资)from 职工)select*from 职工where 工资(select avg(工资)from 职工where 仓
17、库号=wh1 or 仓库号=wh2)and 姓名not like%亮%,3.4.3 统计函数字段中添加运算字段(P86),use 企业销售管理系统select*,(select avg(工资)from 职工)as 平均工资from 职工select 职工.*,(select avg(工资)from 职工)as 平均工资from 职工select 职工.*,(select avg(工资)from 职工)as 平均工资,工资-(select avg(工资)from 职工)as 与平均工资的差from 职工,3.5 分组查询(P86),分组查询的关键字是group by 在分组查询中要注意条件的运用
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SQL 标准 培训 教程
链接地址:https://www.desk33.com/p-242258.html