功能强大的语句_第1页
功能强大的语句_第2页
功能强大的语句_第3页
功能强大的语句_第4页
功能强大的语句_第5页
已阅读5页,还剩70页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

功能强大的语句第1页,课件共75页,创作于2023年2月3.1select语句解析与简单SQL语句(P63)从某种意义上说,select语句是数据库结构化查询语言SQL的真正核心。使用select语句可以以多种不同的方式查找数据库中的数据,并且可以显示通过现有数据推导、计算出的数据信息。广西大学信息网络中心卢豫开第2页,课件共75页,创作于2023年2月3.1.1select语句解析(P64)在数据库引擎查询文档中输入64页的代码use企业销售管理系统

select仓库号,城市,面积,创建时间from仓库where面积>800执行该SQL语句,就可以从数据库表“仓库”中挑选出面积大于800的仓库号、城市、面积、创建时间信息。广西大学信息网络中心卢豫开第3页,课件共75页,创作于2023年2月Select语言句的基本格式Select语言句的基本格式是:

select[alldistinct]select_listfromtable_list/view_list[whereconditions][groupbygroup_list][havingconditions][orderbyorder_list]第4页,课件共75页,创作于2023年2月3.1.2选择所有的列(P65)Select语句的第一个子句,即select关键字开头的子句,用于选择进行显示的列,并且可以指定是否显示重复的记录。在数据库引擎输入如下代码:

use企业销售管理系统

select职工ID,职工号,仓库号,姓名,性别,工资from职工广西大学信息网络中心卢豫开第5页,课件共75页,创作于2023年2月3.1.3投影查询(P66)有时并不需要将所有的列都显示出来,投影查询就是允许用户显示所需要的列。如:

use企业销售管理系统

select职工号,姓名,工资from职工广西大学信息网络中心卢豫开第6页,课件共75页,创作于2023年2月3.1.4条件查询(P66)Where子句是在使用select语句进行查询时最重要的子句,在where子句中指出了检索的条件,系统进行检索时将按照这些指定的条件对记录进行检索,找出符合条件的记录。在SQL中提供了各种运算符和关键字来实现搜索条件,其中运算符分为比较运算符与逻辑运算符,关键字有in、like、between…and、isnull、isnotnull等。广西大学信息网络中心卢豫开第7页,课件共75页,创作于2023年2月3.1.4.1比较运算符(P67)比较运算符在where字句中使用非常普遍,几乎所有的条件查询都要用到比较运算符。如67页表3-1所列出的比较运算符。广西大学信息网络中心卢豫开第8页,课件共75页,创作于2023年2月数字的比较显示订单金额大于10000元的订单信息,执行下面的代码:

use企业销售管理系统

select*from订购单where金额>10000第9页,课件共75页,创作于2023年2月字符串比较纯英文字符串的比较按照字典顺序进行,先比较第一个字母在字典顺序中的位置,位置在前的字符小于位置在后面的字符,若第一个字符相同则继续比较第二个字符,直到得出比较结果。执行下面的代码:use企业销售管理系统select*from订购单where订购单号>'or3'第10页,课件共75页,创作于2023年2月日期时间的比较比较方法按照年、月、日、小时、分钟、秒进行比较。执行下面的代码:use企业销售管理系统select*from订购单where订购日期>'2004-09-01'第11页,课件共75页,创作于2023年2月3.1.4.2逻辑运算符(P69)SQL中的逻辑运算符共有3种:and(与)or(或)not(非)广西大学信息网络中心卢豫开第12页,课件共75页,创作于2023年2月and(与)and运算符可以连接两个或两个以上的条件,只有当and连接的条件都为真时,and的结果才为真。执行代码如下:use企业销售管理系统

select*from职工where工资>1510and仓库号!='wh2'第13页,课件共75页,创作于2023年2月or(或)当or连接的条件中有一个为真,or的结果就为真。执行代码如下:use企业销售管理系统

select*from职工where工资>2000or仓库号='wh1'第14页,课件共75页,创作于2023年2月not(非)表示将原条件取反,如果原条件为真,则加上not后就是假。执行代码如下:use企业销售管理系统

select*from职工wherenot工资>1500第15页,课件共75页,创作于2023年2月3.1.4.3运算符的优先级(P70)SQL语句各运算符的优先级如71页图31-2所示执行代码如下:use企业销售管理系统select*from职工where(仓库号='wh1'or仓库号='wh2')andnot性别='女'and工资>1300and工资<2100

