第4章结构化查询语言SQL和报表课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《第4章结构化查询语言SQL和报表课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 结构 查询 语言 SQL 报表 课件
- 资源描述:
-
1、第4章 结构化查询语言SQL和报表SQL语言的基本概述数据定义语言DDL数据操纵语言DML查询和SELECT 命令报表和标签小结2022-10-194.1 SQL语言的基本概述结构化查询语言(Structured Query Language,简称SQL)SQL是用于对存放在计算机数据库中的数据进行组织、管理和检索的工具,是一种用于和数据库进行交互通信的计算机语言。SQL是1974年由Boyce和Chamberlin提出的,并在IBM公司研制的System R上首次实现了这种语言,由于它的功能丰富,使用方式灵活和语言简洁易学等突出特点,很受计算机界的欢迎。现在SQL语言已成为关系型数据库操纵语
2、言的国际标准。VFP 提供了SQL 语言支持 2022-10-194.1.1 SQL语言的基本概念SQL语言支持关系型数据库的三级模式结构,其中外模式对应于视图和部分基本表,模式对应于基本表,内模式对应于存储文件。在SQL语言中,一个关系就对应于一个表,基本表本身是独立存在的表,对应一个存储文件;存储文件的逻辑结构组成了关系型数据库的内模式。视图是从基本表或其他视图导出的表,视图只是一个虚表。在用户看来,视图和基本表都是关系,而存储文件对用户是透明的。2022-10-194.1.2 SQL的基本功能SQL语言由3部分组成:数据定义语言DDL(Date Definition Language)。
3、数据操纵语言DML(Date Manipulation Language)。数据控制语言DCL(Date Control Language)。其主要命令如表4-1所示。SQL功能命令数据定义语言DDLCreate、Drop、Alter数据操纵语言DMLSelect、Insert、Update、Delete数据控制语言DCLGrant、Revoke其中,数据定义语言DDL提供了完整的定义数据库所必需的语言工具,用来创建、修改、删除数据库对象;数据操纵语言DML用于查询或者修改数据;数据控制语言DCL用来管理用户的访问权限,由于VFP 没有权限管理功能,所以不支持DCL命令。2022-10-194
4、.2 数据定义语言DDL数据定义语言是对关系模式的一级定义,用来定义被存放数据的结构和组织,以及数据项之间的关系。SQL数据定义语言可以用来定义数据表、视图和索引。Create语句:用于定义和生成数据对象,比如创建表、视图和索引。Drop语句:用于删除一个现有的数据对象,比如视图、表、索引。Alter语句:用于改变一个数据库对象。比如对一个表的字段进行删除、添加和修改,或者修改表的结构。2022-10-194.2.1 用Create语句创建基本表命令格式:CREATE TABLE 表名 FREE(宽度,小数)NULLNOT NULL CHECKERROR DEFAULT PRIMARY KEY
5、/UNIQUE,)命令功能:创建数据表的结构。2022-10-194.2.1 用Create语句创建基本表(续)命令说明:CREATE TABLE表名:指定创建表文件名。FREE:在数据库打开的情况下创建的是自由表。默认在数据库未打开时创建的是自由表,在数据库打开时创建的是数据库表。CHECK:为字段值指定约束条件;ERROR:用来指定当不满足约束条件时显示的出错信息。DFAULT:指定默认的字段值。PRIMARY KEY:指定当前字段为主索引关键字;UNIQUE:指定当前字段为候选索引关键字。NULL/NOT NULL:表示该字段是否可以为空。2022-10-194.2.1 用Create语
6、句创建基本表(续)【例4.1】在图书馆管理系统中创建dzzl(读者种类)表,包含zlbh(种类编号)、zlmc(种类名称)、jssl(借书数量)、jsqx(借书期限)、bz(备注)几个字段。OPEN DATABASE 图书馆管理CTEATE TABLE dzzl(zlbh c(10)not null,zlmc c(10)not null,jssl c(8),jsqx c(8),Bz c(20)若在命令窗口执行MODIFY STRUCTURE命令,就可以在弹出的对话框中见到dzzl表结构,如图4-2所示。图图4-2 创建的创建的dzzl表结构表结构2022-10-194.2.1 用Create语
7、句创建基本表(续)【例4.2】创建一个名为“通讯录”的自由表,包含姓名、工作单位、电话号码、家庭住址4个字段,所得的表预览如图4-3所示。CREATE TABLE 通讯录 FREE(姓名C(10),工作单位C(20),电话号码C(12),家庭住址C(20)BROWSE由于没有向表中添加任何记录,所以在预览时看不见任何的记录。图图4-3 创建的通讯录表创建的通讯录表2022-10-194.2.1 用Create语句创建基本表(续)【例4.3】创建一个“图书订单”的数据库,并在此数据库中创建一个“图书”表,图书表含有订单号、图书编号、书名、单价、数量等字段。CREATE DATEBASE 图书订单
8、CREATE TABLE 图书(订单号 C(10);DEFAULT 10001,图书编号 C(10)PRIMARY KEY,;书名C(10),单价 N(8,2);数量 N(6)CHECK 数量=100 AND 数量=1000;ERROR 数量范围在100和1000之间)图图4-4 图书表的索引图图书表的索引图预览此表的设计器可以看见“图书编号”已经被设为主索引,如图4-4所示。2022-10-194.2.1 用Create语句创建基本表(续)【例4.4】在图书订单数据库中建立一个新表“订单”表,含有订单编号、图书编号、客户编号、订货日期、发货日期几个字段。OPEN DATABASE 图书订单C
9、REATE TABLE 订单(订单编号 C(10)PRIMARY KEY,;客户编号 C(10),订货日期 D,发货日期D;图书编号C(10),FOREIGN KEY 图书编号;TAG 图书编号 REFERENCES 图书)图图4-5 图书表和订单表之间的关系图书表和订单表之间的关系在命令窗口中输入“MODIFY DATABASE 订数订单”命令,可在弹出的“数据库设计器”窗口中见到图书表和订单表之间已建立的关系,如图4-5所示。2022-10-194.2.2 用Alter修改基本表命令格式1:ALTER TABLE ADD/ALTERCOLUMN (字段宽度,小数位数)NULLNOT NUL
10、L CHECKERROR DEFAULT PRIMARY KEY/UNIQUE REFERENCESTAG 命令功能:修改表中原有的字段,或者在表中增加新的字段。2022-10-194.2.2 用Alter修改基本表(续)命令说明:ADD COLUMN(字段宽度,小数位数):增加新字段,并指定新增字段的名称、类型、字段宽度及小数位数。NULLNOT NULL:指定新字段是否接受空值。ALTER COLUMN(字段宽度,小数位数):修改原有字段,并指定修改后的字段名称、类型、字段宽度及小数位数。其他的参数含义同 CREATE TABLE。2022-10-194.2.2 用Alter修改基本表(续
11、)【例4.5】修改在例4.2中创建的通讯录表,增加一个“性别”字段,SQL 命令如下:ALTER TABLE 通讯录 ADD COLUMN 性别 C(10)再把表中字段“家庭住址”修改为“工作地址”,SQL命令如下:ALTER TABLE 通讯录 RENAME COLUMN 家庭住址 TO 工作地址 预览修改后的表如图4-6所示,与图4-3对比就可以发现多出了一个字段“性别”,字段“家庭住址”改为了“工作地址”。图图4-6 修改后的通讯录表修改后的通讯录表2022-10-194.2.2 用Alter修改基本表(续)【例4.6】修改例4.3中创建的图书表,将“书名”字段的宽度改为20且不准为空值
12、。SQL命令如下:OPEN DATABASE 图书订单ALTER TABLE 图书 ALTER 书名 C(20)NOT NULL命令格式2:ALTER TABLE ALTER COLUMN NULLNOT NULL SET CHECKERROR SET DEFAULT DROP CHECK DROP DEFAULT 2022-10-194.2.2 用Alter修改基本表(续)命令功能:删除或者设置字段的默认值或约束条件。命令说明:SET CHECKERROR:为字段设置约束条件。SET DEFAULT:设置默认值。DROP DEFAULT:删除默认值。DROP CHECK:删除约束条件。202
13、2-10-194.2.2 用Alter修改基本表(续)【例4.7】在例4.3创建的图书表中,为“图书编号”字段设置一个默认值200601并删除数量的约束条件,SQL命令如下:ALTER TABLE 图书 ALTER 图书编号 SET DEFAULT 200601ALTER TABLE 图书 ALTER 数量 DROP CHECK2022-10-194.2.2 用Alter修改基本表(续)命令格式3:ALTER TABLE DROP COLUMN ADD PRIMARY KEY TAG DROP PRIMARY KEY ADD UNIQUE TAG DROP UNIQUE TAG SET CHE
14、CK ERROR DROP CHECK ADD FOREIGN KEYTAGREFERENCESTAG DROP FOREIGN KEY TAG SAVE RENAME COLUMN TO 2022-10-194.2.2 用Alter修改基本表(续)命令功能:删除表中的字段、设置或删除表的主索引、候选索引、对字段重新命名或者删除指定的字段的约束条件。命令说明:DROP COLUMN:删除指定的字段。ADD PRIMARY KEY TAG:建立主索引。DROP PRIMARY KEY:删除主索引。ADD UNIQUE TAG:建立候选索引。DROP UNIQUE TAG:删除候选索引。ADD F
15、OREIGN KEYTAG:建立外索引。REFERENCESTAG:指定建立关联的父表。DROP FOREIGN KEY TAG SAVE:删除外索引。RENAME COLUMN TO:对字段重新命名。2022-10-194.2.2 用Alter修改基本表(续)【例4.8】在例4.3创建的图书表中,为“书名”创建一个候选索引,并且删除“数量”字段,如图4-7所示。SQL语句如下:ALTER TABLE 图书 ADD UNIQUE 书名;ALTER TABLE 图书 DROP COLUMN 数量图图4-7 例例4.8图图在图4-7中,字段“数量”被删除,并创建候选索引“书名”。2022-10-1
16、94.2.2 用Alter修改基本表(续)【例4.9】在第1章创建的“图书管理系统”的dzzl中,为jssl创建一个默认值15,当输入有错误时就会显示“值为15”,删除表中的候选索引。SQL语句如下:ALETER TABLE dzzl ALTER jssl SET DEFAULT 15;ERROR“值为15”;ALETER TABLE dzzl DROP UNIQUE TAG zlbh 2022-10-194.2.3 用DROP 命令删除一个表随着数据库设计的变化,数据库的结构也在不断的变化,新建的表就会不断地代替旧表,这时某些旧表就不再需要了,可以用DROP TABLE 命令删除它。命令格式
17、:DROP TABLE 命令功能:删除一个表,包括在这个表上建立的索引。命令说明:指定被删除的表。【例4.10】删除在例4.2中创建的通讯录表,SQL 命令如下:DROP TABLE 通讯录 2022-10-194.3 数据操纵语言DML数据操纵实际上就是管理数据,这也是创建表的基本目的,主要是对关系中的具体数据进行查询、更新、删除和插入,但不能够改变数据的结构。DML命令如表4-2所示。命令功能UPDATE更新数据库中的已有数据DELETE 用于从数据表中删除数据INSERT增加一个新的数据到表中SELECT 数据查询表表4-2 DML的命令及功能的命令及功能2022-10-194.3.1
18、INSERT 命令用CREATE TABLE 命令创建一个表后,创建的表中没有具体的数据,可以用INSERT命令向表中插入数据。命令格式:INSERT INTO 表名(列名1,列名2,)VALUES(,)命令说明:INTO 表名:指定接受新数据的目标表。VALUES:指明增加记录的字段值。向表中添加的数据必须与指定字段名的类型相匹配。字符串要用单引号或者双引号括起来,日期型可用CTOD函数处理或者直接引用。2022-10-194.3.1 INSERT 命令(续)【例4.11】在例4.4创建的订单表中插入一个新的记录:订单编号:200601读者编号:10001订货日期:2006-02-1发货日期
19、:2006-02-10图书编号:100012使用INSERT 语句把该记录插入到订单表中,SQL语句如下:INSERT INTO 订单(订单编号,读者编号,订货日期,发货日期,图书编号);VALUES(200601,10001,CTOD(02-1-06),CTOD(02-10-06),100012)2022-10-194.3.2 UPDATE命令UPDATE语句用来更新表中的记录。命令格式:UPDATE SET=,=WHERE 命令说明:UPDATE:指明要修改的记录的表的名称。SET:指明更新的字段名和字段值。WHERE:限定要修改的行,如果没有WHERE子句,该字段下的所有字段值都将被新值
20、替换。2022-10-194.3.2 UPDATE命令(续)【例4.12】把第1章中创建的SJ表中“价格”大于30元且“页数”大于300的图书的“备注”改为“珍贵图书”,SQL命令如下:UPDATE SJ SET BZ=珍贵图书 WHERE JG30 AND YS300若把价格大于30元的或页数大于300页的图书的备注(bz)改为珍贵图书,SQL命令如下:UPDATE SJ SET BZ=珍贵图书 WHERE JG30 OR YS300 2022-10-194.3.3 DELETE 命令DELETE 命令用来删除一行或者多行记录。命令格式:DELETE FROM WHERE 命令说明:FROM
21、 子句:指出将删除的目标表。WHERE:指明被删除的记录满足的条件,若没有WHERE子句则删除所有记录。【例4.13】在第1章创建的SJ表中,把“价格”大于30元且“页数”大于300的图书记录删掉,SQL语句如下:DELETE FROM SJ WHERE JG30 AND YS300 2022-10-194.4 查询和SELECT 命令SELECT 是数据查询命令。SELECT命令虽然属于数据操纵范围,但它是SQL的核心,在SQL命令中使用的是最多的,我们将它和查询单独作为一节。VFP 6.0的查询设计器或SELECT-SQL语句可用来方便地检索存储在表或者视图中的信息。利用查询设计器可以搜索
22、满足条件的记录,并且可将查询保存在.qpr文件中。2022-10-194.4.1 创建和添加查询1启动查询设计器若要打开查询设计器,应首先打开一个要查询的数据库,然后采用以下方式之一:(1)“文件”菜单启动查询设计器(2)从“工具”菜单启动查询设计器(3)使用CREATE QUERY命令打开查询设计器2022-10-19(1)“文件”菜单启动查询设计器从“文件”菜单中选择“打开”命令,启动“打开”对话框,并在对话框的“文件类型”中选择“项目”类型,再选取要打开的项目名称,最后单击“确定”按钮,出现项目管理器对话框。在项目管理器中选择“数据”选项卡,再选取“查询”选项。单击“新建”按钮,此时出现
23、“添加表或视图”对话框,然后从数据库下拉列表框中选择待查询的数据库名称。再从“选定”栏中选择“表”或“视图”,本例选择了“表”。从“数据库中的表”列表框中选择要添加的表。重复这一步骤,直到选取了所需要的全部表。单击“关闭”按钮,返回“查询设计器”窗口,如图4-8所示。2022-10-19(1)“文件”菜单启动查询设计器(续)图4-8 查询设计器2022-10-19(2)从“工具”菜单启动查询设计器在VFP 6.0主菜单中,选择“工具”,指向“向导”,选择“查询”,弹出“向导选取”对话框,再选择“查询向导”,可根据查询向导的提示创建查询。(3)使用CREATE QUERY命令打开查询设计器在命令
24、窗口中输入CREATE QUERY即可打开查询设计器。2022-10-192创建查询(1)查询设计器查询设计器的窗口如图4-8所示。在查询设计器上半部分的窗口中,列出用户已选定的要查询的表或视图。表或视图之间的连线表示表之间的连接关系。查询设计器下半部分的窗口中有6个选项卡:“字段”:选定包含在查询结果中的字段。“联接”:确定各数据表或视图之间的连接关系。“筛选”:相当于命令SET FILTER TO,利用过滤的方法查找一个特定的数据子集。“排序依据”:决定查询结果输出中记录或行的排列顺序“分组依据”:所谓分组就是将一组类似的记录压缩成一个结果记录,这样就可以完成基于一组的计算。“杂项”:指定
25、是否要对重复记录进行检索,同时是否对记录(返回记录的最大数目或最大百分比)做限制。2022-10-19(2)创建查询的步骤1)按上面介绍的方法打开查询设计器。2)添加出现在查询结果中的表或视图。如本例已打开“图书馆管理”数据库,并已选择添加了Dz.dbf、Jy.dbf和Sj.dbf三个表。3)选定要包含在查询结果中的字段。在“字段”选项卡中,从可用字段列表框中选择需要的字段,即单击需要的字段,再单击“添加”按钮;或者双击需要的字段。4)如果要“可用字段”列表框中的全部字段都包含在查询结果中,可单击“全部添加”按钮;单击“全部移去”按钮,则将已选定的字段(列于选定字段列表框中)全部作废。此时单击
展开阅读全文