关系数据库查询语言SQL.ppt





《关系数据库查询语言SQL.ppt》由会员分享,可在线阅读,更多相关《关系数据库查询语言SQL.ppt(38页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第六章关系数据库查询语言SQLSQL是英文(StructuredQueryLanguage)的缩写,意思为结构化查询语言。SQL语言是1974年由Boyce和Chamberlin提出的。19751979年IBM公司的SanJose实验室研制了著名的关系数据库管理系统原型SystemR并实现了这种语言。由于它的功能丰富,语言简捷被众多计算机公司和软件公司所采用。经各公司的不断修改、扩充和完善,SQL语言最终发展成为关系数据库的标准语言。本章介绍了SQL语言的一些基本操作命令,包括数据定义语句、数据查询语句及数据更新语句。第六章关系数据库查询语言SQL6.1 SQL概述概述6.2 SQL表定义语句
2、表定义语句6.3 SQL查询语句查询语句6.4 SQL数据更新语句数据更新语句习题习题6.1SQL概述6.1.1SQL语言的特点SQL语言集数据查询、数据操纵、数据定义和数据控制功能于一体,主要特点包括:1综合统一SQL语言集数据定义语言、数据操纵语言、数据控制语言的功能于一体,语言风格同一,可以独立完成数据库生命周期中的全部活动,为数据库应用系统提供了良好的环境。用户在数据库系统投入运行后,还可以根据需要随时地逐步地修改模式,且并不影响数据库的运行,从而使系统具有良好的可扩展性。2高度非过程化SQL语言高度非过程化,只要提出“做什么”,而无须指明“怎么做”,减轻了用户的负担,也有利于提高数据
3、独立性。3面向集合的操作方式SQL语言除了操作对象、查找结果是记录的集合,一次插入、删除、更新操作的对象也可以是记录的集合。4以同一种语法结构提供两种使用方式SQL语言既是自含式语言,又是嵌入式语言。作为自含式语言,它能够独立地用于联机交互的使用方式,用户可以在终端键盘上直接键入SQL命令对数据库进行操作。作为嵌入式语言,SQL语句能够嵌入到高级语言(例如C、COBOL、FORTRAN、PL/1)程序中,供程序员设计程序时使用。5语言简捷,易学易用完成核心功能只用9个动词,如下:数据查询(Select)、数据定义(Create,Drop,Alter)、数据操纵(Insert,Update,De
4、lete)、数据控制(Grant,Revoke)。6.1.2SQL语言的基本概念SQL语言支持关系数据库三级模式结构。其中外模式对应于视图和部分基本表,模式对应于基本表,内模式对应于存储文件。在SQL中,关系模式称为“基本表”,存储模式称为“存储文件”,子模式称为“视图”,记录称“行”,属性称“列”。以下是SQL的相关概念:(1)一个SQL数据库是表的汇集。(2)一个SQL表由行集构成,行是列的序列,每列对应一个数据项。(3)表可以是基本表,也可以是视图。基本表是实际存储在数据库中的表,视图是从一个或几个基本表导出的表,它本身不独立存储在数据库中,即数据库中只存放视图的定义而不存放视图对应的数
5、据,这些数据仍存放在导出视图的基本表中,因此视图是一个虚表。视图在概念上于基本表等同,用户可以在视图上再定义视图。(4)一个基本表可以跨一个或多个存储文件,一个存储文件也可存放一个或多个基本表。另外,一个表可以带若干索引,索引也存放在存储文件中,存储文件与物理文件对应。(5)用户可以用SQL语句对表进行操作,包括视图和基本表。基本表和视图一样,都是关系。(6)SQL的用户可以是应用程序,也可以是终端用户。6.2SQL表定义语句6.2.1创建表一个基本表由两部分组成,一部分是由各列名构成的表的结构,即一个关系模式,也称为表结构;另一部分是具体存放的数据,称为数据记录,创建基本表时,只需要定义表的
6、结构,包括表名,列名,列的数据类型和列约束等。SQL语言使用CREATETABLE语句定义基本表,其基本命令格式为:CREATETABLE(类型列级完整性约束,类型列级完整性约束)其中是所要定义的基本表的名字,它可以由一个或多个属性(字段)组成。注意:定义表时每一个定义语句之间用逗号分隔,最后一条语句不用逗号。每个SQL语句以分号结束。字段类型有:字符型(Character),数值型(Numeric),整型(Integer),浮点型(Float),日期型(Date),逻辑型(Logic),备注型(Memo)和OLE型(General)。【例6.1】创建一个新表,教师工资表.dbf,结构可以按表
7、6.1定义表6.1教师工资表结构1.在命令窗口输入如下命令:CreateTable教师工资表.dbf(教师编号character(6),工资Numeric(7,2),;应扣数Numeric(7,2),奖金Numeric(7,2),;实发数Numeric(7,2)ModifyStructure2.输入完毕后可以得到的运行结果如图6.1所示。字段名字段类型字段长度小数点教师编号字符型6工资数值型72应扣数数值型72奖金数值型72实发数数值型72图6.1教师工资表结构6.2.2修改字段属性在VisualFoxpro系统中,创建完成的表一旦不能满足应用系统的需求,可以使用菜单方式、ModifyStru
8、cture命令和SQL语句进行字段属性的修改。SQL语言中的Alter语句修改表的结构,不需要是用Use命令打开表。语句格式:AlterTableAlter类型(列级完整性约束)Alter类型(列级完整性约束)语句功能:修改以为名的表的结构。【例6.2】修改“教师工资表.dbf”的结构,将其结构由表6.1定义的内容修改为表6.2所示的内容。表6.2修改后的教师工资表结构字段名字段类型字段长度小数点教师编号字符型8工资数值型82应扣数数值型72奖金数值型72实发数数值型721.在命令窗口输入如下命令:AlterTable教师工资表.dbfAlter教师编号Character(8)Alter工资N
9、umeric(8,2)ModifyStructure2输入完毕后可以得到的运行结果如图6.2所示。注意:只用Alter语句修改表的结构,不能增加、删除字段,不能更改字段名,只能更改字段的类型和字段长度。如果要增加、删除字段还需要结合Drop和Delete语句。图6.2修改后的教师工资表的结构6.2.3删除字段在修改表的结构时,如果要删除某字段,可以使用SQL语言中的Drop语句。语句格式:AlterTableDropDrop语句功能:删除表为名的表的部分字段。【例6.3】修改“教师工资表.dbf”中的“奖金”和“实发数”2个字段。1.在命令窗口输入如下命令:AlterTable教师工资表.db
10、fDrop奖金Drop实发数ModifyStructure2.输入完毕后可以得到的运行结果如图6.3所示。Drop语句的功能除 了可以删除表中的字段,还可以直接删除某张表。其基本命令格式为:DROPTABLE图6.3删除字段后的教师工资表结构6.2.4增加字段修改表的结构时,如果要在表中增加字段,可以使用SQL语言中的Add语句。语句格式:AlterTableAdd类型(列级完整性约束)Add类型(列级完整性约束)语句功能:给名为的表的增加字段。【例6.5】给“教师工资表.dbf”增加一个“备注”字段。1.在命令窗口中输入如下命令:AlterTable教师工资表.dbfAdd备注memo(4)
11、ModifyStructure2.输入完毕后可以得到的运行结果如图6.4所示。图6.4给教师工资表增加字段6.3SQL查询语句SQL语言中最重要的功能内就是查询功能。使用SQL语句不需要在不同的工作区打开不同的表,只需要将要连接的表、查询所需要的字段名、筛选记录的条件、记录分组的依据排序的方式以及查询结果的显示方式,写在SQL语句中,就可以完成特定的工作。SQL语言中实现查询功能的是Select语句。语句格式:SELECTALL|DISTINCT,FROM,WHEREGROUPBYHAVINGORDERBYASC|DESC;说明:1.整个语句的含义从From子句指定基本表或视图中,根据Wher
12、e子句的条件表达式查找出满足该条件的记录,按照Select子句指定的目标字段表达式,选出记录中的属性值形成结果表。如果有GroupBy子句,则将结果按“字段1”的值进行分组,该属性列值相等的记录为一个组;如果GroupBy子句带有短语Having,则只有满足短语指定条件的分组才会输出。如果有OrderBy子句,则结果表要按照的值进行升序和降序排列。SelectALL|DISTINCT实现的是对表的投影操作,Where中实现的是选择操作。2.目标字段表达式1)字段表达式可以是“字段1,字段2”的形式;如果FROM子句指定了多个表,则字段名应是“表名.字段名”的形式。2)字段表达式可以使用SQL提
13、供的库函数形成表达式。3)DISTINCT参数:表示在结果集中,查询出的内容相同的记录只留下一条。查询计算函数的格式及功能如表6.3所示:表6.3查询计算函数的格式及功能:可以是关系表达式,也可以是逻辑表达式,表6.4所示的内容是组成常用的运算符。表6.4查询条件中常用的运算符函数格式函数功能COUNT(*)统计记录条数。COUNT(字段名)统计一列值得个数。SUM(字段名)计算某一数值型列的值的总和。AVG(字段名)计算某一数值型列的值的平均值MAX(字段名)计算某一数值型列的值的最大值MIN(字段名)计算某一数值型列的值的最小值查询条件运算符说明比较=、=、!字符串比较从左向右进行确定范围
14、Between AndBetween后是下限 And后是上限确定集合In、Not In检查一个属性值是否属于集合中的值字符匹配Like、Not Like用于构造条件表达式中的字符匹配空值Is Null、Is Not Null当属性值内容为空时,要用次运算符多重条件And、Or用于构造复合表达式6.3.1单表查询单表查询是指仅设计一个表的查询,一般只用到Select子句、From子句和Where子句,分别说明所查询列、查询的表或视图、以及搜索条件等,也称为简单查询。1Select子句选择列表选择列表指出所查询的字段,它可以是一组列名列表、星号、表达式、变量(包括局部变量和全局变量)等构成。1)选
15、择所有字段【例6.6】查询教师工资表中所有字段的数据Select*From教师工资表该Select语句实际上是无条件地把教师工资表的全部信息都查询出来,也称为全表查询。查询的结果如图6.5所示。图6.5全部字段信息查询结果2)选择部分列并指定它们的显示次序一般情况下,查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。【例6.7】查询教师工资表中教师编号、工资、实发数Seleect教师编号,工资,实发数From教师工资表该Select语句是把教师工资表的“教师编号”、“工资”和“实发数”三个字段的全部数据都查询出来。查询的结果如图6.6所示。图6.6部分字段信息查询结果2From
16、子句选择表From子句指定Select语句查询及与查询相关的表或视图。在From子句中最多可指定256个表或视图,它们之间用逗号分隔,在单表查询中From子句后只有一个基本表名3使用Where子句设置查询条件Where子句设置查询条件,过滤掉不需要的数据行,只有满足条件的行才能出现在查询结果中。【例6.8】在教师工资表中查询“教师编号=096201”的所有字段的信息。Select*From教师工资表Where教师编号=096201在命令窗口中输入上面这条语句后,查询的结果如图6.7所示。图6.7按条件查询信息结果6.3.2连接查询一个查询同时涉及两个以上的表,则称之为连接查询。连接查询主要包括
17、等值连接、非等值连接查询、自身连接查询、外连接查询和复合条件连接查询。1等值与非等值连接查询连接谓词:用来连接两个表的条件称为连接条件或连接谓词,其一般格式为:.其中比较运算符主要有:=、=、=、!=此外连接谓词还可以使用下面形式:.Between.And.当连接运算符为=时,称为等值连接。使用其它运算符称为非等值连接。连接谓词中的列名称为连接字段。连接条件中的各连接字段类型必须是可比,但不必是相同。例如,可以都是字符型,或都是日期型;也可以一个是整型,另一个是实型,整型和实型都是数值型。执行连接操作的过程是,首先在表1中找到第一个记录,然后从头开始顺序扫描或按索引扫描表2,查找满足连接条件的
18、记录,每找到一个记录,就将表1中的第一个记录与该记录拼接起来,形成结果表中一个记录。表2全部扫描完毕后,再到表1中找第二个记录,然后再从头开始顺序扫描或按索引扫描表2,查找满足连接条件的记录,每找到一个记录,就将表1中的第二个记录与该记录拼接起来,形成结果表中一个记录。重复上述操作,直到表1全部记录都处理完毕为止。2.自身连接(Selfjoin)连接操作可以在同一张表内可进行自身连接,即将同一个表的不同行连接起来。自身连接可以看作一张表的两个副本之间的连接。在自身连接中,必须为表指定两个别名,使之在逻辑上成为两张表。3外连接在通常的连接操作中,只有满足符合查询条件(Where搜索条件或Havi
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 关系 数据库 查询 语言 SQL

限制150内