广西大学信息网络中心卢豫开第16页,课件共75页,创作于2023年2月3.1.5谓词in查询(P71)使用多个or运算符将使where子句过长,这时使用in就非常方便。使用or运算

select*from订购单

where职工号='zg1'or职工号='zg11'or职工号='zg15'

使用谓词in

select*from订购单where职工号in('zg1','zg11','zg15')广西大学信息网络中心卢豫开第17页,课件共75页,创作于2023年2月3.1.6模糊like查询(P72)有时我们不清楚所要查询的确切信息,如不能确定职工的姓名,只知道姓’王’,该如何查找。SQL提供了like关键字。执行以下代码:use企业销售管理系统select*from职工where姓名like'王%'select*from职工where姓名notlike'王%'select*from职工where姓名notlike'王_'广西大学信息网络中心卢豫开第18页,课件共75页,创作于2023年2月3.1.7空值null查询(P74)很多情况下表中记录某一列的值是空值。空值null不能使用比较运算符,null代表的是未知,null不代表任何值。执行以下代码:use企业销售管理系统select*from职工where性别isnullselect*from职工where性别isnotnull广西大学信息网络中心卢豫开第19页,课件共75页,创作于2023年2月3.1.8限制范围between…and查询(P75)限制范围可以使用大于等于号、小于等于号和and运算符三者来完成范围的限制,但使用between…and结构会使SQL更清楚。use企业销售管理系统select*from职工where工资>=1300and工资<=1900使用限制范围select*from职工

where工资

between1300and1900广西大学信息网络中心卢豫开第20页,课件共75页,创作于2023年2月3.1.9消除重复字段数据distinct查询(P75)使用关键字distinct可以从结果中除去重复的行use企业销售管理系统select工资from职工selectdistinct工资from职工广西大学信息网络中心卢豫开第21页,课件共75页,创作于2023年2月3.1.10实例剖析----企业销售管理系统(P76)use企业销售管理系统

select*from供应商where供应商名like'%厂%'

