1、第四章 关系数据库语言SQL(1),海威,本节内容,SQL介绍查询功能几个特殊运算符排序计算查询,SQL是结构化查询语言的缩写,查询是SQL语言的重要组成部分,但不是全部,SQL还包含数据定义、数据操纵和数据控制功能等部分。,SQL语言的特点,SQL是一种一体化的语言,它包括了数据定义、数据查询、数据操纵和数据控制等多方面的功能。SQL语言是一种高度非过程化的语言SQL语言非常简洁SQL语言可以直接以命令方式交互使用, 也可以以程序方式使用,SQL的命令动词,SQL的功能,VF在SQL方面支持的功能,查询功能,SQL语句的基本格式:select 字段名 from 表名 where 条件 gro
2、up by 字段名having 条件 order by 字段名,说明查询条件,用于对查询结果进行排序,说明要查询的数据来自哪些表,说明要查询的数据,用于对查询结果进行分组,用于限定分组的条件,-核心,简单查询,简单查询是基于一个表的查询,其基本形式为:Select 字段名 from 表名 where 条件 例1.从职工关系中检索所有工资值。,Select distinct 工资 from 职工表,去掉查询结果中的重复值用短语distinct,“*”是通配符,代表表中所有的字段。,例2.检索工资多于1230元的元组,select * from 职工表 where 工资1230,例3.给出在仓库W
3、H1或WH2工作,并且工资少于1250元的职工号,由以上例题可以看出,简单查询是基于一个表的查询。其基本形式为:select from where,字段名,表名,条件,职工表,职工号,(仓库号=WH1 OR 仓库号=WH2)AND 工资1230 and 职工表.仓库号=仓库表.仓库号,例7.找出工作在面积大于400的仓库的职工号以及 这些职工工作所在的城市,Select 职工号,城市 from 仓库表,职工表;Where 面积400 and 仓库表.仓库号=职工表.仓库号,习题:检索出向供应商S3发过订购单的职工号和仓库号,select 职工表.职工号,仓库号 ; from 职工表,订购单表;
4、 where 供应商号=S3 and ; 职工表.职工号=订购单表.职工号,连接查询的格式: select 字段名 from 表1,表2; where 题面条件 and ; 表1.公共字段名=表2.公共字段名,当from之后的多个关系中含有相同的属性名时,这时必须用关系前缀直接指定属性所属的关系。,嵌套查询,嵌套查询所要求的结果出自一个关系,但相关的 条件却涉及另外的关系。,例8.哪些仓库中至少有一个职工的仓库信息,Select * from 仓库表 where 仓库号 in;(select 仓库号 from 职工表),in 相当于集合运算符 ,例:找出和职工E4挣同样工资的所有职工 sele
5、ct 职工号 from 职工表 where 工资=; (select 工资 from 职工表 where 职工号=E4),几个特殊运算符,例11.检索出工资在1220元到1240元范围内的职工信息。例12.从供应商关系中检索出全部公司的信息,不要工厂或其他供应商的信息。,between and 表示在和之间,select * from 职工表 where 工资 between 1220 and 1240,工资=1220 and 工资=1240,like是字符串匹配运算符,通配符%表示0个或多个字符,_代表一个字符,select * from 供应商表 where,供应商名 like %公司,几
6、个特殊运算符,例13.找出不在北京的全部供应商信息。,select * from 供应商表 where 地址!=北京,select * from 供应商表 where 地址#北京,select * from 供应商表 where 地址北京,也可以使用not运算符,select * from 供应商表 where not 地址=北京,排 序,对查询结果进行排序格式:order by 字段1asc|desc,字段2asc|desc,例14.按职工的 检索出,工资值升序,全部职工信息,select * from 职工表,order by 工资,asc,例15. 并输出,先按仓库号升序,再按工资升序,
7、全部职工信息,select * from 职工表;,order by 仓库号 asc, 工资 asc,注意:order by 是对最终的查询结果进行排序, 不可以在子查询中使用该短语,简单的计算查询,count()-计数sum()-求和avg()-计算平均值max()-求最大值min()-求最小值,SQL不仅具有一般的检索能力,而且还有计算方式的检索,用于计算检索的函数有:,这些函数可以用在select短语中对查询结果进行计算,例16.找出供应商所在地的数目例17.求支付的工资总数例18.求WH1仓库中职工的平均工资例19.求在WH2仓库工作的职工的最高工资值,select count(distinct 地址) from 供应商表,select sum(工资) from 职工表,select avg(工资) from 职工表 where 仓库号=WH1,select max(工资) from 职工表 where 仓库号=WH2,重命名字段名格式: 原字段名(或函数表达式) as 新字段名,把例19查询的结果字段名改为最高工资,总结,重点SQL全称及功能连接查询几个特殊运算符排序计算查询难点:嵌套查询作业:操作上课讲的例题 第四章SQL(一)练习题,