Visual FoxPro数据库技术及应用第7章SQL结构化查询语言.ppt
《Visual FoxPro数据库技术及应用第7章SQL结构化查询语言.ppt》由会员分享,可在线阅读,更多相关《Visual FoxPro数据库技术及应用第7章SQL结构化查询语言.ppt(78页珍藏版)》请在三一办公上搜索。
1、1,Visual FoxPro数据库技术及应用第 7 章,SQL结构化查询语言,2,第 7 章 SQL结构化查询语言,7.0 简介7.1SQL的数据定义功能7.2 SQL的数据操作功能7.3 SQL的数据查询功能,3,简介,SQL是结构化查询语言,SQL语言已成为关系型数据库的标准查询语言SQL语句的功能分类 数据定义:DDL CREATE、ALTER 数据操纵:DML UPDATE、DELETE和INSERT 数据控制(应用于网络数据库):DCL GRANT(授权)和REVOKE(收回授权)数据查询(SQL的核心):DSL SELECT,4,简介,SQL语言的主要特点是(1)SQL语言是一种
2、一体化的语言,提供了完整的数据定义和操纵功能。(2)SQL语言具有完备的查询功能。(3)SQL语言非常简洁,易学易用。(4)SQL语言是一种高度非过程化的语言。(5)SQL语言的执行方式多样。(6)SQL语言不仅能对数据表进行各种操作,也可对视图进行操作。,5,简介,1、数据定义语句(一)创建 CREATE TABLE 创建数据表 CREATE VIEW 创建视图 CREATE DADABASE创建数据库(二)删除 DELETE DATABASE 删除数据库(三)修改 ALTER TABLE修改数据表结构,6,简介,2、数据操纵语句(一)修改数据表记录UPDATE UPDATE SET=表达式
3、;WHERE(二)删除数据表记录DELETE DELETE FROM WHERE(三)插入数据表记录 INSERT INTO;(字段名列表)VALUES()INSERT INTO;FROM ARRAY INSERT INTO;FROM MEMVAR,7,简介,3、数据控制语句有GRANT和REVOKE两个语句。命令对运行于网络上的数据库进行操作。GRANT用来授予用户对数据库的操作权限REVOKE用来收回用户对数据库的操作权限,8,7.1SQL的数据定义功能,7.1.1 创建和删除数据库表7.1.2 创建和删除视图7.1.3 修改数据库表,9,7.1.1创建和删除数据库表,7.1.1创建和删除
4、数据库表1、创建数据库表CREATE TABLE|DBF 表名1(字段名1 字段类型(字段宽度,小数位)NULL|NOT NULL CHECK 逻辑表达式1 ERROR 文本信息1 DEFAULT 表达式1 PRIMARY KEY|UNIQUE REFEENCES 表名2 TAG 标识名1,字段名2),PRIMARY KEY 表达式2 TAG 标识2|,UNIQUE 表达式3 TAG 标识3,FOREIGN KEY 表达式4 TAG 标识4 NODUP REFERENCES 表名3 TAG 标识5,CHECK 逻辑表达式2 ERROR 文本信息2),10,7.1.1创建和删除数据库表,【例7.
5、2】在stu1数据库中,建立学生信息表 OPEN DATABASE STU1 CREATE TABLE 学生信息(学号 C(6)PRIMARY KEY,姓名 C(8)NOT NULL,性别 C(2),年龄 N(3)CHECK 年龄10 AND 年龄40 ERROR“年龄范围在1045,请输入正确的年龄”,是否团员 L,入学年月 D DEFAULT CTOD(“09/012007”),11,7.1.1创建和删除数据库表,【例7.3】在stu1数据库中,建立课程信息表OPEN DATABASE STU1CREATE TABLE 课程信息(课程号 C(4)PRIMARY KEY,课程名 C(10),
6、学分 N(2)NULL,备注 M NOCPTRANS),12,7.1.1创建和删除数据库表,【例7.4】在stu1数据库中,建立选课信息表 OPEN DATABASE STU1CREATE TABLE 选课信息(学号 C(6),课程号 C(4),成绩 N(3)NULL,PRIMARY KEY 学号+课程号 TAG 学号课程号,FOREIGN KEY 学号 TAG 学号 REFERENCES 学生信息,FOREIGN KEY 课程号 TAG 课程号 REFERENCES 课程信息),13,7.1.1创建和删除数据库表,例7.2、例7.3、例7.4完成后,在STU1数据库设计器中,它们如下图所示。
7、,14,7.1.1创建和删除数据库表,2、删除数据库表 DROP TABLE 表名【例7.5】在stu1数据库中,删除选课信息表。OPEN DATABASE STU1DROP TABLE 选课信息,15,7.1.2创建和删除视图,1、创建视图在VFP中可以在命令窗口中使用CREATE VIEW命令打开“视图设计器”窗口,另外,VFP中还提供了直接利用SQL语言创建视图的命令。命令格式为:CREATE VIEW 视图名 AS SQL-SELECT命令,16,7.1.2创建和删除视图,(1)基于单个表的视图【例7.6】在stu1数据库中,基于“学生”表建立一个“学生基本信息”视图,包括“学号”、“
8、姓名”、“性别”、“专业”、“年级”字段。CREATE VIEW 学生基本信息 AS;SELECT 学号,姓名,性别,专业,年级;FROM 学生,17,7.1.2创建和删除视图,视图一经定义,就可以和基本表一样进行种查询,也可以进行一些修改操作。对于最终用户来说,有时并不需要知道操作的是基本表还是视图。这样建立视图之后,查询学生基本信息,可以使用命令:SELECT*FROM 学生基本信息或 SELECT 学号,姓名,性别,专业,年级 FROM 学生基本信息或 SELECT 学号,姓名,性别,专业,年级 FROM 学生,18,7.1.2创建和删除视图,【例7.7】在stu1数据库中,基于“学生”
9、表建立一个“学生基本信息2”视图,只输出土木工程系的学生,字段包括“学号”、“姓名”、“性别”、“专业”、“年级”字段。CREATE VIEW 学生基本信息2 AS;SELECT 学号,姓名,性别,专业,年级;FROM 学生 WHERE 专业=“土木工程”,19,7.1.2创建和删除视图,(2)基于多个表的视图【例7.8】在stu1数据库中,基于“a班成绩表”和“a班学生信息”两张表建立一个“学生成绩”视图,在视图中要求按姓名显示各同学的“数学”、“英语”和“计算机”成绩。CREATE VIEW 学生成绩 AS;SELECT a班学生信息.姓名,a班成绩表.数学,a班成绩表.英语,a班成绩表.
10、计算机;FROM a班成绩表,a班学生信息;WHERE a班成绩表.学号=a班学生信息.学号,20,7.1.2创建和删除视图,【例7.9】在stu1数据库中,基于“学生”、“课程”、“学生选课”三张表建立一个“学生成绩2”视图,在视图中要求按姓名和课程名显示所有成绩。CREATE VIEW 学生成绩2 AS;SELECT a.姓名,b.课程名,c.成绩;FROM 学生 a,课程 b,学生选课 c;WHERE a.学号=c.学号 AND b.课程ID=c.课程ID,21,7.1.2创建和删除视图,(3)视图中的计算字段【例7.10】在stu1数据库中,基于“教师信息表”建立一个“平均工资”视图,
11、在视图中要求按职称和平均工资显示各职称的平均工资。CREATE VIEW 平均工资 AS;SELECT 职称,AVG(基础工资)AS 平均工资;FROM 教师信息表 GROUP BY 职称 SELECT*FROM平均工资,22,7.1.2创建和删除视图,2、删除视图在SQL中删除视图的命令格式是:DROP VIEW视图名如果要删除视图“学生成绩”,只要键入命令DROP VIEW 学生成绩,23,7.1.3 修改数据库表,1、语句格式1(增加新字段、更改指定字段)ALTER TABLE 表名1 ADD|ALTER COLUMN 字段名 字段类型(字段宽度,小数位)NULL|NOT NULLCHE
12、CK 逻辑表达式1 ERROR 文本信息1DEFAULT 表达式1PRIMARY KEY|UNIQUEREFERENCES 表名2TAG 标识名1NOCPTRANS,24,7.1.3 修改数据库表,【例7.11】在例7.1创建的“研究生”表中增加“年龄”字段,类型为字符型,宽度为3。ALTER TABLE 研究生 ADD 年龄 C(3)【例7.12】修改例7.11“研究生”表中的“年龄”字段,类型为数值型,要求年龄必须限定在2050岁之间,并将“入学日期”的缺省值修改为“09/01/2008”。ALTER TABLE 研究生 ALTER 年龄 N(3)CHECK 年龄20 AND 年龄50AL
13、TER TABLE 研究生 ALTER 入学日期 D DEFAULT CTOD(09/01/2008),25,7.1.3 修改数据库表,2、语句格式2(修改指定表中指定字段的DEFAULT、CHECK约束规则,但不影响原有表的数据)ALTER TABLE 表名1 ALTER COLUMN 字段名2 NULL|NOT NULL SET DEFAULT 表达式2 SET CHECK 逻辑表达式2 ERROR 文本信息2 DROP DEFAULT DROP CHECK,26,7.1.3 修改数据库表,例7.13】修改例7.12“研究生”表中的“年龄”字段,要求年龄必须限定在1845岁之间,并将“入学
14、日期”的缺省值修改为“09/01/2007”。ALTER TABLE 研究生 ALTER 年龄 SET CHECK 年龄18 AND 年龄45ALTER TABLE 研究生 ALTER 入学日期 SET DEFAULT CTOD(09/01/2007)【例7.14】删除例7.13“研究生”表中对“年龄”字段的CHECK约束。ALTER TABLE 研究生 ALTER 年龄 DROP CHECK,27,7.1.3 修改数据库表,3、语句格式3(删除指定表中的指定字段、修改字段名、修改指定表的完整性规则,包括主索引、外索引、候选索引及表的合法值限定的添加或删除)ALTER TABLE 表名1 DR
15、OP COLUMN 字段名3 SET CHECK 逻辑表达式3 ERROR 文本信息3 DROP CHECK ADD PRIMARY KEY 表达式3 TAG 标识2 DROP PRIMARY KEY ADD UNIQUE 表达式4 TAG 标识3 DROP UNIQUE TAG 标识4 ADD FOREIGN KEY 表达式5 TAG 标识4 REFERENCES表名2 TAG 标识5 DROP FOREIGN KEY TAG 标识6 SAVE RENAME COLUMN 字段名4 TO字段名5 NOVALIDATE,28,7.1.3 修改数据库表,【例7.15】删除例7.2中建立的“学生信
16、息”表的主索引。ALTER TABLE 学生信息 DROP PRIMARY KEY【例7.16】用ALTER TABLE语句重新建立例7.15中被删除的“学生信息”表主索引。ALTER TABLE 学生信息 ADD PRIMARY KEY 学号 TAG 学号【例7.17】删除例7.4中建立的“选课信息”表的外索引“学号”。ALTER TABLE 选课信息 DROP FOREIGN KEY TAG 学号,29,7.1.3 修改数据库表,【例7-18】用ALTER TABLE语句重新建立例7.17中被删除的“选课信息”表外索引“学号”。ALTER TABLE 选课信息 ADD FOREIGN KE
17、Y 学号 TAG 学号 REFERENCES 学生信息 TAG 学号【例7.19】将“学生信息”表中的“入学年月”字段名修改为“入学日期”。ALTER TABLE 学生信息 RENAME COLUMN 入学年月 TO 入学日期,30,7.2 SQL的数据操作功能,7.2.1记录的插入7.2.2记录的修改7.2.3记录的删除,31,7.2.1记录的插入,1、语句格式1INSERT INTO 表名字段名1,字段名2,VALUES(表达式1表达式2,)在指定表的表尾添加一条新记录,其值为VALUES后面的值。当需要插入表所有字段的数据时,表名后面的字段可以缺省,但插入数据的格式必须与表的结构完全吻合
18、。若只需要插入表中某些字段的数据,那么就需要列出插入数据的字段名,且位置应与表对应。,32,7.2.1记录的插入,【例7.20】向“学生信息”表插入数据。INSERT INTO 学生信息 VALUES(081001,张小四,男,20,.T.,CTOD(09/01/2007)如果只想插入部分数据,则SQL语句为:INSERT INTO 学生信息(学号,姓名,性别,年龄);VALUES(081002,周倩雯,女,21),33,7.2.1记录的插入,2、语句格式2INSERT INTO 表名 FROM ARRAY 数组名添加一条新记录到指定的表中。数组中元素与表中各字段顺序对应。如果数组中元素的数据
19、类型与其对应的字段类型不一致,则新记录对应的字段为空值。如果表中字段个数大于数组元素的个数,则多出的字段为空值。,34,7.2.1记录的插入,【例7.21】先定义一个数组A(6),并赋予一组合适的值。再利用SQL命令将此数组的值作为新记录插入到“学生信息”表中。DIMENSION A(6)A(1)=081003A(2)=张华A(3)=女A(4)=19A(5)=.F.A(6)=CTOD(09/01/2008)INSERT INTO 学生信息 FROM ARRAY A,35,7.2.2记录的修改,语句格式为:UPDATE 数据库名!表名 SET 列名1=表达式1,列名2=表达式2 WHERE 条件
20、表达式1AND|OR条件表达式2UPDATE 指明将要修改的记录所在的表名和数据名。SET 指明被修改的字段及该字段的新值。如果省略WHERE子句,则该字段每一行都用同样的值来更新。WHERE指明将要修改的记录,即表中符合条件表达式的记录。,36,7.2.2记录的修改,【例7.23】将“选课信息”表中的所有课程号为“1001”成绩都分别提高5分,课程号为“1006”成绩置为空值。UPDATE 选课信息SET 成绩=成绩+5WHERE 课程号=”1001”UPDATE 选课信息SET 成绩=NULLWHERE 课程号=1006,37,7.2.3记录的删除,语句格式为:DELETE FROM 数据
21、库名!表名WHERE 条件表达式1AND|OR 条件表达式2 WHERE指明VFP只对满足条件的记录加删除标记。置了删除标记的记录并没有从物理上删除,只有执行了PACK命令,才能真正从物理上删除。置了删除标记的记录可以用RECALL命令取消删除标记。,38,7.2.3记录的删除,【例7.24】将“选课信息”表中的学号为“081004”的记录全部逻辑删除,然后彻底删除。DELETE FROM 选课信息;WHERE 学号=081004PACK,39,7.3 SQL的数据查询功能,7.3.1简单查询7.3.2嵌套查询7.3.3连接查询7.3.4分组及使用库函数查询7.3.5查询结果的合并,40,7.
22、3 SQL的数据查询功能,SELECT-SQL语句格式:SELECT ALL|DISTINCT TOP 数值表达式 PERCENT 表别名.检索项 AS 列名,表别名.检索项 AS列名.FROM 数据库名!表名AS 逻辑别名INTO 目标|TO FILE 文件名|TO PRINTER|TO SCREENWHERE 连接条件 AND连接条件.AND|OR 条件表达式 AND|OR 条件表达式.GROUP BY 列名,列名.HAVING 条件表达式UNION ALL SELECT语句ORDER BY 排序项 ASC|DESC,排序项ASC|DESC.,41,7.3 SQL的数据查询功能,整个语句的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Visual FoxPro数据库技术及应用第7章SQL结构化查询语言 FoxPro 数据库技术 应用 SQL 结构 查询 语言
链接地址:https://www.31ppt.com/p-2973935.html