select*from订购单where供应商号in('s1','s2','s5')and金额between8000and1600and订购日期>='2004-09-02‘select仓库号,城市from仓库where城市isnotnulland面积!=900广西大学信息网络中心卢豫开第22页,课件共75页,创作于2023年2月3.2嵌套查询(P77)嵌套查询就是在一个select查询语句中嵌套了另一个select子查询语句,即一个select查询结果作为另一个查询的一部分。广西大学信息网络中心卢豫开第23页,课件共75页,创作于2023年2月3.2.1单表嵌套查询(P77)单表嵌套查询就是在一个select查询语句中嵌套了另一个select子查询语句首先利用select语句求出wh1仓库的面积,然后再显示面积大于该值的仓库信息。use企业销售管理系统select*from仓库where面积>(select面积from仓库where仓库号='wh1')嵌套查询中也可以带有逻辑运算符、谓词in、like、between…and等。广西大学信息网络中心卢豫开第24页,课件共75页,创作于2023年2月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城市='北京'))广西大学信息网络中心卢豫开第25页,课件共75页,创作于2023年2月3.2.3实例剖析----企业销售管理系统….实例4(P79)没有职工的仓库信息,就是该仓库中没有职工,哪个仓库号没有在职工表中出现。use企业销售管理系统select*from仓库where仓库号notin(select仓库号from职工)广西大学信息网络中心卢豫开第26页,课件共75页,创作于2023年2月实例剖析----企业销售管理系统….实例5(P80)显示供应商名中含有“青岛”两个字的供应商的订购单信息,并且不显示zg15和zg9职工的订单信息。use企业销售管理系统select*from订购单where供应商号in(select供应商号from供应商where供应商名like'%青岛%')and职工号notin('zg15','zg9')第27页,课件共75页,创作于2023年2月实例剖析----企业销售管理系统….实例6(P80)显示至少经手一次订单的职工信息use企业销售管理系统select*from职工where职工号in(select职工号from订购单)第28页,课件共75页,创作于2023年2月实例剖析----企业销售管理系统….实例7(P80)显示城市不为空,工资在1200到2100之间,销售金额不在8000到1200之间的职工信息use企业销售管理系统select*from职工where仓库号in(select仓库号from仓库where城市isnotnull)and工资between1300and2100and职工号in(select职工号from订购单where金额notbetween8000and12000)第29页,课件共75页,创作于2023年2月实例剖析----企业销售管理系统….实例8(P81)显示工资在职工zg1到zg15工资之间的,职工所在城市为“北京”的职工信息use企业销售管理系统select*from职工where工资between(select工资from职工where职工号='zg1')and(select工资from职工where职工号='zg15')and仓库号in(select仓库号from仓库where城市='北京')第30页,课件共75页,创作于2023年2月3.3排顺查询(P81)查询显示结果一般按照数据被添加到表时的顺序显示,可是在实际运用中往往要求按指定的字段进行排序显示。广西大学信息网络中心卢豫开第31页,课件共75页,创作于2023年2月3.3.1单级排序(P82)排序的关键字是orderby,默认升序,升序关键字asc,降序排列关键字desc。use企业销售管理系统select*from职工orderby工资desc广西大学信息网络中心卢豫开第32页,课件共75页,创作于2023年2月3.3.2多级排序(P82)先按工资降序,再按职工ID升序:use企业销售管理系统select*from职工orderby工资desc,职工IDasc广西大学信息网络中心卢豫开第33页,课件共75页,创作于2023年2月3.4统计函数与别名查询(P83)实际应用中经常需要得到某项值的总和、平均值、最大值等,常用的函数有5个:count()……统计个数sum()……计算总和avg()……计算平均值max()……确定最大值min()……确定最小值广西大学信息网络中心卢豫开第34页,课件共75页,创作于2023年2月3.4.1与列名一起使用的统计函数(P84)use企业销售管理系统selectmax(工资),min(工资),sum(工资),avg(工资),count(*)from职工以上查询结果中统计值没有列名,用下面的代码可显示列名:selectmax(工资)as最大工资,min(工资)as最小工资,sum(工资)as工资总和,avg(工资)as平均工资,count(*)as职工人数from职工广西大学信息网络中心卢豫开第35页,课件共75页,创作于2023年2月3.4.2带有统计函数的嵌套查询(P85)use企业销售管理系统select*from职工where工资>(selectavg(工资)from职工)select*from职工where工资>(selectavg(工资)from职工where仓库号='wh1'or仓库号='wh2')and姓名notlike'%亮%'广西大学信息网络中心卢豫开第36页,课件共75页,创作于2023年2月3.4.3统计函数字段中添加运算字段(P86)use企业销售管理系统select*,(selectavg(工资)from职工)as平均工资from职工select职工.*,(selectavg(工资)from职工)as平均工资from职工select职工.*,(selectavg(工资)from职工)as平均工资,工资-(selectavg(工资)from职工)as与平均工资的差from职工广西大学信息网络中心卢豫开第37页,课件共75页,创作于2023年2月3.5分组查询(P86)分组查询的关键字是groupby在分组查询中要注意条件的运用,分组之前的条件要用where,分组之后的条件要用having广西大学信息网络中心卢豫开第38页,课件共75页,创作于2023年2月3.5.1groupby分组查询(P86)use企业销售管理系统selectmax(工资)as最大工资,min(工资)as最小工资,sum(工资)as工资总和,avg(工资)as平均工资,count(*)as职工人数from职工groupby仓库号广西大学信息网络中心卢豫开第39页,课件共75页,创作于2023年2月分组查询中带有逻辑运算符分组查询中带有逻辑运算符、谓词in、like、between…end等首先用select求出职工zg1的工资,然后再分组显示统计信息。use企业销售管理系统selectmax(工资)as最大工资,min(工资)as最小工资,sum(工资)as工资总和,avg(工资)as平均工资,count(*)as职工人数from职工where工资>(select工资from职工where职工号='zg1')groupby仓库号第40页,课件共75页,创作于2023年2月3.5.2带有having的分组查询(P87)分组之前的条件要用where关键字,而分组之后的条件要用having关键字use企业销售管理系统selectmax(工资)as最大工资,min(工资)as最小工资,sum(工资)as工资总和,avg(工资)as平均工资,count(*)as职工人数from职工groupby仓库号

