第五章 关系数据库标准语言SQL.ppt_第1页
第五章 关系数据库标准语言SQL.ppt_第2页
第五章 关系数据库标准语言SQL.ppt_第3页
第五章 关系数据库标准语言SQL.ppt_第4页
第五章 关系数据库标准语言SQL.ppt_第5页
已阅读5页,还剩104页未读 继续免费阅读

下载本文档

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

文档简介

1、第1、5章关系数据库标准语SQL、目录、上一页、下一页、退出、2、牙齿章节要点、5.1SQL语言的特征5.2数据查询5.3数据操作5.4数据定义5.5数据管理、3、SQL是结构化查询语言(Structure查询是SQL语言的重要组成部分因为SQL已成为关系数据库的标准数据语言,所以所有关系数据库管理系统都支持SQL。现在的Visual FoxPro当然在牙齿方面更完美了。5.1 SQL语言功能,4,1.SQL,可以使用集成语言执行数据库任务,包括数据定义、数据查询、数据操作和数据控制等功能。2.SQL语言是一种非常非程序性的语言,不需要循序渐进地告诉计算机如何“做”,只需要说明用户应该做什么。

2、3.SQL语言非常简洁。SQL语言功能非常强大,但只有几个茄子命令。表5.1显示了分类的命令动词。数据祖怀命令select是。数据定义命令CREATE、DROP、ALTER;数据操作命令INSERT、UPDATE、DELETE;数据控制命令GRANT,REVOAE。此外,SQL的语法也很简单。因为接近英语自然语言,所以容易学习和掌握。5.1 SQL语言特性,5,4.SQL语言可以直接与命令交互,也可以嵌入到编程语言中以编程方式使用。目前,许多数据库应用程序开发工具将SQL语言直接集成到自己的语言中,易于使用,Visual ForPro就是这样。大卫亚设、Northern Exposure(美国

3、电视电视剧)、数据库应用程序开发工具、数据库应用程序开发工具)这种使用方式为用户提供了灵活的选择。此外,SQL以不同的方式使用,但SQL语言的语法基础是一致的。Visual ForPro支持SQL中的数据定义、数据查询和数据操作功能,但在具体实施方面也存在一些差异。此外,Visual ForPro本身存在安全控制缺陷,不提供数据控制功能。5.1 SQL语言特征,6,5.2查询功能,数据库中的大多数数据都是用于查询的,因此数据查询是数据库的核心操作。在SQL语言中,查询语言具有查询命令SELECT语句。7,5.2.1(简单查询)基本查询语句格式 SELECT ALL | DISTINCT FRO

4、M 功能无条件查询。说明all:表示显示所有查询记录,包括重复记录。默认值DISTINCT:表示显示没有重复结果的记录。8,实例5.1从职员关系中检索所有薪金值。可选薪金,职员编号自职员(仓库编号=WH1或仓库编号=WH2),15多个表之间的查询必须处理表和表之间的链接。SELECT ALL | DISTINCT FROM,表2 2.WHERE,5.2.2简单的联接查询,16,示例5.6找出工资在1230韩元以上的职工编号和他们所在的城市。这里要查询的职工编号和城市分别来自职工表和仓库表,这种查询一般是通过联接查询实现的。联接查询必须具有联接条件。Sele职员号,城市from职员,仓库;Whe

5、re(薪金1230) and(职员)。仓库编号=仓库。仓库编号),17,18,示例5.7查找在面积大于400的仓库中工作的职员编号和员工工作的城市。Select职员号,城市FROM职员,仓库WHERE(面积400) and(职员)。仓库编号=仓库。仓库编号),19,5.2.3嵌套查询,另一个基于多个关系的查询,这些查询所需的结果来自一个关系,但相关条件包含多个关系。例5.8哪个城市至少有一个仓库的职员的工资是1250元?您需要在仓库表中查看城市信息,祖怀条件是员工表中“薪金”字段的值,因此您可以使用嵌套查询来执行此操作。Select市自仓库WHERE仓库编号IN;(选择仓库编号自职员WHERE

6、薪金=1250)牙齿命令有两个祖怀块。在“内部SELECT-FORM-WHERE祖怀”块中查看的子库存编号值为WH1和WH2,因此在选择时,请查看与起始子库存WHERE相同、20、21、是5.9所有员工的薪金大于1210元的子库存的信息。或者没有职员工资在1210韩元以下的仓库的信息。Select * FROM仓库WHERE仓库编号not IN(选择子库存编号自职员WHERE薪金=1210)内层SELECT-FORM-WHERE祖怀块表示所有员工的薪金低于1210韩元的子库存的子库存编号值集。牙齿集合只有一个“WH1”值。然后在仓库关系中搜索元组的仓库编号属性值不在集合中的每个元组。22,23

7、,如果要求排除还没有员工的仓库,搜索要求可以解释如下。通过搜索,职员工资都在1210韩元以上的仓库的信息,牙齿仓库必须至少有一名员工。(David aser,Northern Exposure,美国电视电视剧,工作)Select * FROM仓库WHERE仓库编号not IN(可选子库存编号自职员WHERE薪金=1210);查找收到薪金的所有员工,如And仓库编号IN(选择仓库编号自职员)、24、25和实例5.10职员E4。选择职工编号自职工WHERE工资=;(选择薪金自职员WHERE职员编号=E4)、26,5.2.4几个茄子特殊运算符、SQL SELECT中使用的几个茄子特殊运算符、BETW

