版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、功能强大的语句第1页,共75页,2022年,5月20日,14点43分,星期一3.1 select 语句解析与简单SQL语句 (P63)从某种意义上说,select语句是数据库结构化查询语言SQL的真正核心。使用select语句可以以多种不同的方式查找数据库中的数据,并且可以显示通过现有数据推导、计算出的数据信息。广西大学信息网络中心 卢豫开第2页,共75页,2022年,5月20日,14点43分,星期一3.1.1 select 语句解析 (P64)在数据库引擎查询文档中输入64页的代码 use 企业销售管理系统 select 仓库号,城市,面积,创建时间from 仓库where 面积800执行该
2、SQL语句,就可以从数据库表“仓库”中挑选出面积大于800的仓库号、城市、面积、创建时间信息。广西大学信息网络中心 卢豫开第3页,共75页,2022年,5月20日,14点43分,星期一Select语言句的基本格式Select语言句的基本格式是: select all distinct select_list from table_list/view_list where conditions group by group_list having conditions order by order_list第4页,共75页,2022年,5月20日,14点43分,星期一3.1.2 选择所有的列 (
3、P65)Select 语句的第一个子句,即select关键字开头的子句,用于选择进行显示的列,并且可以指定是否显示重复的记录。在数据库引擎输入如下代码: use 企业销售管理系统 select 职工ID,职工号,仓库号,姓名,性别,工资 from 职工广西大学信息网络中心 卢豫开第5页,共75页,2022年,5月20日,14点43分,星期一3.1.3 投影查询 (P66)有时并不需要将所有的列都显示出来,投影查询就是允许用户显示所需要的列。如: use 企业销售管理系统 select 职工号,姓名,工资 from 职工广西大学信息网络中心 卢豫开第6页,共75页,2022年,5月20日,14点
4、43分,星期一3.1.4 条件查询 (P66)Where子句是在使用select语句进行查询时最重要的子句,在where子句中指出了检索的条件,系统进行检索时将按照这些指定的条件对记录进行检索,找出符合条件的记录。在SQL中提供了各种运算符和关键字来实现搜索条件,其中运算符分为比较运算符与逻辑运算符,关键字有in、like、betweenand、is null、is not null等。广西大学信息网络中心 卢豫开第7页,共75页,2022年,5月20日,14点43分,星期一3.1.4.1 比较运算符 (P67)比较运算符在where字句中使用非常普遍,几乎所有的条件查询都要用到比较运算符。如
5、67页表3-1所列出的比较运算符。广西大学信息网络中心 卢豫开第8页,共75页,2022年,5月20日,14点43分,星期一数字的比较显示订单金额大于10000元的订单信息,执行下面的代码: use 企业销售管理系统 select * from 订购单 where 金额10000第9页,共75页,2022年,5月20日,14点43分,星期一字符串比较纯英文字符串的比较按照字典顺序进行,先比较第一个字母在字典顺序中的位置,位置在前的字符小于位置在后面的字符,若第一个字符相同则继续比较第二个字符,直到得出比较结果。执行下面的代码:use 企业销售管理系统select * from 订购单where
6、 订购单号or3第10页,共75页,2022年,5月20日,14点43分,星期一日期时间的比较比较方法按照年、月、日、小时、分钟、秒进行比较。执行下面的代码:use 企业销售管理系统select * from 订购单where 订购日期2004-09-01第11页,共75页,2022年,5月20日,14点43分,星期一3.1.4.2 逻辑运算符(P69)SQL中的逻辑运算符共有3种:and(与)or(或)not(非)广西大学信息网络中心 卢豫开第12页,共75页,2022年,5月20日,14点43分,星期一and(与)and运算符可以连接两个或两个以上的条件,只有当and连接的条件都为真时,a
7、nd的结果才为真。执行代码如下: use 企业销售管理系统 select * from 职工where 工资1510 and 仓库号!=wh2第13页,共75页,2022年,5月20日,14点43分,星期一or(或)当or连接的条件中有一个为真,or的结果就为真。执行代码如下: use 企业销售管理系统 select * from 职工where 工资2000 or 仓库号=wh1第14页,共75页,2022年,5月20日,14点43分,星期一not(非)表示将原条件取反,如果原条件为真,则加上not后就是假。执行代码如下: use 企业销售管理系统 select * from 职工where
8、 not 工资1500第15页,共75页,2022年,5月20日,14点43分,星期一3.1.4.3 运算符的优先级(P70) SQL语句各运算符的优先级如71页图31-2所示执行代码如下: use 企业销售管理系统 select * from 职工where (仓库号=wh1 or 仓库号=wh2) and not 性别=女 and 工资1300 and 工资=1300 and 工资=2004-09-02select 仓库号,城市 from 仓库 where 城市 is not null and 面积!=900广西大学信息网络中心 卢豫开第22页,共75页,2022年,5月20日,14点43
9、分,星期一3.2 嵌套查询(P77)嵌套查询就是在一个select 查询语句中嵌套了另一个select子查询语句,即一个select查询结果作为另一个查询的一部分。广西大学信息网络中心 卢豫开第23页,共75页,2022年,5月20日,14点43分,星期一3.2.1 单表嵌套查询 (P77)单表嵌套查询就是在一个select 查询语句中嵌套了另一个select 子查询语句首先利用select语句求出wh1仓库的面积,然后再显示面积大于该值的仓库信息。use 企业销售管理系统select * from 仓库where 面积(select 面积from 仓库where 仓库号=wh1)嵌套查询中也
10、可以带有逻辑运算符、谓词in、like、betweenand等。 广西大学信息网络中心 卢豫开第24页,共75页,2022年,5月20日,14点43分,星期一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 城市=北京)广西大学信息网络中心
11、卢豫开第25页,共75页,2022年,5月20日,14点43分,星期一3.2.3 实例剖析-企业销售管理系统.实例4(P79)没有职工的仓库信息,就是该仓库中没有职工,哪个仓库号没有在职工表中出现。use 企业销售管理系统select * from 仓库where 仓库号not in(select 仓库号from 职工)广西大学信息网络中心 卢豫开第26页,共75页,2022年,5月20日,14点43分,星期一实例剖析-企业销售管理系统.实例5(P80)显示供应商名中含有“青岛”两个字的供应商的订购单信息,并且不显示zg15和zg9职工的订单信息。use 企业销售管理系统select * fr
12、om 订购单where 供应商号in(select 供应商号from 供应商where 供应商名like %青岛%) and 职工号not in(zg15,zg9)第27页,共75页,2022年,5月20日,14点43分,星期一实例剖析-企业销售管理系统.实例6(P80)显示至少经手一次订单的职工信息use 企业销售管理系统select * from 职工where 职工号in(select 职工号from 订购单)第28页,共75页,2022年,5月20日,14点43分,星期一实例剖析-企业销售管理系统.实例7(P80)显示城市不为空,工资在1200到2100之间,销售金额不在8000到12
13、00之间的职工信息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)第29页,共75页,2022年,5月20日,14点43分,星期一实例剖析-企业销售管理系统.实例8(P81)显示工资在职工zg1到zg15工资之间的,职工所在城市为“北京”的职工信息use 企业销售管理系统select * from 职工whe
14、re 工资between (select 工资from 职工where 职工号=zg1)and (select 工资from 职工where 职工号=zg15)and 仓库号in (select 仓库号from 仓库where 城市=北京)第30页,共75页,2022年,5月20日,14点43分,星期一3.3 排顺查询(P81)查询显示结果一般按照数据被添加到表时的顺序显示,可是在实际运用中往往要求按指定的字段进行排序显示。广西大学信息网络中心 卢豫开第31页,共75页,2022年,5月20日,14点43分,星期一3.3.1 单级排序(P82)排序的关键字是order by ,默认升序,升序关
15、键字asc ,降序排列关键字desc。use 企业销售管理系统select * from 职工 order by 工资 desc广西大学信息网络中心 卢豫开第32页,共75页,2022年,5月20日,14点43分,星期一3.3.2 多级排序(P82)先按工资降序,再按职工ID升序:use 企业销售管理系统select * from 职工 order by 工资 desc,职工ID asc广西大学信息网络中心 卢豫开第33页,共75页,2022年,5月20日,14点43分,星期一3.4 统计函数与别名查询(P83)实际应用中经常需要得到某项值的总和、平均值、最大值等,常用的函数有5个:count
16、()统计个数sum() 计算总和avg() 计算平均值max() 确定最大值min() 确定最小值广西大学信息网络中心 卢豫开第34页,共75页,2022年,5月20日,14点43分,星期一3.4.1 与列名一起使用的统计函数(P84)use 企业销售管理系统select max(工资),min(工资),sum(工资),avg(工资),count(*)from 职工以上查询结果中统计值没有列名,用下面的代码可显示列名:select max(工资)as 最大工资,min(工资)as 最小工资,sum(工资)as 工资总和,avg(工资)as 平均工资,count(*)as 职工人数from 职工
17、广西大学信息网络中心 卢豫开第35页,共75页,2022年,5月20日,14点43分,星期一3.4.2 带有统计函数的嵌套查询(P85)use 企业销售管理系统select * from 职工where 工资(select avg(工资)from 职工)select * from 职工where 工资(select avg(工资) from 职工where 仓库号=wh1 or 仓库号=wh2)and 姓名not like %亮%广西大学信息网络中心 卢豫开第36页,共75页,2022年,5月20日,14点43分,星期一3.4.3 统计函数字段中添加运算字段(P86)use 企业销售管理系统s
18、elect *,(select avg(工资) from 职工)as 平均工资from 职工select 职工.*,(select avg(工资) from 职工)as 平均工资from 职工select 职工.*,(select avg(工资) from 职工)as 平均工资,工资-(select avg(工资)from 职工) as 与平均工资的差from 职工广西大学信息网络中心 卢豫开第37页,共75页,2022年,5月20日,14点43分,星期一3.5 分组查询(P86)分组查询的关键字是group by 在分组查询中要注意条件的运用,分组之前的条件要用where,分组之后的条件要用
19、having广西大学信息网络中心 卢豫开第38页,共75页,2022年,5月20日,14点43分,星期一3.5.1 group by分组查询(P86)use 企业销售管理系统select max(工资)as 最大工资,min(工资)as 最小工资,sum(工资)as 工资总和,avg(工资)as 平均工资,count(*)as 职工人数from 职工group by 仓库号广西大学信息网络中心 卢豫开第39页,共75页,2022年,5月20日,14点43分,星期一分组查询中带有逻辑运算符分组查询中带有逻辑运算符、谓词in、like、betweenend等首先用select求出职工zg1的工资,
20、然后再分组显示统计信息。use 企业销售管理系统select max(工资)as 最大工资,min(工资)as 最小工资,sum(工资)as 工资总和,avg(工资)as 平均工资,count(*)as 职工人数from 职工where 工资 (select 工资from 职工where 职工号=zg1)group by 仓库号第40页,共75页,2022年,5月20日,14点43分,星期一3.5.2 带有 having 的分组查询(P87)分组之前的条件要用where关键字,而分组之后的条件要用having关键字use 企业销售管理系统select max(工资)as 最大工资,min(工资
21、)as 最小工资,sum(工资)as 工资总和,avg(工资)as 平均工资,count(*)as 职工人数from 职工group by 仓库号 having avg(工资)1760广西大学信息网络中心 卢豫开第41页,共75页,2022年,5月20日,14点43分,星期一在分组查询的having条件中带有逻辑运算符在分组查询的having条件中带有逻辑运算符、谓词in、like、betweenanduse 企业销售管理系统select 仓库号,max(工资)as 最大工资,min(工资)as 最小工资,sum(工资)as 工资总和,avg(工资)as 平均工资,count(*)as 职工人
22、数from 职工group by 仓库号having avg(工资)1760 and max(工资)-min(工资)between 380 and 800第42页,共75页,2022年,5月20日,14点43分,星期一3.5.3 带有分组的嵌套查询(P88)use 企业销售管理系统select * from 仓库where 仓库号in(select 仓库号from 职工group by 仓库号having max(工资)-min(工资)between 380 and 800)广西大学信息网络中心 卢豫开第43页,共75页,2022年,5月20日,14点43分,星期一3.5.4 内外层嵌套实现分
23、组功能(P88)显示不同职工经手订单金额最大的订单信息use 企业销售管理系统select a.* from 订购单 a where 金额=(select max(金额) from 订购单where 职工号=a.职工号)广西大学信息网络中心 卢豫开第44页,共75页,2022年,5月20日,14点43分,星期一3.5.5 在分组查询字段中添加运算字段(P89)在职工表中添加职工所在仓库的平均工资值字段,就可以利用平均字段进行运算,大大提高编程速度。use 企业销售管理系统select a.*, (select avg(工资) from 职工where 仓库号=a.仓库号) as 所在仓库的平均
24、工资 from 职工 a广西大学信息网络中心 卢豫开第45页,共75页,2022年,5月20日,14点43分,星期一在分组查询字段中添加运算字段在select 查询中,还可以计算出每名职工的工资与职工所在仓库的平均工资之差use 企业销售管理系统select a.*, (select avg(工资) from 职工where 仓库号=a.仓库号) as 所在仓库的平均工资,工资-(select avg(工资) from 职工where 仓库号=a.仓库号)as 与所在仓库平均工资之差from 职工a第46页,共75页,2022年,5月20日,14点43分,星期一3.6 谓词与量词查询(P90)
25、谓词in与not in ,exists与not exists这两个谓词实现的功能相同,只是写法不同。常用量词有any、all、 some,any 和some是同义词广西大学信息网络中心 卢豫开第47页,共75页,2022年,5月20日,14点43分,星期一3.6.1 exits 谓词查询(P90)用exists谓词实现use 企业销售管理系统select * from 仓库where not exists ( select * from 职工where 仓库号=仓库.仓库号)用in谓词实现select * from 仓库where 仓库号not in (select 仓库号from 职工)查询
26、结果相同广西大学信息网络中心 卢豫开第48页,共75页,2022年,5月20日,14点43分,星期一3.6.2 any 量词查询(P91)用any量词实现use 企业销售管理系统select * from 职工where 工资=any(select 工资from 职工where 仓库号=wh2)用统计函数实现select * from 职工where 工资=(select min(工资) from 职工where 仓库号=wh2)查询结果相同广西大学信息网络中心 卢豫开第49页,共75页,2022年,5月20日,14点43分,星期一3.6.3 all 量词查询(P92)all量词查询要求查询中
27、所有行都使结果为真时结果才为真用all量词实现use 企业销售管理系统select * from 职工where 工资=all(select 工资from 职工where 仓库号=wh1)用统计函数实现select * from 职工where 工资=(select MAX(工资) from 职工where 仓库号=wh1)结果相同广西大学信息网络中心 卢豫开第50页,共75页,2022年,5月20日,14点43分,星期一3.7显示部分记录的top查询(P94)在编程中,有时只需要显示满足条件的几条记录,这时可以使用top关键字。可以直接使用top数字显示指定条数记录,也可以使用top数字pe
28、rcent显示满足条件记录的前百分之几条记录。use 企业销售管理系统select top 3 * from 职工order by 工资desc广西大学信息网络中心 卢豫开第51页,共75页,2022年,5月20日,14点43分,星期一实例10显示订单金额最低的前40%条订单信息use 企业销售管理系统select top 40 percent * from 订购单 order by 金额 asc第52页,共75页,2022年,5月20日,14点43分,星期一3.8 保存查询(P95) 利用into语句可以把查询结果保存成一张新表。use 企业销售管理系统select * into 职工备份f
29、rom 职工生成一张新表,表名是“职工备份”。广西大学信息网络中心 卢豫开第53页,共75页,2022年,5月20日,14点43分,星期一3.9 集合的并运算(P95)SQL支持集合的并运算(union),即可以将两个select语句的查询结果通过并运算合并成一个查询结果。为了进行并运算,要求这样的两个查询具有相同的字段个数,对应的字段值要出自同一个值域,即具有相同的数据类型和取值范围。use 企业销售管理系统select * from 仓库where 城市=北京 union select * from 仓库where 城市=上海广西大学信息网络中心 卢豫开第54页,共75页,2022年,5月
30、20日,14点43分,星期一3.10 集合的交运算(P96)SQL支持集合的交运算(intersect),可以将两个select语句的查询结果通过交运算合并成一个查询结果。为了进行并运算,要求这样的两个查询具有相同的字段个数,对应的字段值要出自同一个值域,即具有相同的数据类型和取值范围。use 企业销售管理系统select 仓库号 from 仓库 intersect 仓库号 from 职工广西大学信息网络中心 卢豫开第55页,共75页,2022年,5月20日,14点43分,星期一3.11 连接查询(P96)连接就是将多个表中的数据结合到一起的查询,即可以在一个select 语句中完成从多个表中
31、查找和处理的数据。使用连接的列必须具有相同的数据类型和相同的意义广西大学信息网络中心 卢豫开第56页,共75页,2022年,5月20日,14点43分,星期一3.11.1 笛卡尔积(P97)从原理上说,连接首先形成表的笛卡儿集,即形成用于连接的表中所有行的组合。use 企业销售管理系统select * from 职工,仓库广西大学信息网络中心 卢豫开第57页,共75页,2022年,5月20日,14点43分,星期一3.11.2 多表连接(P97)在进行多表连接时,一定要注意连接条件。use 企业销售管理系统select * from 职工,仓库where 职工.仓库号=仓库.仓库号广西大学信息网络
32、中心 卢豫开第58页,共75页,2022年,5月20日,14点43分,星期一3.12 超连接查询(P98)超连接查询必须有两张或两张以上的表。超连接查询包括4种:内连接查询、左连接查询、右连接查询、全连接查询。可以把不满足条件的记录以null来显示。广西大学信息网络中心 卢豫开第59页,共75页,2022年,5月20日,14点43分,星期一3.12.1 内连接(P98)只有满足连接条件的记录才出现在查询结果中超连接select 仓库.仓库号,职工号,城市,面积,工资from 仓库inner join 职工on 职工.仓库号=仓库.仓库号and 面积600普通连接select 仓库.仓库号,职工
33、号,城市,面积,工资from 职工,仓库where 职工.仓库号=仓库.仓库号and 面积600广西大学信息网络中心 卢豫开第60页,共75页,2022年,5月20日,14点43分,星期一3.12.2 左连接(P99)除满足连接条件的记录外,第一张表中不满足条件的记录也出现在查询结果集中。use 企业销售管理系统select 仓库.仓库号,职工号,城市,面积,工资 from 仓库 left join 职工 on 职工.仓库号=仓库.仓库号 and 面积600广西大学信息网络中心 卢豫开第61页,共75页,2022年,5月20日,14点43分,星期一3.12.3 右连接(P100)除满足连接条件
34、的记录外,第二张表中不满足条件的记录也出现在查询结果集中。use 企业销售管理系统select 仓库.仓库号,职工号,城市,面积,工资 from 仓库 right join 职工 on 职工.仓库号=仓库.仓库号 and 面积600广西大学信息网络中心 卢豫开第62页,共75页,2022年,5月20日,14点43分,星期一3.12.4 全连接(P100)除满足连接条件的记录外,两张表中不满足连接条件的记录也出现在查询结果集中。use 企业销售管理系统select 仓库.仓库号,职工号,城市,面积,工资from 仓库full join 职工on 职工.仓库号=仓库.仓库号and 面积600广西大
35、学信息网络中心 卢豫开第63页,共75页,2022年,5月20日,14点43分,星期一3.12.5 多表超连接(P101)要显示的字段来源于三张表,仓库表、职工表、订购单use 企业销售管理系统select 仓库.仓库号,职工.职工号,城市,面积,工资,金额from 仓库left join 职工on 职工.仓库号=仓库.仓库号right join 订购单on 职工.职工号=订购单.职工号and 面积600广西大学信息网络中心 卢豫开第64页,共75页,2022年,5月20日,14点43分,星期一3.1.3 SQL操作功能(P101)SQL操作功能主要包括对数据的插入、删除、更新三个方面的内容。
36、广西大学信息网络中心 卢豫开第65页,共75页,2022年,5月20日,14点43分,星期一3.13.1 插入语句(P102)向数据表中插入数据,语法格式如下:insert into Tablename (column1,column2.) values (value1,value2)方括号为可选,指表的列名(字段名)。若列出了表的列名,在values中列出的添加的数据,其顺序必须与列出的列名的排列位置相对应。若没有列出表的列名,在values中列出的添加数据的顺序必须与表中列的顺序相对应,尤其要注意数据类型的一致。广西大学信息网络中心 卢豫开第66页,共75页,2022年,5月20日,14点43分,星期一3.13.1.1 指定所有列(P102)列出字段名 use 企业销售管理系统 insert into 仓库(仓库号,城市,面积,创建时间)values (wh6,郑州,800,2005-12-01)不列出字段名 insert into 仓库values (wh7,郑州, 8
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 进修完毕出科心得体会2000字(13篇)
- 板式换热器安装施工方案
- 2025年时尚杂志排版印刷设计制作委托合同3篇
- 课程设计面包板
- 二零二五年度美缝施工项目合同纠纷解决协议4篇
- 2024年新疆安全员C证考试题库附答案
- 二零二五版体育赛事赞助与冠名权合同4篇
- 二零二五年度生态公园施工合同补充协议2篇
- 销售管理什么课程设计
- 2024版离婚民政局离婚协议书
- 拆迁评估机构选定方案
- 床旁超声监测胃残余量
- 上海市松江区市级名校2025届数学高一上期末达标检测试题含解析
- 综合实践活动教案三上
- 《新能源汽车电气设备构造与维修》项目三 新能源汽车照明与信号系统检修
- 2024年新课标《义务教育数学课程标准》测试题(附含答案)
- 医院培训课件:《静脉中等长度导管临床应用专家共识》
- 趣味知识问答100道
- 中国国际大学生创新大赛与“挑战杯”大学生创业计划竞赛(第十一章)大学生创新创业教程
- 钢管竖向承载力表
- 2024年新北师大版八年级上册物理全册教学课件(新版教材)
评论
0/150
提交评论