havingavg(工资)>1760广西大学信息网络中心卢豫开第41页,课件共75页,创作于2023年2月在分组查询的having条件中带有逻辑运算符在分组查询的having条件中带有逻辑运算符、谓词in、like、between…anduse企业销售管理系统select仓库号,max(工资)as最大工资,min(工资)as最小工资,sum(工资)as工资总和,avg(工资)as平均工资,count(*)as职工人数from职工groupby仓库号havingavg(工资)>1760andmax(工资)-min(工资)between380and800第42页,课件共75页,创作于2023年2月3.5.3带有分组的嵌套查询

(P88)use企业销售管理系统select*from仓库where仓库号in(select仓库号from职工groupby仓库号havingmax(工资)-min(工资)between380and800)广西大学信息网络中心卢豫开第43页,课件共75页,创作于2023年2月3.5.4内外层嵌套实现分组功能(P88)显示不同职工经手订单金额最大的订单信息use企业销售管理系统selecta.*from订购单

awhere金额=(selectmax(金额)from订购单where职工号=a.职工号)广西大学信息网络中心卢豫开第44页,课件共75页,创作于2023年2月3.5.5在分组查询字段中添加运算字段(P89)在职工表中添加职工所在仓库的平均工资值字段,就可以利用平均字段进行运算,大大提高编程速度。use企业销售管理系统selecta.*,(selectavg(工资)from职工where仓库号=a.仓库号)as所在仓库的平均工资

from职工

a广西大学信息网络中心卢豫开第45页,课件共75页,创作于2023年2月在分组查询字段中添加运算字段在select查询中,还可以计算出每名职工的工资与职工所在仓库的平均工资之差use企业销售管理系统selecta.*,(selectavg(工资)from职工where仓库号=a.仓库号)as所在仓库的平均工资,工资-(selectavg(工资)from职工where仓库号=a.仓库号)as与所在仓库平均工资之差from职工a第46页,课件共75页,创作于2023年2月3.6谓词与量词查询(P90)谓词in与notin,exists与notexists这两个谓词实现的功能相同,只是写法不同。常用量词有any、all、some,any和some是同义词广西大学信息网络中心卢豫开第47页,课件共75页,创作于2023年2月3.6.1exits谓词查询(P90)用exists谓词实现use企业销售管理系统select*from仓库wherenotexists(select*from职工where仓库号=仓库.仓库号)用in谓词实现select*from仓库where仓库号notin(select仓库号from职工)查询结果相同广西大学信息网络中心卢豫开第48页,课件共75页,创作于2023年2月3.6.2any量词查询(P91)用any量词实现use企业销售管理系统select*from职工where工资>=any(select工资from职工where仓库号='wh2')用统计函数实现select*from职工where工资>=(selectmin(工资)from职工where仓库号=‘wh2’)查询结果相同广西大学信息网络中心卢豫开第49页,课件共75页,创作于2023年2月3.6.3all量词查询(P92)all量词查询要求查询中所有行都使结果为真时结果才为真用all量词实现use企业销售管理系统select*from职工where工资>=all(select工资from职工where仓库号='wh1')用统计函数实现select*from职工where工资>=(selectMAX(工资)from职工where仓库号='wh1')结果相同广西大学信息网络中心卢豫开第50页,课件共75页,创作于2023年2月3.7显示部分记录的top查询(P94)在编程中,有时只需要显示满足条件的几条记录,这时可以使用top关键字。可以直接使用top数字显示指定条数记录,也可以使用top数字percent显示满足条件记录的前百分之几条记录。use企业销售管理系统selecttop3*from职工

orderby工资

desc广西大学信息网络中心卢豫开第51页,课件共75页,创作于2023年2月实例10显示订单金额最低的前40%条订单信息use企业销售管理系统selecttop40percent*from订购单

orderby金额

asc第52页,课件共75页,创作于2023年2月3.8保存查询(P95)利用into语句可以把查询结果保存成一张新表。use企业销售管理系统select*into职工备份