8、EENAND LIKE等示例从5.11到1220韩元不等牙齿问题是可以使用LIKE运算符的字符串匹配查询。Select * FROM提供程序WHERE提供程序名称LIKE“% company”,28,其中LIKE是字符串匹配运算符,通配符“%”表示零个或多个字符,通配符下划线“_”表示一个字符。29,例5.13查找不在北京的所有供应商信息。Select * FROM提供者WHERE位址!=北京,排序30,5.2.5,使用SQL SELECT排序ORDER BY。格式:您可以按order by order _ item ASC DESC,order _ item对查询结果进行排序。31,实例5.

9、14将按员工的薪金升序检索所有职员信息。Select * FROM职员ORDER BY薪金,32,实例5.15首先按仓库编号排序,然后按薪金排序并输出所有职员信息。SELECT * FROM职员ORDER BY仓库编号、薪金、33,5.2.6简单计算祖怀、用于计算搜索的函数包括:计数总计AVG计算平均MAX最大MIN最小值,34,示例5.16查找供应商位置Distinct FROM供应商具有北京、西安和郑州三个茄子地址,因此结果为3。一般COUNT函数必须使用DISTINCT,除非计算关系的元组数。否则,例如,SELECT COUNT(*)FROM供应商提供了供应商关系的唱片数(4)。35,是

10、5.17牙齿支付的工资总额。薪金自员工结果:6160牙齿结果是员工关系的薪金值合计,无论是否存在重复值。如果在此时使用命令,SELECT SUM(DISTINCT工资)FROM员工将得到错误的结果4910。36,实例5.18计算北京和上海的仓库员工的工资总额。SELECT SUM FROM职员WHERE仓库编号IN;(SELECT仓库编号自仓库WHERE城市=“北京”或城市=上海)结果4930,37,实例5.19获取了所有员工工资超过1210韩元的仓库的平均面积。SELECT AVG FROM仓库WHERE仓库编号NOT IN (SELECT仓库编号FROM职员WHERE工资=1210)结果:

11、366.67此处需要注意的是,上述结果计算包括尚未有员工的WH4仓库。要排除没有员工的仓库,必须将上面的门更改为:Select avg FROM仓库WHERE仓库编号not IN(可选子库存编号自职员WHERE薪金=1210);And仓库编号IN(“选择仓库编号自”职员)的结果为350,38,实例5.20获取在WH2仓库中工作的员工的最高薪金值。薪金自员工WHERE仓库编号=WH2结果1250是与MAX函数对应的MIN函数(查找最小值)。例如,获取最低薪金值的命令如下:SELECT MIN(薪金)FROM职员WHERE仓库编号=WH2 ,39,5.2.4排序,您可以在SQL中使用ORDER B

12、Y短语对查询结果排序。格式按ORDER BY ASC | DESC,ASC | DESC例如,按成绩从高到低对学生信息进行排序。SELECT * FROM得分ORDER BY得分DESC,40,5.2.5搜索函数计算的简单计算查询:count -总数avg -平均max计算SELECT SUM FROM得分,41,示例5.16确定供应商所在地点的数量。Distinct FROM供应商参考了上述供应商的唱片值,牙齿中有北京、西安和郑州三个地址,因此结果为3。(除非计算大卫亚设、美国电视电视剧、美国电视电视剧和增量关系的元组数,否则一般计数函数必须使用DISTINCT。)。否则,例如,SELECT

13、 COUNT(*)FROM供应商提供了供应商关系的唱片数(4)。42,是5.17牙齿支付的工资总额。薪金自员工结果:6160牙齿结果是员工关系的薪金值合计,无论是否存在重复值。此时,如果使用SELECT SUM(DISTINCT工资)FROM职员表,则错误的结果将牙齿为4910。43,例5.18计算北京和上海的仓库员工的工资总额。SELECT SUM FROM职员WHERE仓库编号IN;(SELECT仓库编号自仓库WHERE城市=“北京”或城市=上海)结果4930,44,实例5.19获取了所有员工工资超过1210韩元的仓库的平均面积。SELECT AVG FROM仓库WHERE仓库编号NOT

14、IN (SELECT仓库编号FROM职员WHERE工资=1210)结果:366.67此处需要注意的是,上述结果计算包括尚未有员工的WH4仓库。要排除没有员工的仓库,必须将上面的门更改为:Select avg FROM仓库WHERE仓库编号not IN(可选子库存编号自职员WHERE薪金=1210);And仓库编号IN(“选择仓库编号自”职员)的结果为350,45,实例5.20获取在WH2仓库中工作的员工的最高薪金值。薪金自员工WHERE仓库编号=WH2结果1250是与MAX函数对应的MIN函数(查找最小值)。例如,获取最低薪金值的命令如下:SELECT MIN(薪金)FROM职员WHERE仓库

15、编号=WH2 ,46,5.2.7分组和计算祖怀,GROUP BY group by group以下是组计算视图的一些茄子实例:47,实例521获取每个仓库的员工的平均工资。选择子库存编号,AVG(薪金)自职员表组郑智薰子库存编号结果:WH1 1230 WH2 1235 WH3 1230牙齿查询首先按子库存编号属性分组,然后计算每个子库存的平均薪金。GROUPBY子句通常在WHERE子句后,如果WHERE子句不存在,则在FROM子句后。还可以按多个属性进行分组。48,例522拯救了至少有两名员工的每个仓库的平均工资。SELECT仓库编号、COUNT(*)、AvG(薪金)自职员;GROUP BY仓库编号HAVING COUNT(*)=2结果WH1 2 1230 WH2 2 1235 HAVING子句始终位于GROUP BY子句之后,不能单独使用。HAVING子句和WHERE子句并不矛盾。查询首先使用WHERE子句限定元组,然后分组,最后使用HAVING子句限制分组。,使用49,5.2.8 null查询。实例523查找尚未确

温馨提示

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

评论

0/150

提交评论