关系数据库标准语言SQ_精品文档PPT格式课件下载.ppt

上传人:b****2 文档编号:15444777 上传时间:2022-10-31 格式:PPT 页数:68 大小:288KB
下载 相关 举报
关系数据库标准语言SQ_精品文档PPT格式课件下载.ppt_第1页
第1页 / 共68页
关系数据库标准语言SQ_精品文档PPT格式课件下载.ppt_第2页
第2页 / 共68页
关系数据库标准语言SQ_精品文档PPT格式课件下载.ppt_第3页
第3页 / 共68页
关系数据库标准语言SQ_精品文档PPT格式课件下载.ppt_第4页
第4页 / 共68页
关系数据库标准语言SQ_精品文档PPT格式课件下载.ppt_第5页
第5页 / 共68页
点击查看更多>>
下载资源
资源描述

关系数据库标准语言SQ_精品文档PPT格式课件下载.ppt

《关系数据库标准语言SQ_精品文档PPT格式课件下载.ppt》由会员分享,可在线阅读,更多相关《关系数据库标准语言SQ_精品文档PPT格式课件下载.ppt(68页珍藏版)》请在冰豆网上搜索。

关系数据库标准语言SQ_精品文档PPT格式课件下载.ppt

SELECT仓库.*FROM仓库,职工;

WHERE仓库.仓库号=职工.仓库号;

GROUPBY仓库.仓库号HAVINGAVG(工资)=1230nORDERBY用来对查询结果进行排序.如查询仓库的所有信息,并按面积排序qSELECT*FROM仓库ORDERBY面积1、简单查询、简单查询例4.1从职工关系中检索所有工资值分析分析:

关系指二维表,工资是要显示的结果字段,没有条件。

方法方法:

把信息插入SQL语句。

结果表示结果表示:

SELECT工资FROM职工SELECTDISTINCT工资FROM职工语句说明语句说明:

SELECT:

字段名(或查询的结果)FROM:

来源于哪张表DISTINCT:

是否要去掉等值的字段(即查询结果中的重复记录)。

n例4.2检索仓库关系中的所有元组SELE*FROM仓库*:

是通配符,表示仓库表中的所有字段.在联接查询里,由于查询来源是两个或多个表,这时就需要用表名来限定*,如职工.*表示职工表里的所有字段.等同于:

SELECT仓库号,城市,面积FROM仓库n例4.3:

检索工资多于1230元的职工号条件:

工资多于1230等价于工资1230显示字段:

职工号来源:

职工表SELECT职工号FROM职工WHERE工资1230例:

4.4检索哪些仓库有工资多于1210元的职工分析:

工资多于1210元等价于工资1210仓库:

是要显示的字段信息,用仓库号来表示.SELEDIST仓库号FROM职工WHERE工资1210例:

4.5找出在仓库“WH1”或“WH2”工作,并且工资少于1250元的职工号条件:

(仓库号=“WH1”OR仓库号=“WH2”)AND工资1250语句:

SELE职工号FROM职工WHERE;

(仓库号=“WH1”OR仓库号=“WH2”);

AND工资1250“;

”:

续行符号2、连接查询连接查询【说明】在一个数据库中的多个表之间一般都存在着某些联系,在一个查询语句中同时涉及到两个或两个以上的表时,这种查询称之为连接查询(也称为多表查询)。

在多表之间查询必须处理表与表之间的连接关系。

SELECTALL|DISTINCTFROM,.WHERE简单的连接查询n针对多张表,一张表的结果要依靠另一张表为条件,才能查出.n把两张表联接起来,形成逻辑上的一张表.n技巧:

找两张表之间的公共字段及联接条件n结构:

SELEFROM表1,表2WHERE;

联接条件(或者两张表的公共字段)AND;

联接条件:

表名.字段名(或者表的别名.字段名)n例4.6找出工资多于1230元的职工号和他们所在城市.注意:

一张表查询不能完成,结果需要两张表,职工表只有职工号,而仓库表有中只有城市.他们的公共字段为仓库号.联接条件:

职工.仓库号=仓库.仓库号(只要是联接查询,都要写联接条件,所以一般写完查询来源,就接着写联接条件,再写其他条件,写完其他条件再写联接条件也行)一般条件:

工资1230两张表:

职工,仓库显示字段:

职工号,城市语句:

SELE职工号,城市FROM职工,仓库;

WHERE(职工.仓库号=仓库.仓库号)AND(工资1230)n例4.7找出工作在面积大于400的仓库的职工号以及这些职工工作所在的城市.分析条件:

面积400联接条件:

(职工.仓库号=仓库.仓库号)查询涉及表:

仓库,职工查询结果字段:

SELE职工号,城市FROM仓库,职工WHERE;

(面积400)AND(职工.仓库号=仓库.仓库号)3、嵌套查询n外查询的条件来自内查询的结果n在SQL语句中,一个SELECTFROMWHERE语句称为一个查询块。

将一个查询块嵌套在另一个查询块的WHERE子句或HAVING短语的条件中的查询称为嵌套查询或子查询。

nIN:

属于关系,返回多个值nNOTIN:

属于关系n联接条件:

公共字段名INSELE公共字段名(相当于联接中条件:

表1.公共字段名=表2.公共字段名)例4.8哪些城市至少有一个仓库的职工工资为1250元?