from职工生成一张新表,表名是“职工备份”。广西大学信息网络中心卢豫开第53页,课件共75页,创作于2023年2月3.9集合的并运算(P95)SQL支持集合的并运算(union),即可以将两个select语句的查询结果通过并运算合并成一个查询结果。为了进行并运算,要求这样的两个查询具有相同的字段个数,对应的字段值要出自同一个值域,即具有相同的数据类型和取值范围。use企业销售管理系统select*from仓库where城市='北京'unionselect*from仓库where城市='上海'广西大学信息网络中心卢豫开第54页,课件共75页,创作于2023年2月3.10集合的交运算(P96)SQL支持集合的交运算(intersect),可以将两个select语句的查询结果通过交运算合并成一个查询结果。为了进行并运算,要求这样的两个查询具有相同的字段个数,对应的字段值要出自同一个值域,即具有相同的数据类型和取值范围。use企业销售管理系统select仓库号from仓库intersect仓库号from职工广西大学信息网络中心卢豫开第55页,课件共75页,创作于2023年2月3.11连接查询(P96)连接就是将多个表中的数据结合到一起的查询,即可以在一个select语句中完成从多个表中查找和处理的数据。使用连接的列必须具有相同的数据类型和相同的意义广西大学信息网络中心卢豫开第56页,课件共75页,创作于2023年2月3.11.1笛卡尔积(P97)从原理上说,连接首先形成表的笛卡儿集,即形成用于连接的表中所有行的组合。use企业销售管理系统select*from职工,仓库广西大学信息网络中心卢豫开第57页,课件共75页,创作于2023年2月3.11.2多表连接(P97)在进行多表连接时,一定要注意连接条件。use企业销售管理系统select*from职工,仓库where职工.仓库号=仓库.仓库号广西大学信息网络中心卢豫开第58页,课件共75页,创作于2023年2月3.12超连接查询(P98)超连接查询必须有两张或两张以上的表。超连接查询包括4种:内连接查询、左连接查询、右连接查询、全连接查询。可以把不满足条件的记录以null来显示。广西大学信息网络中心卢豫开第59页,课件共75页,创作于2023年2月3.12.1内连接(P98)只有满足连接条件的记录才出现在查询结果中超连接select仓库.仓库号,职工号,城市,面积,工资from仓库innerjoin职工on职工.仓库号=仓库.仓库号and面积>600普通连接select仓库.仓库号,职工号,城市,面积,工资from职工,仓库where职工.仓库号=仓库.仓库号and面积>600广西大学信息网络中心卢豫开第60页,课件共75页,创作于2023年2月3.12.2左连接(P99)除满足连接条件的记录外,第一张表中不满足条件的记录也出现在查询结果集中。use企业销售管理系统select仓库.仓库号,职工号,城市,面积,工资from仓库leftjoin职工on职工.仓库号=仓库.仓库号and面积>600广西大学信息网络中心卢豫开第61页,课件共75页,创作于2023年2月3.12.3右连接(P100)除满足连接条件的记录外,第二张表中不满足条件的记录也出现在查询结果集中。use企业销售管理系统select仓库.仓库号,职工号,城市,面积,工资from仓库rightjoin职工on职工.仓库号=仓库.仓库号and面积>600广西大学信息网络中心卢豫开第62页,课件共75页,创作于2023年2月3.12.4全连接(P100)除满足连接条件的记录外,两张表中不满足连接条件的记录也出现在查询结果集中。use企业销售管理系统select仓库.仓库号,职工号,城市,面积,工资from仓库fulljoin职工on职工.仓库号=仓库.仓库号and面积>600广西大学信息网络中心卢豫开第63页,课件共75页,创作于2023年2月3.12.5多表超连接(P101)要显示的字段来源于三张表,仓库表、职工表、订购单use企业销售管理系统select仓库.仓库号,职工.职工号,城市,面积,工资,金额from仓库leftjoin职工on职工.仓库号=仓库.仓库号rightjoin订购单on职工.职工号=订购单.职工号and面积>600广西大学信息网络中心卢豫开第64页,课件共75页,创作于2023年2月3.1.3SQL操作功能(P101)SQL操作功能主要包括对数据的插入、删除、更新三个方面的内容。广西大学信息网络中心卢豫开第65页,课件共75页,创作于2023年2月3.13.1插入语句(P102)向数据表中插入数据,语法格式如下:insertintoTablename[(column1,column2….)]values(value1,value2…)方括号为可选,指表的列名(字段名)。若列出了表的列名,在values中列出的添加的数据,其顺序必须与列出的列名的排列位置相对应。若没有列出表的列名,在values中列出的添加数据的顺序必须与表中列的顺序相对应,尤其要注意数据类型的一致。广西大学信息网络中心卢豫开第66页,课件共75页,创作于2023年2月3.13.1.1指定所有列(P102)列出字段名

use企业销售管理系统

insertinto仓库(仓库号,城市

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论