数据库应用基础教程.ppt
《数据库应用基础教程.ppt》由会员分享,可在线阅读,更多相关《数据库应用基础教程.ppt(93页珍藏版)》请在三一文库上搜索。
1、数据库应用基础教程,中南大学出版社,2,5 数据库及其查询与视图,5.1 SQL语言 5.2 设计数据库 5.3 在数据库中查询数据 5.4 视图,3,5.1 SQL语言,SQL语言(Structured Query Language,简称SQL,结构化查询语言)是关系数据库标准语言。 SQL语言是一种非过程化语言,它面向集合操作,对数据提供自动导航。 SQL语言的几个特点: 非过程化。在SQL语言中,只要求用户提出“做什么”,而无需指出“怎么做”。 一体化。集DDL(数据定义语言)、DML(数据操作语言)、DCL(数据控制语言)为一体。 两种使用方式,统一的语法结构。一种为联机交互使用方式;
2、一种为嵌入某种高级程序设计语言的程序中,以实现数据库操作。,4,SQL语句语言精练,其数据查询、数据定义、数据操作、数据控制等命令只用了9个动词,它们是: 数据定义: CREATE,DROP,ALTER 数据查询: SELECT 数据操作: INSERT,UPDATE,DELETE 事务控制: GRANT,REVOKE,5,5.11 数据定义语句(DDL),数据定义语句是SQL中用来生成、修改、删除关系数据库的表、视图等基本要素的语言部分。它允许数据库用户来创建或重新构造数据库对象,如创建或删除一个数据库表。 1. 关于数据库的数据定义语句 (1) 建立数据库: CREATE DATABASE
3、; (2) 更改数据库: ALTER DATABASE; (3) 删除数据库: DROP DATABASE;,6,2、关于数据表的数据定义语句 (1) 创建表 命令格式: CREATE TABLE ( 列级完整性约束条件, 列级完整性约束条件,); 说明: 是所要定义表的名字 。表名必须以字母开头,最大长度为30个字符。 即属性名(要求列名唯一)。 完整性约束条件(对数据库表才起作用):就是当向某列输入数据时所必须遵守的规则,当用户操作表中的数据时,由数据库管理系统自动检查操作是否违背这些完整性约束条件。,7,例1. 建立一个学生关系;,操作命令: CREATE TABLE student (
4、sh NUMBER(6), 学号 Xm C(6), 姓名 Xb C(2), 性别 Csny D , 出生年月 Xdm C(3) 系代码 ),8,2 更改表 在实际操作中,可能需要对已创建的表进行修改,如增加新列、增加新的完整性约束条件或删除已有的完整性约束条件等。SQL提供了ALTER TABLE来完成这一功能。 命令格式: ALTER TABLE ADD 列级完整性约束条件 DROP ;,9,说明: 是所要修改的基本表的名字; ADD子句用于增加新列和新的完整性约束条件,如果表中已经存在数据的话,则所增加的列不能定义为NOT NULL,以免与完整性约束条件相抵触; DROP子句用于删除指定的
5、完整性约束条件;,ALTER TABLE ADD 列级完整性约束条 DROP 列级完整性约束条件;,10,例2:在student 表中增加新列jxj(奖学金),类型为数值型,宽度为5,小数位为2。 操作命令: ALTER TABLE student ADD jxj n(5,2) 3. 删除表 当某个表不再需要时,可以使用SQL的DROP TABLE语句进行删除,其一般格式为: DROP TABLE 例如:删除当前盘当前目录中表名为GZ1.DBF的文件。 操作命令: DROP TABLE GZ1,11,5.1.2 数据查询语句SELECT,数据查询是数据库的重要操作,SQL语言提供了SELECT
6、语句用于数据库的查询,该语句具有灵活的使用方法和丰富的功能。 命令格式: SELECT ALL|DISTINCT , FROM , WHERE GROUP BY HAVING ORDER BY ASC|DESC;,12,说明:,SELECT说明执行查询操作; 指查询结果表中包含的列名; DISTINCT说明要去掉重复的记录; FROM短语说明要查询的数据来自哪些表,可以对一个或多个基本表或视图进行查询。 WHERE短语说明查询的条件; GROUP BY短语用于对查询结果进行分组,可以利用它进行分组汇总; HAVING短语必须跟随GROUP BY使用,用来限定分组必须满足的条件; ORDER B
7、Y短语用来对查询结果进行排序; 注意:WHERE短语和HAVING短语区别。WHERE短语的作用对象是基本表或视图,而HAVING短语的作用对象是组;各个短语之间的位置不能随意更改。,13,应用举例:,例3.查询RSDA表中性别为男且ZC为教授的职工。 SELECT * FROM RSDA WHERE XB=“男” AND ZC=“教授” 例4. 查询RSDA表中性别为男的职工,显示时只显示部门编号、姓名、性别和职称内容。 SELECT bmbh,xm,xb,zc FROM RSDA WHERE XB=“男”,14,在SELECT 子句后,还可以用表达式来代替属性名指定,以满足对查询结果的要求
8、。 例5. 在rsda表中,jbgz属性表示职工的月工资,如果想查询职工的年工资,查询语句如下: SELECT XM,JBGZ*12 an_jbgz FROM RSDA 例6. 在工资后面注明单位是人民币(元)。 SELECT XM,JBGZ*12an_jbgz, 元 RMB FROM RSDA,15,5.1.3 数据操作语句(DML),数据操作语句允许用户对数据库中的数据进行修改更新。 1. INSERT语句 SQL的数据插入语句INSERT语句通常有两种形式。一种是插入一条记录,另一种是插入子查询结果,后者一次可以插入多条记录。 (1) 插入单个记录 INSERT INTO 表名(属性列1
9、 ,) VALUES (常量1 ,常量2);,16,其功能是将新记录插入指定表中。 的值为常量1; 的值为常量2,; 如果某些属性列在INTO子句中没有出现,则新记录在这些列上将取空值。 在表定义时说明了NOT NULL的属性列不能取空值,否则会出错。 若INTO子句中没有指明任何列名,则新插入的记录必须在每个属性列上均有值。,INSERT INTO 表名(属性列1 ,)VALUES (常量1 ,常量2);,17,(2) 插入多个记录 子查询嵌套在INSERT语句中,可以将一张表的查询结果输入到另一张表中。 INSERT INTO 新表名 (属性列1 ,属性列2) 子查询; 注意:此功能在vf
10、6.0中没有。,18,例7:向学生表中插入一个新的学生记录。 INSERT INTO student (sh,xm,xb,csny,xdm,jxj) VALUES(199801,王小平,女, 1983/12/14,01,300) 或 INSERT INTO student VALUES(199801,王小平,女, 1983/12/14,01,300) 因为插入的是一条完整的记录。 例8. 在上例中暂时不输入出生年月。 INSERT INTO student VALUES(199804,刘海艳,女,NULL,01,380),19,2. UPDATE语句 UPDATE 表名 SET 列名=表达式,
11、列名=表达式, WHERE 条件; 功能:修改指定表中满足WHERE子句条件的记录。 SET子句用于指定修改方法,即用表达式的值取代相应的属性列。 如果省略WHERE子句,则表示要修改表中的所有记录。 例如:将rsda表中性别为男的职工基本工资加500元。 UPDATE RSDA SET JBGZ=JBGZ+500 WHERE XB=“男“,20,3. DELETE语句 DELETE FROM WHERE ; 其功能是从指定表中删除满足WHERE子句条件的所有记录。 如果省略WHERE子句,则表示删除表中的全部记录。 例如:删除RSDA表中职称为“助教”的职工。 DELETE FROM RSD
12、A WHERE ZC=“助教”,21,5.1.4 事务控制语句,1. GRANT 命令 SQL语言用GRANT语句向用户授予操作权限。 命令格式: GRANT ,, ON TO ,, WITH GRANT OPTION;,22,不同类型的操作对象有不同的操作权限: 属性列和视图的操作权限有5种:查询(SELECT)、插入(INSERT)、更新(UPDATE)、删除(DELETE)以及这四种权限的总和(ALL PRIVILEGES)。 基本表的操作权限有7种:查询(SELECT)、插入(INSERT)、更新(UPDATE)、删除(DELETE)、修改表(ALTER)和建立索引(INDEX)以及这
13、六种权限的总和(ALL PRIVILEGES)。 对数据库可以有建立表(CREATETAB)的权限,该权限属于DBA,可由DBA授予普通用户, 普通用户拥有此权限后可以建立基本表,并拥有该基本表的一切操作权限。,23,若选用了WITH GRANT OPTION子句,则获得某种权限的用户还可以把这种权限授予别的用户,即可以传播该权限。因此,应该慎用或不用WITH GRANT OPTION子句,以控制自己的数据资源,避免不必要的损失。,24,2. REVOKE命令 授予的权限可以由DBA(数据库管理员)或者其它授权者用REVOKE语句收回。 命令格式: REVOKE ,, ON FROM ,,;,
14、25,5.2 设计数据库,使用自由表还是数据库表保存要管理的数据取决于管理数据之间是否存在关系以及关系的复杂程度。 数据库表文件与自由表文件一样,其扩展名仍然为 .DBF,数据库文件的扩展名为.DBC。 数据库设计的方法有二种: 命令方式; 数据库设计器。,26,5.2.1 用命令方式设计数据库,1. 创建数据库 命令格式: CREATE DATABASE 数据库名 | ? 功能:创建一个数据库并且打开它。 例:CREATE DATABASE Zgxx.dbc 新建立的数据库里面是空的,用户可以通过向数据库中添加表、表之间的关系等。,27,2. 在数据库中添加、创建和移去表 打开数据库后,可以
15、创建新表,或向数据库中添加已有的自由表,或从数据库中移去表,被移去的表则变成自由表。 例如:向数据库Zgxx中添加Rsda、Bmda、Gz三个表(数据库文件名和表文件名可省去扩展名)。 操作命令: OPEN DATABASE Zgxx ADD TABLE Rsda ADD TABLE Bmda ADD TABLE Gz,28,例如:在数据库中Zgxx中创建Rsda、Bmda、Gz三个新表。 操作命令: OPEN DATABASE Zgxx CREATE TABLE Rsda (BMBH C(2),BH C(5),XM C(8),XB C(2),HF L,CSNY D,ZC C(10),JBGZ
16、 N(6,2),XW G,JL M) CREATE TABLE Bmda (BMBH C(2),MC C(20) CREATE TABLE Gz (BMBH C(2),BH C(5),XM C(8),BT N(6,2),KK N(6,2),SFGZ N(7,2) 表名后括号内指出了表内各字段名、字段数据类型和宽度。新建的表自动属于创建该表时打开的数据库。,29,又如:在数据库中Zgxx中移去Rsda表。 操作命令: OPEN DATABASE Zgxx REMOVE TABLE Rsda 3. 数据库的关闭与删除 数据库关闭命令: CLOSE DATABASE ALL,表示关闭所有数据库。 数
17、据库删除命令: DELETE DATABASE DELETETABLES 对于数据库删除命令,有DELETETABLES子句时表示删除数据库及所属数据库表,否则仅删除数据库,所属数据库表变成自由表。删除数据库前必须关闭数据库,30,4. 创建关系 关系数据库中有一对一、一对多、多对多三种关系模型。在VFP中,只处理前两种关系,对于多对多的关系,需转换成两个一对多的关系实现。 在数据库中可以建立表间的永久关系和临时关系。 临时关系仅用于表间的关联,即控制关联表之间的记录指针的配合移动。自由表之间也可用命令实现关联,这些内容已在第4章中讨论,此处不再赘述。,31,在查询设计器和视图设计器中自动作为
18、默认联接条件; 在数据库设计器中显示为联系表索引的线; 作为表单和报表的默认关系在数据环境设计器中显示; 建立参照完整性信息。,永久关系是存储在数据库文件中的数据库表之间的关系,在数据库中,可通过数据库所属的数据库表的索引建立。永久关系具有如下特点:,在数据库表中,对一个字段可定义主索引 、普通索引、唯一索引或候选索引。在自由表中只能定义后三种索引。,32,主索引:要求相应字段的值不重复,即保证唯一性;主索引主要用于建立表间的永久关系,从而建立参照完整性。一个数据库表中只能有一个主索引。 创建主索引和删除主索引的命令: ALTER TABLE ADD|DROP PRIMARY KEY TAG
19、ADD用于建立索引,DROP用于删除索引,TAG后的表示用作主索引的字段名,可选项TAG子句缺省时,表示索引关键字与字段同名。,33,普通索引:普通索引不考虑数据字段的值是否有重复值,只简单的把记录按照一定的顺序进行排序。可作为一对多关系的“多方”,一个数据库表中可有多个普通索引。可用INDEX命令建立。 建立普通索引和联接主索引形成一对多的永久关系命令: ALTER TABLE ADD FOREIGN KEY TAG REFERENCES 唯一索引:是为VFP与前面版本兼容设计的,可用INDEX命令建立,一个数据库表中可有多个唯一索引。一般情况下不推荐用户使用。,34,候选索引:要求相应字段
20、的值不重复,可作为主关键字,用于在永久关系中建立参照完整性。一个数据库表中可有多个候选索引。 建立候选索引命令: ALTER TABLE ADD UNIQUE TAG 建立候选索引和联接主索引形成一对一的永久关系命令: ALTER TABLE ADD|ALTER UNIQUE REFERENCES 其中、是用作候选索引的字段的名字和数据类型。,35,5.2.2 用数据库设计器设计数据库,用数据库设计器设计数据库,需要完成下列步骤。 打开数据库设计器 操作步骤: 单击VFP下的“文件”菜单; 选定“新建”命令,打开“新建”对话框; 选择“数据库”选项; 单击“新建文件”按钮,打开“创建”对话框;
21、 输入要创建的数据库名和位置,单击“保存”按钮,打开“数据库设计器”窗口。,36,2. 将自由表添加进数据库 可用以下方法进行操作。 在数据库设计器窗口,单击右键弹出一快捷菜单,选择“添加表”命令。 当数据库设计器窗口已打开时,VFP会生成一个“数据库”系统菜单;单击“数据库”菜单下的“添加表”命令即可。 单击浮动在数据库设计器窗口的“数据库设计器工具栏”上“添加表”按钮。 3. 建立索引 4. 建立永久关系(用鼠标拖动的方法),37,应用举例演示:,按P87 表51 数据库zgxx中的永久关系定义创建数据库zgxx,其中包含RSDA、BMDA、GZ三个表。,38,5.2.3 数据字典,数据字
22、典实际上是一个名词概念。它是记录在数据库文件中的信息,这些信息包括从属于数据库的表的属性、每个表的字段属性、每个表的记录规则、表间关系和参照完整性(Referential Integrity,简称RI)信息。数据字典中的信息可通过命令、表设计器和参照完整性生成器进行设置、显示或修改。,39,1. 长表名 长表名是表的属性。 长表名用于对数据库表文件名增加适当的注释,让用户易于理解表的含义。表文件名还是短名字,是数据库表或自由表的默认表名。用户还可定义一个不超过128个字符的长表名代替短表名标识数据库表。长表名可包含字母、数字、下划线、汉字,但首字符必须是字母、下划线或汉字,不能使用空格。如果定
23、义了长表名,当表出现在界面(如数据库设计器、查询设计器、视图设计器、游览窗口的标题栏等)中时,VFP将显示长表名。,40,长表名的创建和修改方法: 用命令 命令格式: CREATE TABLE NAME (2) 用表设计器 例如:创建一个表文件名为“ABC”,长表文件名为“大学基础课程名称数据库表”。 命令为: CREATE TABLE ABC NAME ; 大学基础课程名称数据表; (课程编号 C(6),课程名称 C(30) 用表设计器演示。,41,2. 记录规则 记录规则包括记录有效性和触发器两类。 (1) 记录有效性 记录有效性验证,指建立一规则对同一记录中不同字段之间的逻辑关系进行验证
24、。规则栏指定规则,信息栏指定出错时的显示信息。如图5.5中。 规则和信息两栏的指定均可单击其右边按钮,在弹出的对话框中输入信息。 ( 2) 触发器 触发器包括插入触发器、更新触发器和删除触发器。指定一规则,当对数据库表进行插入(包括追加)、更新和删除时,验证规则,只有当规则成立时才能进行相应操作。规则可以是一逻辑表达式。,42,3. 字段的属性 长字段名 自由表的字段名最多包含10个字符,数据库表的字段名最多包含128个字符。 (2) 格式 格式文本框用于键入格式表达式,确定当前字段(活动框批示的字段,图5.6中显示的当前字段是BMBH))在浏览窗口、表单或报表中显示时采用的大小写、字体大小和
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 应用 基础教程
链接地址:https://www.31doc.com/p-3185004.html