第四章关系数据库标准语言SQL1PPT推荐.ppt
- 文档编号:14230435
- 上传时间:2022-10-20
- 格式:PPT
- 页数:20
- 大小:294KB
第四章关系数据库标准语言SQL1PPT推荐.ppt
《第四章关系数据库标准语言SQL1PPT推荐.ppt》由会员分享,可在线阅读,更多相关《第四章关系数据库标准语言SQL1PPT推荐.ppt(20页珍藏版)》请在冰豆网上搜索。
,SELECT命令说明:
SELECT:
说明要查询的数据(执行查询操作);
:
指查询结果表中包含的列名;
DISTINCT:
说明要去掉重复的记录;
FROM:
说明要查询的数据来自哪些表,可以对一个或多个基本表或视图进行查询。
WHERE:
说明查询的条件,即选择元组(记录)的条件;
GROUPBY:
用于对查询结果进行分组,可以利用它进行分组汇总;
HAVING:
必须跟随GROUPBY使用,用来限定分组必须满足的条件;
ORDERBY:
用来对查询结果进行排序;
注意:
WHERE短语和HAVING短语区别。
WHERE短语的作用对象是基本表等数据源,而HAVING短语的作用对象是组;
各个短语之间的位置不能随意更改。
有四个表:
职工表,仓库表,订购单表,供应商表,仓库表:
职工表:
仓库号城市面积仓库号职工号工资WH1北京370WH2E11220WH2上海500WH1E31210WH3广州200WH2E41250WH4武汉400WH3E61230WH1E71250,订购单表:
职工号供应商号订购单号订购日期E3S7OR672001/06/23E1S4OR732001/07/28E7S4OR762001/05/25E6NULLOR77NULLE3S4OR792001/06/13E1NULLOR80NULLE3NULLOR90NULLE3S3OR912001/07/13,供应商表:
供应商号供应商名地址S3振华电子厂西安S4华通电子公司北京S6607厂郑州S7爱华电子北京,SELECT-SQL查询示例,1、简单查询:
查询基于一个关系,例1.查询供应商表中地址在北京且供应商号为S7的供应商名。
select供应商名;
from供应商;
where地址=北京and供应商号=s7例2.查询仓库表中面积大于350的仓库信息SELECT*;
FROM仓库;
WHERE面积350,例3.检索哪些仓库有工资多于1210的职工?
SELECTdist仓库号FROM职工;
WHERE工资1210,例4.查询职工表中在仓库“wh1”或“wh2”工作,并且工资少于1250元的职工号SELECT职工号FROM职工;
WHERE工资1250and(仓库号=wh1or;
仓库号=wh2),小结:
前面几个例子在From之后只指定了一个关系(表),即单表查询。
如何查询?
如有where子句,首先根据条件依次检索表中的每一条记录,如果没有,不进行此检索,然后选出满足条件的元组(选择运算),并显示Select子句中指定属性的值(投影运算)。
2、简单联接查询:
基于多个关系的查询,例1.找出工资多于1230元的职工号和他们所在的城市。
SELECT职工号,城市FROM职工,仓库;
WHERE工资1230and(职工.仓库号=仓库.仓库号)结果是:
E4上海E7北京,注:
当From之后的多个关系中含有相同属性名时,必须用关系前缀直接指明属性所属的关系,如职工.仓库号,“.”前面是关系名,后面是属性名。
联接条件,练习:
要求:
检索出向供应商s3发过订购单的职工号和仓库号。
答案:
sele职工.职工号,仓库号from职工,订购单where订购单.供应商号=s3and订购单.职工号=职工.职工号,例1:
哪些城市至少有一个仓库的职工工资为1250元?
select城市from仓库where仓库号in;
(select仓库号from职工where工资=1250)结果是:
北京上海例2:
查询所有职工的工资都多于是1210元的仓库的信息?
select*from仓库where仓库号notin;
(select仓库号from职工where工资=1210)结果是:
wh2上海500wh3广东200wh4武汉400,In:
相当于集合运算符,3.嵌套查询:
结果出自一个关系,相关条件涉及多个关系,错误:
此仓库里没有职工,例2改正:
去掉没有职工的记录,必须再加限制条件。
正确答案如下:
(select仓库号from职工where工资=1210);
and仓库号in(select仓库号from职工),练习:
找出和职工E4挣同样工资的所有职工。
select职工号from职工where工资=;
(select工资from职工where职工号=E4),4.几个特殊运算符,BETWEENAND意思:
在“和之间”例:
检索出工资在1220元到1240元范围内的职工信息。
SELE*FROM职工WHERE工资;
BETWEEN1220AND1240结果:
WH2E11220WH3E61230,等价于:
工资=1220AND工资=1240,运算符LIKE:
字符串匹配运算符。
例:
从供应商关系中检索出全部公司的信息,不要工厂或其他供应商的信息。
SELE*FROM供应商WHERE供应商名LIKE%公司结果:
S4华通公司北京思考:
此题还可以怎么解?
否定运算符:
NOT“不等于”:
!
=,“%”表示若干任意字符,用于查询字段值“*”用于查询字段名,例:
找出不在北京的全部供应商信息。
SELE*FROM供应商WHERE地址!
=北京,5.排序:
将查询结果排序。
短语格式:
ORDERBY字段名1ASC|DESC;
字段名2ASC|DESC注解:
可以按升序(ASC)或降序(DESC)排列,允许按一列或多列排序。
例1按职工的工资值升序检索出全部职工信息。
select*from职工orderby工资,降序:
select*from职工orderby工资desc,例2先按仓库号排序,再按工资排序并输出全部职工信息。
select*from职工orderby仓库号,工资注意:
orderby是对最终的查询结果进行排序,不可以在子查询中使用该短语。
6.简单计算查询,常用计算检索的函数COUNT:
统计表中满足条件的记录个数SUM:
对表中选中记录的全部或指定的数值字段或由指定字段组成的数值表达式累加求和。
AVG:
对表中选中记录的全部或部分数值型字段及其组成的表达式求平均值并显示。
MAX:
对表中选中记录的全部或部分字段及其组成的表达式求最大值并显示。
MIN:
对表中选中记录的全部或部分字段及其组成的表达式求最小值并显示。
注:
以上函数用在SELECT短语中对查询结果进行计算,实例讲解:
例1:
求支付的工资总数selectsum(工资)from职工例2:
求所有职工的工资都多于1210元的仓库的平均面积。
selectavg(面积)from仓库where仓库号notin;
and仓库号in(select仓库号from职工)例3:
找出供应商所在地的数目selectcount(distinct地址)from供应商例4:
求在WH2仓库工作的职工的最高工资值selectMAX(工资)from职工where仓库号=“wh2”,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第四 关系 数据库 标准 语言 SQL1