SELE城市FROM仓库WHERE仓库号IN;

(SELE仓库号FROM职工WHERE工资=1250)IN:

属于关系,返回多个值注意:

仓库号IN(SELE仓库号相当于连接的条件:

仓库.仓库号=职工.仓库号例4.9查询所有职工的工资都多于1210元的仓库的信息.分析:

从题中可看出,相当于查找没有一个职工的工资少于或等于1210元的仓库信息SELE*FROM仓库WHERE仓库号NOT;

IN(SELE仓库号FROM工资=1210)分析没有错,但实际结果错了。

应该为SELE*FROM仓库WHERE仓库号NOTIN;

(SELE仓库号FROM工资WHERE工资=1210)AND仓库号IN(SELE仓库号FROM职工)例4.10找出和职工E4工资相同的所有职工.SELE职工号FROM职工WHERE工资=(SELE工资FROM职工WHERE职工号=“E4”)注意:

=与IN之间的关系,等号可以用IN来替换,而IN不能用=替换=:

返回的值是一个具体的值IN:

返回的是多个值4、几个特殊运算符BETWEENAND两者之间(包含两者在内)LIKE:

匹配或者含有!

=,:

不等于注意:

通配符(%和-):

%代表多个字符,-单代表单个字符.而在我们的第三章用*代表多个,?

代表单个,不能用(*和?

)例4.11检索出工资在1220元到1240元范围的职工信息.SELE*FROM职工WHERE工资BETWEEN1220AND1240或者SELE*FROM职工WHERE(工资=1210)AND(工资=1240)例4.12从供应商关系中检索出全部公司的信息,不工厂或其它供应商的信息.SELE*FROM供应商WHERELIKE”%公司”例4.13找出不在北京的全部供应商信息.SELECT*FROM供应商WHERE地址!

=“北京”或者SELE*FROM供应商WHERENOT(地址=“北京”)注:

地址!

=“北京”与NOT(地址=“北京”)等价,只是表达方式不同五、排序(重点)ORDERBYASC/DESCASC升序,如果排序字段后缺省不写,则默认按升序排序.DESC降序例4.14按职工的工资值升序检索出全部职工信息.SELE*FROM职工ORDERBY工资ASC例4.15先按仓库号排序,再按工资排序并输出全部职工信息。

注:

这句话可这样叙述,对职工表的仓库号进行排序,如果仓库号相同再按工资排序SELE*FROM职工ORDERBY仓库号DESC,工资注:

ORDEBY不能用在子查询中,BY的后面直接跟上需要排序的字段名,如果是对两个字段进行排序,字段名之间用逗号隔开.6、简单的计算查询SQL不仅具有一般的检索能力,而且还有计算方式的检索用于计算检索的函数:

COUNT()-计数SUM()-求和AVG()-求平均值MAX()-求最大值MIN()-求最小值查询产生新字段查询中的新字段查询中的新字段:

在查询的结果中多出一个统计或计算的字段定义格式定义格式:

SELESUM(工资)AS总工资总工资FROM职工例例:

SELECTAVG(工资)AS平均工资FROM职工例例:

SELECTCOUNT(职工号)AS职工个数FROM职工例4.16找出供应商所在地的数目SELECOUNT(DIST地址)FROM供应商注:

一般在使用COUNT()时使用DISTINCT例4.17求支付的工资总数SELESUM(工资)FROM职工例4.18求北京和上海的仓库职工的工资总和SELESUM(工资)FROM职工,仓库WHERE(城市=“北京”OR城市=“上海”)AND(职工.仓库号=仓库.仓库号)SELESUM(工资)FROM职工WHERE仓库号IN(SELE仓库号FROM仓库WHERE城市=“北京”OR城市=“上海”)例4.19求所有职工的工资都多于1210元的仓库的平均面积.SELEAVG(面积)AS平均面积FROM仓库WHERE仓库号notIN(SELE仓库号FROM职工WHERE工资=1210)and仓库号IN(SELE仓库号FROM职工)例4.20求在WH2仓库工作的职工的最高工资值.SELEMAX(工资)FROM职工WHERE仓库号=“WH2”例:

求在广州工作的职工数SELECTCOUNT(DISTINCT职工号)FROM职工,仓库WHERE职工.仓库号=仓库.仓库号AND城市=广州“SELECTCOUNT(DISTINCT职工号)FROM职工WHERE仓库号IN(SELECT仓库FROM仓库WHERE城市=广州)7、分组与计算查询格式格式:

GROUPBYHAVING什么时候使用分组什么时候使用分组:

需要统计统计、计算计算每个仓库、每个职工,每个学生等含有“每个每个”提示信息时用分组字段分组字段:

如每个职工就是职工号,每个学生就是学生的学号限定条件:

至少选修两门以课,至少两个职工GROUPBY一般跟在WHERE后,如果没有条件就跟在FROM之后例4.21求每个仓库的职工的平均工资SELE仓库号,AVG(工资)FROM职工GROUPBY仓库号例4.22求至少有两个职工的每个仓库的平均工资SELE仓库号,COUNT(*),AVG(工资)FROM职工GROUPBY仓库号HAVINGCOUNT(*)=2(这里的*相当于职工号)注:

W

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 工作计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1