第4章结构化查询语言SQL和报表.ppt
《第4章结构化查询语言SQL和报表.ppt》由会员分享,可在线阅读,更多相关《第4章结构化查询语言SQL和报表.ppt(115页珍藏版)》请在三一文库上搜索。
1、2019/4/6,1,第4章 结构化查询语言SQL和报表,SQL语言的基本概述 数据定义语言DDL 数据操纵语言DML 查询和SELECT 命令 报表和标签 小结,2019/4/6,2,4.1 SQL语言的基本概述,结构化查询语言(Structured Query Language,简称SQL) SQL是用于对存放在计算机数据库中的数据进行组织、管理和检索的工具,是一种用于和数据库进行交互通信的计算机语言。SQL是1974年由Boyce和Chamberlin提出的,并在IBM公司研制的System R上首次实现了这种语言,由于它的功能丰富,使用方式灵活和语言简洁易学等突出特点,很受计算机界的欢
2、迎。现在SQL语言已成为关系型数据库操纵语言的国际标准。 VFP 提供了SQL 语言支持,2019/4/6,3,4.1.1 SQL语言的基本概念,SQL语言支持关系型数据库的三级模式结构,其中外模式对应于视图和部分基本表,模式对应于基本表,内模式对应于存储文件。 在SQL语言中,一个关系就对应于一个表,基本表本身是独立存在的表,对应一个存储文件;存储文件的逻辑结构组成了关系型数据库的内模式。 视图是从基本表或其他视图导出的表,视图只是一个虚表。 在用户看来,视图和基本表都是关系,而存储文件对用户是透明的。,2019/4/6,4,4.1.2 SQL的基本功能,SQL语言由3部分组成: 数据定义语
3、言DDL(Date Definition Language)。 数据操纵语言DML(Date Manipulation Language)。 数据控制语言DCL(Date Control Language)。 其主要命令如表4-1所示。,其中,数据定义语言DDL提供了完整的定义数据库所必需的语言工具,用来 创建、修改、删除数据库对象;数据操纵语言DML用于查询或者修改数据; 数据控制语言DCL用来管理用户的访问权限,由于VFP 没有权限管理功能, 所以不支持DCL命令。,2019/4/6,5,4.2 数据定义语言DDL,数据定义语言是对关系模式的一级定义,用来定义被存放数据的结构和组织,以及数
4、据项之间的关系。SQL数据定义语言可以用来定义数据表、视图和索引。 Create语句:用于定义和生成数据对象,比如创建表、视图和索引。 Drop语句:用于删除一个现有的数据对象,比如视图、表、索引。 Alter语句:用于改变一个数据库对象。比如对一个表的字段进行删除、添加和修改,或者修改表的结构。,2019/4/6,6,4.2.1 用Create语句创建基本表,命令格式: CREATE TABLE 表名 FREE ( (宽度, 小数) NULLNOT NULL CHECKERROR DEFAULT PRIMARY KEY /UNIQUE , ) 命令功能:创建数据表的结构。,2019/4/6,
5、7,4.2.1 用Create语句创建基本表(续),命令说明: CREATE TABLE表名:指定创建表文件名。 FREE:在数据库打开的情况下创建的是自由表。默认在数据库未打开时创建的是自由表,在数据库打开时创建的是数据库表。 CHECK:为字段值指定约束条件; ERROR:用来指定当不满足约束条件时显示的出错信息。 DFAULT:指定默认的字段值。 PRIMARY KEY:指定当前字段为主索引关键字;UNIQUE:指定当前字段为候选索引关键字。 NULL/NOT NULL:表示该字段是否可以为空。,2019/4/6,8,4.2.1 用Create语句创建基本表(续),【例4.1】在图书馆管
6、理系统中创建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表结构,2019/4/6,9,4.2.1 用Create语句创建基本表(续),【
7、例4.2】创建一个名为“通讯录”的自由表,包含姓名、工作单位、电话号码、家庭住址4个字段,所得的表预览如图4-3所示。 CREATE TABLE 通讯录 FREE(姓名C(10),工作单位C(20), 电话号码C(12), 家庭住址C(20) BROWSE 由于没有向表中添加任何记录,所以在预览时看不见任何的记录。,图4-3 创建的通讯录表,2019/4/6,10,4.2.1 用Create语句创建基本表(续),【例4.3】创建一个“图书订单”的数据库,并在此数据库中创建一个“图书”表,图书表含有订单号、图书编号、书名、单价、数量等字段。 CREATE DATEBASE 图书订单 CREATE
8、 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所示。,2019/4/6,11,4.2.1 用Create语句创建基本表(续),【例4.4】在图书订单数据库中建立一个新表“订单”表,含有订单编号、图书编号、客户编号、订货日期、发货日期几个字段。 OPEN DATA
9、BASE 图书订单 CREATE TABLE 订单( 订单编号 C(10) PRIMARY KEY,; 客户编号 C(10), 订货日期 D, 发货日期D; 图书编号C(10), FOREIGN KEY 图书编号; TAG 图书编号 REFERENCES 图书),图4-5 图书表和订单表之间的关系,在命令窗口中输入 “MODIFY DATABASE 订数订单” 命令,可在弹出的“数据库设计器” 窗口中见到图书表和订单表之间已 建立的关系,如图4-5所示。,2019/4/6,12,4.2.2 用Alter修改基本表,命令格式1: ALTER TABLE ADD/ALTERCOLUMN (字段宽度
10、,小数位数) NULLNOT NULL CHECKERROR DEFAULT PRIMARY KEY/UNIQUE REFERENCESTAG 命令功能:修改表中原有的字段,或者在表中增加新的字段。,2019/4/6,13,4.2.2 用Alter修改基本表(续),命令说明: ADD COLUMN(字段宽度,小数位数):增加新字段,并指定新增字段的名称、类型、字段宽度及小数位数。 NULLNOT NULL:指定新字段是否接受空值。 ALTER COLUMN (字段宽度,小数位数):修改原有字段,并指定修改后的字段名称、类型、字段宽度及小数位数。 其他的参数含义同 CREATE TABLE。,2
11、019/4/6,14,4.2.2 用Alter修改基本表(续),【例4.5】修改在例4.2中创建的通讯录表,增加一个“性别”字段,SQL 命令如下: ALTER TABLE 通讯录 ADD COLUMN 性别 C(10) 再把表中字段“家庭住址”修改为“工作地址”,SQL命令如下: ALTER TABLE 通讯录 RENAME COLUMN 家庭住址 TO 工作地址 预览修改后的表如图4-6所示,与图4-3对比就可以发现多出了一个字段“性别”,字段“家庭住址”改为了“工作地址”。,图4-6 修改后的通讯录表,2019/4/6,15,4.2.2 用Alter修改基本表(续),【例4.6】修改例4
12、.3中创建的图书表,将“书名”字段的宽度改为20且不准为空值。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,2019/4/6,16,4.2.2 用Alter修改基本表(续),命令功能:删除或者设置字段的默认值或约束条件。 命令说明: SET CHECKERROR:为字段设置约束条件。 SET DEFAULT:设置默认值
13、。 DROP DEFAULT:删除默认值。 DROP CHECK:删除约束条件。,2019/4/6,17,4.2.2 用Alter修改基本表(续),【例4.7】在例4.3创建的图书表中,为“图书编号”字段设置一个默认值200601并删除数量的约束条件,SQL命令如下: ALTER TABLE 图书 ALTER 图书编号 SET DEFAULT 200601 ALTER TABLE 图书 ALTER 数量 DROP CHECK,2019/4/6,18,4.2.2 用Alter修改基本表(续),命令格式3: ALTER TABLE DROP COLUMN ADD PRIMARY KEY TAG D
14、ROP PRIMARY KEY ADD UNIQUE TAG DROP UNIQUE TAG SET CHECK ERROR DROP CHECK ADD FOREIGN KEYTAG REFERENCESTAG DROP FOREIGN KEY TAG SAVE RENAME COLUMN TO,2019/4/6,19,4.2.2 用Alter修改基本表(续),命令功能:删除表中的字段、设置或删除表的主索引、候选索引、对字段重新命名或者删除指定的字段的约束条件。 命令说明: DROP COLUMN:删除指定的字段。 ADD PRIMARY KEY TAG:建立主索引。 DROP PRIMAR
15、Y KEY:删除主索引。 ADD UNIQUE TAG :建立候选索引。 DROP UNIQUE TAG:删除候选索引。 ADD FOREIGN KEYTAG:建立外索引。 REFERENCESTAG:指定建立关联的父表。 DROP FOREIGN KEY TAG SAVE:删除外索引。 RENAME COLUMN TO:对字段重新命名。,2019/4/6,20,4.2.2 用Alter修改基本表(续),【例4.8】在例4.3创建的图书表中,为“书名”创建一个候选索引,并且删除“数量”字段,如图4-7所示。SQL语句如下: ALTER TABLE 图书 ADD UNIQUE 书名; ALTER
16、 TABLE 图书 DROP COLUMN 数量,图4-7 例4.8图,在图4-7中,字段“数量”被删除, 并创建候选索引“书名”。,2019/4/6,21,4.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,2019/4/6,22,4.2.3 用DROP
17、 命令删除一个表,随着数据库设计的变化,数据库的结构也在不断的变化,新建的表就会不断地代替旧表,这时某些旧表就不再需要了,可以用DROP TABLE 命令删除它。 命令格式: DROP TABLE 命令功能:删除一个表,包括在这个表上建立的索引。 命令说明:指定被删除的表。 【例4.10】删除在例4.2中创建的通讯录表,SQL 命令如下: DROP TABLE 通讯录,2019/4/6,23,4.3 数据操纵语言DML,数据操纵实际上就是管理数据,这也是创建表的基本目的,主要是对关系中的具体数据进行查询、更新、删除和插入,但不能够改变数据的结构。 DML命令如表4-2所示。,表4-2 DML的
18、命令及功能,2019/4/6,24,4.3.1 INSERT 命令,用CREATE TABLE 命令创建一个表后,创建的表中没有具体的数据,可以用INSERT命令向表中插入数据。 命令格式: INSERT INTO 表名 (列名1, 列名2, )VALUES( , ,) 命令说明: INTO 表名:指定接受新数据的目标表。 VALUES:指明增加记录的字段值。 向表中添加的数据必须与指定字段名的类型相匹配。 字符串要用单引号或者双引号括起来,日期型可用CTOD函数处理或者直接引用。,2019/4/6,25,4.3.1 INSERT 命令(续),【例4.11】在例4.4创建的订单表中插入一个新的
19、记录: 订单编号:200601 读者编号:10001 订货日期:2006-02-1 发货日期:2006-02-10 图书编号:100012 使用INSERT 语句把该记录插入到订单表中,SQL语句如下: INSERT INTO 订单(订单编号, 读者编号, 订货日期, 发货日期, 图书编号); VALUES (“200601“, “10001“, CTOD(“02-1-06“), CTOD(“02-10-06“),“100012“),2019/4/6,26,4.3.2 UPDATE命令,UPDATE语句用来更新表中的记录。 命令格式: UPDATE SET =,= WHERE 命令说明: UP
20、DATE:指明要修改的记录的表的名称。 SET:指明更新的字段名和字段值。 WHERE:限定要修改的行,如果没有WHERE子句,该字段下的所有字段值都将被新值替换。,2019/4/6,27,4.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 JG3
21、0 OR YS300,2019/4/6,28,4.3.3 DELETE 命令,DELETE 命令用来删除一行或者多行记录。 命令格式: DELETE FROM WHERE 命令说明: FROM 子句:指出将删除的目标表。 WHERE :指明被删除的记录满足的条件,若没有WHERE子句则删除所有记录。 【例4.13】在第1章创建的SJ表中,把“价格”大于30元且“页数”大于300的图书记录删掉,SQL语句如下: DELETE FROM SJ WHERE JG30 AND YS300,2019/4/6,29,4.4 查询和SELECT 命令,SELECT 是数据查询命令。SELECT命令虽然属于数
22、据操纵范围,但它是SQL的核心,在SQL命令中使用的是最多的,我们将它和查询单独作为一节。 VFP 6.0的查询设计器或SELECT-SQL语句可用来方便地检索存储在表或者视图中的信息。 利用查询设计器可以搜索满足条件的记录,并且可将查询保存在.qpr文件中。,2019/4/6,30,4.4.1 创建和添加查询,1启动查询设计器 若要打开查询设计器,应首先打开一个要查询的数据库,然后采用以下方式之一: (1)“文件”菜单启动查询设计器 (2)从“工具”菜单启动查询设计器 (3)使用CREATE QUERY命令打开查询设计器,2019/4/6,31,(1)“文件”菜单启动查询设计器,从“文件”菜
23、单中选择“打开”命令,启动“打开”对话框,并在对话框的“文件类型”中选择“项目”类型,再选取要打开的项目名称,最后单击“确定”按钮,出现项目管理器对话框。 在项目管理器中选择“数据”选项卡,再选取“查询”选项。 单击“新建”按钮,此时出现“添加表或视图”对话框,然后从数据库下拉列表框中选择待查询的数据库名称。再从“选定”栏中选择“表”或“视图”,本例选择了“表”。 从“数据库中的表”列表框中选择要添加的表。重复这一步骤,直到选取了所需要的全部表。 单击“关闭”按钮,返回“查询设计器”窗口,如图4-8所示。,2019/4/6,32,(1)“文件”菜单启动查询设计器(续),图4-8 查询设计器,2
24、019/4/6,33,(2)从“工具”菜单启动查询设计器,在VFP 6.0主菜单中,选择“工具”,指向“向导”,选择“查询”,弹出“向导选取”对话框,再选择“查询向导”,可根据查询向导的提示创建查询。 (3)使用CREATE QUERY命令打开查询设计器 在命令窗口中输入CREATE QUERY即可打开查询设计器。,2019/4/6,34,2创建查询,(1)查询设计器 查询设计器的窗口如图4-8所示。 在查询设计器上半部分的窗口中,列出用户已选定的要查询的表或视图。 表或视图之间的连线表示表之间的连接关系。 查询设计器下半部分的窗口中有6个选项卡: “字段”:选定包含在查询结果中的字段。 “联
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 结构 查询 语言 SQL 报表
链接地址:https://www.31doc.com/p-2550306.html