1、2022-7-231第第4 4章章 数据库操作与数据库操作与SQLSQL语言语言讲述数据库的概念和相关操作以及讲述数据库的概念和相关操作以及SQLSQL结构化查询语言结构化查询语言2022-7-232 数据库(数据库(DataBase)就是按一定的组织结构存储在计就是按一定的组织结构存储在计算机内可共享使用的相关数据的集合。它以文件的形式组织算机内可共享使用的相关数据的集合。它以文件的形式组织管理一个或多个数据文件,并被多个用户所共享,它是数据管理一个或多个数据文件,并被多个用户所共享,它是数据库管理系统的重要组成部分。库管理系统的重要组成部分。在在Visual FoxPro中,数据库包含有数
2、据库表、视图等中,数据库包含有数据库表、视图等数据实体,又提供了数据字典、各种数据保护和数据管理功数据实体,又提供了数据字典、各种数据保护和数据管理功能,可将数据库看成是个收集表的能,可将数据库看成是个收集表的“容器容器”。数据库文件的扩展名是数据库文件的扩展名是.dbc,在建立数据库时,系统还,在建立数据库时,系统还会建立一个扩展名是会建立一个扩展名是.dct的数据库备注文件和一个扩展名的数据库备注文件和一个扩展名是是.dcx的数据库索引文件,因此的数据库索引文件,因此Visual FoxPro数据库包括数据库包括这这3个文件。个文件。数据库基本概念数据库基本概念2022-7-2334.1
3、4.1 数据库基本操作数据库基本操作4.1.1 数据库建立数据库建立数据库的建立有两种方法:数据库的建立有两种方法:使用使用“数据库设计器数据库设计器”和使用建立和使用建立数据库的命令数据库的命令。1.用数据库设计器建立数据库用数据库设计器建立数据库 菜单菜单“文件文件”|“新建新建”,打开,打开“新建新建”对话框,选定对话框,选定“文件类型文件类型”为为“数据库数据库”选项按钮,单击选项按钮,单击“新建文件新建文件”,打,打开开“创建创建”对话框,在对话框,在“数据库名数据库名”文本框中输入所建的数据文本框中输入所建的数据库名,单击库名,单击“保存保存”按钮按钮建立数据库,同时打开建立数据库
4、,同时打开“数据库设数据库设计器计器”窗口窗口。利用利用“数据库设计器数据库设计器”提供的工具或菜单,可以方便的建提供的工具或菜单,可以方便的建立数据库表或建立视图,也可以将自由表添加到数据库中,成立数据库表或建立视图,也可以将自由表添加到数据库中,成为数据库表,以及建立数据库表间的永久关联关系等数据库操为数据库表,以及建立数据库表间的永久关联关系等数据库操作。作。2022-7-234 利用利用“数据库设计器数据库设计器”,新建数据库,新建数据库rsgzk.dbcrsgzk.dbc,并,并将表将表rsb.dbfrsb.dbf、gzb.dbfgzb.dbf、bmdm.dbfbmdm.dbf和和z
5、z.dbfzz.dbf添加到新数据添加到新数据库中,成为数据库表。库中,成为数据库表。建立数据库建立数据库:菜单:菜单“文件文件”|“|“新建新建”命令,选命令,选“文件文件类型类型”为为“数据库数据库”选项按钮,单击选项按钮,单击“新建文件新建文件”,在,在“数据库名数据库名”文本框中输入文本框中输入rsgzk.dbcrsgzk.dbc,单击,单击“保存保存”按按钮,此时建立数据库钮,此时建立数据库rsgzk.dbcrsgzk.dbc,同时打开,同时打开“数据库设计数据库设计器器”窗口。窗口。添加数据表添加数据表:在:在“数据库设计器数据库设计器”窗口,单击窗口,单击“数据库数据库设计器设计
6、器”工具中的工具中的“添加表添加表”按钮,在按钮,在“打开打开”对话框中对话框中选定选定rsb.dbfrsb.dbf,单击,单击“确定确定”按钮,按钮,rsb.dbfrsb.dbf就添加到了就添加到了rsgzkrsgzk数据库中,用同样的方法添加表数据库中,用同样的方法添加表gzb.dbfgzb.dbf、bmdm.dbfbmdm.dbf和和zz.dbfzz.dbf。例例4-12022-7-235命令格式:命令格式:CREATE DATABASE CREATE DATABASE 功能:建立一个数据库同时打开它。功能:建立一个数据库同时打开它。例如建立例如建立gzk.dbcgzk.dbc的命令如下
7、:的命令如下:CREATE DATABASE gzkCREATE DATABASE gzk2.用命令方式建立数据库用命令方式建立数据库2022-7-236 数据库表数据库表:归属于某个数据库的表称为数据库表。:归属于某个数据库的表称为数据库表。自由表自由表:独立存在、不与任何数据库相关联的表称为自由:独立存在、不与任何数据库相关联的表称为自由表。表。数据库表与自由表是数据库表与自由表是Visual FoxProVisual FoxPro中表的两种存在状态,中表的两种存在状态,这两种表是可以相互转化的,需要注意的是当数据库表转化成这两种表是可以相互转化的,需要注意的是当数据库表转化成自由表时,其
8、数据库表特有的属性将会丢失。自由表时,其数据库表特有的属性将会丢失。数据库表的优点数据库表的优点:可以使用长表名,可以使用长字段名;:可以使用长表名,可以使用长字段名;可以为字段制定标题和添加注释;可以为字段制定默认值和输可以为字段制定标题和添加注释;可以为字段制定默认值和输入掩码;字段有默认的控件类;可以为字段设定字段级规则和入掩码;字段有默认的控件类;可以为字段设定字段级规则和记录级规则;支持插入、更新和删除事件的触发器;支持主关记录级规则;支持插入、更新和删除事件的触发器;支持主关键字,表间永久关系和参照完整性规则等。键字,表间永久关系和参照完整性规则等。3.数据库表数据库表2022-7
9、-2374.1.2 4.1.2 数据库操作命令数据库操作命令1.1.打开数据库命令打开数据库命令命令格式:命令格式:OPEN DATABASE OPEN DATABASE 功能:打开一个数据库。功能:打开一个数据库。例如打开数据库例如打开数据库gzk.dbcgzk.dbc的命令如下:的命令如下:OPEN DATABASE gzkOPEN DATABASE gzk2.2.关闭数据库命令关闭数据库命令命令格式:命令格式:CLOSE DATABASE ALLCLOSE DATABASE ALL功能:关闭当前的数据库和它的表。选择功能:关闭当前的数据库和它的表。选择ALLALL表示关闭所有打开的数据库
10、表示关闭所有打开的数据库和它们的表、所有的自由表以及索引文件,返回和它们的表、所有的自由表以及索引文件,返回1 1号工作区。号工作区。例如关闭当前数据库例如关闭当前数据库gzk.dbcgzk.dbc的命令如下:的命令如下:CLOSE DATABASECLOSE DATABASE2022-7-238命令格式:命令格式:MODIFY DATABASE MODIFY DATABASE 功能:打开数据库设计器,以交互方式查看和修改当前数据库。功能:打开数据库设计器,以交互方式查看和修改当前数据库。例如查看和修改数据库例如查看和修改数据库gzk.dbcgzk.dbc的命令如下:的命令如下:MODIFY
11、DATABASE gzk.dbcMODIFY DATABASE gzk.dbc4.4.向数据库中添加表命令向数据库中添加表命令命令格式:命令格式:ADD TABLE ADD TABLE 功能:向当前数据库添加一个自由表。功能:向当前数据库添加一个自由表。例如向数据库例如向数据库gzk.dbcgzk.dbc添加自由表添加自由表gzb1.dbfgzb1.dbf(它为(它为gzb.dbfgzb.dbf的复制表)和的复制表)和zz1.dbfzz1.dbf(zz.dbfzz.dbf的复制表)。的复制表)。OPEN DATABASE gzkOPEN DATABASE gzkADD TABLE gzb1AD
12、D TABLE gzb1ADD TABLE zz1ADD TABLE zz1MODIFY DATABASEMODIFY DATABASE&查看添加到数据库里的表查看添加到数据库里的表CLOSE DATABASECLOSE DATABASE3.查看和修改数据库结构查看和修改数据库结构2022-7-239命令格式:命令格式:REMOVE TABLE REMOVE TABLE 功能:从当前数据库中移去一个表。功能:从当前数据库中移去一个表。例如从数据库例如从数据库gzk.dbcgzk.dbc中移出表中移出表zz1.dbfzz1.dbf。OPEN DATABASE gzkOPEN DATABASE g
13、zkREMOVE TABLE zz1REMOVE TABLE zz1&在确认对话框选在确认对话框选“是是”,移出数据库表,移出数据库表zz1zz1MODIFY DATABASEMODIFY DATABASE&查看移出表后的数据库查看移出表后的数据库CLOSE DATABASECLOSE DATABASE6.6.删除数据库命令删除数据库命令命令格式:命令格式:DELETE DATABASE DELETE DATABASE 功能:从磁盘中删除一个数据库文件。功能:从磁盘中删除一个数据库文件。例如从磁盘中删除数据库文件例如从磁盘中删除数据库文件gzk.dbcgzk.dbc。CLOSE DATABAS
14、E ALLCLOSE DATABASE ALL&关闭所有打开的数据库关闭所有打开的数据库DELETE DATABASE gzk.dbcDELETE DATABASE gzk.dbc&在确认对话框选在确认对话框选“是是”,删除数据库,删除数据库5.5.从数据库中移去表命令从数据库中移去表命令2022-7-2310命令格式:命令格式:PACK DATABASEPACK DATABASE功能:从当前数据库中将做了删除标记的记录清除功能:从当前数据库中将做了删除标记的记录清除掉。掉。说明:使用该命令时要求当前数据库必须是独占打说明:使用该命令时要求当前数据库必须是独占打开,并且数据库表和视图均没有被打
15、开使用。开,并且数据库表和视图均没有被打开使用。例如清理数据库例如清理数据库gzk.dbcgzk.dbc的命令如下:的命令如下:OPEN DATABASE gzk OPEN DATABASE gzk PACK DATABASEPACK DATABASECLOSE DATABASECLOSE DATABASE7.7.清理数据库命令清理数据库命令2022-7-2311命令格式:命令格式:SET DATABASE TO SET DATABASE TO 功能:指定一个打开的数据库,使它成为当前数据库。如果功能:指定一个打开的数据库,使它成为当前数据库。如果省略数据库名,则打开的数据库都不会成为当前数据
16、库。省略数据库名,则打开的数据库都不会成为当前数据库。例如,打开例如,打开2 2个数据库,设置第一个数据库为当前数据库,个数据库,设置第一个数据库为当前数据库,然后使用然后使用 DBC()DBC()函数显示当前数据库的名称:函数显示当前数据库的名称:OPEN DATABASE rsgzkOPEN DATABASE rsgzkOPEN DATABASE gzkOPEN DATABASE gzkSET DATABASE TO rsgzkSET DATABASE TO rsgzk?DBC()&?DBC()&在屏幕上显示在屏幕上显示rsgzk.dbcrsgzk.dbc8选择当前数据库命令选择当前数据库
17、命令2022-7-2312数据库文件(数据库文件(.DBC.DBC文件)本身也是一个表,表中存储了有关文件)本身也是一个表,表中存储了有关数据库及其对象的所有信息。数据库中的每个表、视图、字数据库及其对象的所有信息。数据库中的每个表、视图、字段、索引标记、永久关系等都有一条记录。段、索引标记、永久关系等都有一条记录。例如浏览数据库例如浏览数据库rsgzk.dbcrsgzk.dbc的命令如下:的命令如下:CLOSE DATABASE ALL CLOSE DATABASE ALL&浏览前首先关闭浏览前首先关闭.DBC.DBC文件文件USE rsgzk.dbcUSE rsgzk.dbc&打开数据库文
18、件必须指明扩展名打开数据库文件必须指明扩展名.DBC.DBCBROWSEBROWSE9浏览数据库文件浏览数据库文件2022-7-23134.2 4.2 数据数据字典字典 数据字典就是包含数据库中所有表信息的一个表。存储在数据字典就是包含数据库中所有表信息的一个表。存储在数据字典中的信息称之为元数据,包括长表名、长字段名、数据字典中的信息称之为元数据,包括长表名、长字段名、有效性规则、触发器,表间永久关系以及数据库对象的定义有效性规则、触发器,表间永久关系以及数据库对象的定义等。等。使用数据字典,可以设置字段级和记录级的有效性检查,使用数据字典,可以设置字段级和记录级的有效性检查,保证主关键字字
19、段内容的唯一性。保证主关键字字段内容的唯一性。4.2.1 4.2.1 字段级规则字段级规则 字段级规则主要包括显示属性、字段有效性和字段注释字段级规则主要包括显示属性、字段有效性和字段注释三部分。三部分。2022-7-2314“格式格式”文本框中输入格式化代码,确定文本框中输入格式化代码,确定该字段在浏览窗口、表单和报表中显示的该字段在浏览窗口、表单和报表中显示的格式,它是对字段格式进行整体控制的。格式,它是对字段格式进行整体控制的。字段级规字段级规则设置则设置“输入掩码输入掩码”文本文本框中键入掩码代码,框中键入掩码代码,输入掩码是按位来输入掩码是按位来控制格式的。控制格式的。显示的标显示的
20、标题改为自题改为自己希望的己希望的标题标题 字段有效性就是用字段有效性就是用于数据输入正确性于数据输入正确性的检验。的检验。说明该字段的用途、说明该字段的用途、特性、使用说明等特性、使用说明等补充信息补充信息 字段级规则字段级规则2022-7-23154.2.2 记录级规则记录级规则记录级规则主要包括记录有效性、触发器的设置和表注释。记录级规则主要包括记录有效性、触发器的设置和表注释。“教授的基本工资要教授的基本工资要1650元,元,其他职工为:其他职工为:550基本工资基本工资3000 职称职称=教授教授.AND.基本工资基本工资=1650.OR.职称职称#教授教授.AND.(基本工资基本工
21、资=550.AND.基本工资基本工资=3000)每逢星期一才可做插入、追加、每逢星期一才可做插入、追加、更新和删除记录的操作:更新和删除记录的操作:CDOW(DATE()=Monday 2022-7-23164.2.34.2.3 表间规则表间规则1.永久关系永久关系 永久关系是数据库表间的关系,它们存储在数据库文件中。永久关系是数据库表间的关系,它们存储在数据库文件中。利用利用“数据库设计器数据库设计器”来建立永久关系:来建立永久关系:在在“数据库设计器数据库设计器”中,中,用鼠标从一个表的主索引或候选索引用鼠标从一个表的主索引或候选索引拖到另一个表的任一索引拖到另一个表的任一索引,当出现表间
22、关联连线时就表示关系已,当出现表间关联连线时就表示关系已建立。用鼠标右键单击连线,弹出快捷菜单,可以进行删除关系、建立。用鼠标右键单击连线,弹出快捷菜单,可以进行删除关系、编辑关系和编辑参照完整性操作。编辑关系和编辑参照完整性操作。例例4-24-2为例为例4-14-1的数据库的数据库rsgzk.dbcrsgzk.dbc中的各表建立永久关系。中的各表建立永久关系。(1 1)建立各表的索引。建立各表的索引。(2 2)利用数据库设计器,画出表间关系连线。)利用数据库设计器,画出表间关系连线。建立表建立表rsbrsb与表与表gzbgzb的连线:形成一条一一关系连线的连线:形成一条一一关系连线 建立表建
23、立表rsbrsb与表与表zzzz的连线:形成一条一多关系连线的连线:形成一条一多关系连线 建立表建立表rsbrsb与表与表bmdmbmdm的连线的连线 :形成一条多一关系连线:形成一条多一关系连线 2022-7-2317一一关系连线一一关系连线 多一关系连线多一关系连线 一多关系连线一多关系连线 各表间的永久关系各表间的永久关系2022-7-23182.2.参照完整性参照完整性 参照完整性是控制数据库中不同表的主关键字和外部关键字之间数参照完整性是控制数据库中不同表的主关键字和外部关键字之间数据一致性的关系规则。参照完整性则属于表间规则。据一致性的关系规则。参照完整性则属于表间规则。用户可以通
24、过用户可以通过“参照完整性生成器参照完整性生成器”来进行规则设置,从而控制相来进行规则设置,从而控制相关表的更新、删除和插入记录的数据完整性。关表的更新、删除和插入记录的数据完整性。(1)打开)打开“参照完整性生成器参照完整性生成器”窗口窗口 双击两表之间的连线,在双击两表之间的连线,在“编辑关系编辑关系”对话框中选定【参照完整性】对话框中选定【参照完整性】按钮。按钮。(2)设置更新、删除、插入三个规则)设置更新、删除、插入三个规则 更新规则更新规则:是指修改父表中关键字值时所使用的规则,包括级联、:是指修改父表中关键字值时所使用的规则,包括级联、限制和忽略限制和忽略3种。种。删除规则删除规则
25、:是指删除父表中的记录时使用的规则,包括级联、限制:是指删除父表中的记录时使用的规则,包括级联、限制和忽略和忽略3种。种。插入规则插入规则:是指在子表中插入新的记录,或更新已存在的记录时所:是指在子表中插入新的记录,或更新已存在的记录时所用的规则,包括限制和忽略用的规则,包括限制和忽略2种。种。2022-7-2319更新规则更新规则删除规则删除规则插入规则插入规则级联级联当父表中的关键当父表中的关键字值被修改时,字值被修改时,系统用新的关键系统用新的关键字值更新子表中字值更新子表中所有相关记录所有相关记录当父表的记录被当父表的记录被删除时,系统相删除时,系统相应的删除子表中应的删除子表中所有相
26、关记录所有相关记录限制限制若子表有相关记若子表有相关记录,则系统禁止录,则系统禁止父表中的关键字父表中的关键字值被修改值被修改若子表有相关记若子表有相关记录,则系统禁止录,则系统禁止父表的记录被删父表的记录被删除除若父表中不存若父表中不存在匹配的关键在匹配的关键字值,则禁止字值,则禁止在子表插入一在子表插入一个新记录或更个新记录或更新一个已存在新一个已存在的记录的记录忽略忽略允许更新允许更新允许删除允许删除允许插入允许插入参照完整性的各项功能参照完整性的各项功能2022-7-2320在浏览在浏览bmdmbmdm表时将计算机系的代码表时将计算机系的代码修改为修改为A04A04,则子表,则子表rs
27、brsb中部门是计中部门是计算机系的所有记录的部门代码字段算机系的所有记录的部门代码字段值都被更新为值都被更新为“A04”A04”。参照完整性设置举例参照完整性设置举例2022-7-23214.3 4.3 关系型数据库标准语言关系型数据库标准语言SQLSQL SQLSQL是是Structured Query LanguageStructured Query Language(结构化查询语言)的英(结构化查询语言)的英文缩写,它是关系型数据库的标准操作语言,几乎所有的数据文缩写,它是关系型数据库的标准操作语言,几乎所有的数据库产品都采用和支持该语言。库产品都采用和支持该语言。SQLSQL是一种综
28、合的、通用的、功能强大的关系数据库语言,是一种综合的、通用的、功能强大的关系数据库语言,它包括数据定义语言(它包括数据定义语言(DDLDDL)、数据操纵语言()、数据操纵语言(DMLDML)、数据控)、数据控制语言(制语言(DCLDCL)三大部分。)三大部分。数据定义语言数据定义语言:用于定义、修改和撤消数据库、表对象等。:用于定义、修改和撤消数据库、表对象等。数据操纵语言数据操纵语言:用于数据库中表记录的修改和检索等。:用于数据库中表记录的修改和检索等。数据控制语言数据控制语言:用于数据访问权限的控制等。:用于数据访问权限的控制等。2022-7-23224.3.1 SQL4.3.1 SQL数
29、据定义命令数据定义命令1.1.建立表建立表2.2.修改表的结构修改表的结构3.3.删除表删除表2022-7-2323命令格式:命令格式:CREATE TABLE|DBFCREATE TABLE|DBF 1NAME NAME FREE FREE(,)NULL|NOT NULL NULL|NOT NULL CHECK CHECK ERROR ERROR 1DEFAULT DEFAULT 1 PRIMARY KEYPRIMARY KEY|UNIQUE|UNIQUEREFERENCES REFERENCES TAG TAG NOCPTRANS1NOCPTRANS ,2,PRIMARY KEY,PRIM
30、ARY KEY TAG TAG|,UNIQUE|,UNIQUE 3 TAG TAG 3,FOREIGN KEY,FOREIGN KEY TAG TAG NODUP4 NODUPREFERENCES REFERENCES TAG TAG 5,CHECK,CHECK ERROR ERROR)|FROM ARRAY 2)|FROM ARRAY 数组名数组名功能:由给定的字段参数建立一个数据表。功能:由给定的字段参数建立一个数据表。1.1.建立表建立表2022-7-2324建立人事管理数据库建立人事管理数据库rsgl.dbcrsgl.dbc,并用,并用SQLSQL命令建立命令建立rs.dbf(rs.d
31、bf(编号编号C(4)C(4),姓名,姓名C(8)C(8),身份证号,身份证号C(18)C(18),性别,性别C(2)C(2),出生日期,出生日期D D,基,基本工资本工资N(9,2),N(9,2),简历简历M)M),表中编号字段为主关键字。,表中编号字段为主关键字。代码如下:代码如下:CLOSE DATABASES ALLCLOSE DATABASES ALL&关闭所有数据库关闭所有数据库CREATE DATABASES rsglCREATE DATABASES rsgl&建立建立rsglrsgl数据库数据库CREATE TABLE rs(CREATE TABLE rs(编号编号 C(4),
32、C(4),姓名姓名 C(8),C(8),身份证号身份证号 C(18),C(18),性别性别 C(2),;C(2),;出生日期出生日期 D,D,基本工资基本工资 N(9,2),N(9,2),简历简历 M)M)&在在rsglrsgl数据库中创建表数据库中创建表rsrsMODIFY DATABASESMODIFY DATABASES&打开打开“数据库设计数据库设计”窗口,显示窗口,显示rsrs表表 例例4-34-32022-7-23252.2.修改表的结构修改表的结构(1 1)增加或修改字段)增加或修改字段 命令格式:命令格式:ALTER TABLE ALTER TABLE ADD|ALTER CO
33、LUMNADD|ALTER COLUMN (,)NULL|NOT NULLNULL|NOT NULLCHECK CHECK ERROR ERROR DEFAULT DEFAULT PRIMARY KEYPRIMARY KEY|UNIQUE|UNIQUEREFERENCESREFERENCES TAG TAG 1NOCPTRANSNOCPTRANSNOVALIDATENOVALIDATE功能:增加或修改字段功能:增加或修改字段 增加新的字段增加新的字段 修改原有的字段修改原有的字段 2022-7-2326继续给上例表继续给上例表rs.dbfrs.dbf完成下列操作:完成下列操作:增加增加1 1个
34、个“籍贯籍贯C(8)”C(8)”字段。字段。将原来的将原来的“编号编号”字段的宽度由字段的宽度由4 4改为改为6 6。修改修改“基本工资基本工资”字段的有效性规则,要求基本工资不小于字段的有效性规则,要求基本工资不小于200200,出错,出错信息提示为信息提示为“最低工资额为最低工资额为200200元元”。将将“编号编号”字段设置成主索引字段。字段设置成主索引字段。代码如下:代码如下:OPEN DATABASES rsglOPEN DATABASES rsglALTER TABLE rs ADD ALTER TABLE rs ADD 籍贯籍贯 C(8)C(8)&增加字段增加字段MODIFY S
35、TRUCTUREMODIFY STRUCTURE&查看结构的变化查看结构的变化ALTER TABLE rs ALTER ALTER TABLE rs ALTER 编号编号 C(6)C(6)&修改字段的宽度修改字段的宽度MODIFY STRUCTURE MODIFY STRUCTURE ALTER TABLE rs ALTER ALTER TABLE rs ALTER 基本工资基本工资 n(9,2)CHECK n(9,2)CHECK 基本工资基本工资=200;=200;ERROR ERROR 最低工资额为最低工资额为200200元元 MODIFY STRUCTURE MODIFY STRUCTU
36、RE ALTER TABLE rs ADD PRIMARY KEY ALTER TABLE rs ADD PRIMARY KEY 编号编号 TAG bhTAG bh&设置成主索引字段设置成主索引字段MODIFY STRUCTURE MODIFY STRUCTURE CLOSE DATABASES ALLCLOSE DATABASES ALL例例4-42022-7-2327命令格式:命令格式:ALTER TABLE ALTER TABLE ALTER|DROP COLUMN ALTER|DROP COLUMN 1NULL|NOT NULLNULL|NOT NULLSET DEFAULT SET
37、DEFAULT SET CHECK SET CHECK ERROR ERROR DROP DEFAULTDROP DEFAULTDROP CHECKDROP CHECKNOVALIDATENOVALIDATERENAME COLUMN RENAME COLUMN TO TO 3功能:定义、修改、删除字段及有效性规则和默认值功能:定义、修改、删除字段及有效性规则和默认值。修改字段修改字段 删除字段删除字段 字段改字段改名名(2 2)设置字段属性)设置字段属性2022-7-2328继续对表继续对表rs.dbfrs.dbf完成下列操作:完成下列操作:修改修改“性别性别”字段的默认值为字段的默认值为“
38、男男”。删除删除“基本工资基本工资”字段的有效性规则。字段的有效性规则。删除删除“籍贯籍贯”字段。字段。将将“基本工资基本工资”字段改名为字段改名为“工资工资”字段。字段。代码如下:代码如下:OPEN DATABASES rsglOPEN DATABASES rsglALTER TABLE rs ALTER ALTER TABLE rs ALTER 性别性别 SET DEFAULT SET DEFAULT 男男 MODIFY STRUCTUREMODIFY STRUCTUREALTER TABLE rs ALTER ALTER TABLE rs ALTER 基本工资基本工资 DROP CHEC
39、KDROP CHECKMODIFY STRUCTUREMODIFY STRUCTUREALTER TABLE rs DROP ALTER TABLE rs DROP 籍贯籍贯MODIFY STRUCTUREMODIFY STRUCTUREALTER TABLE rs RENAME COLUMN ALTER TABLE rs RENAME COLUMN 基本工资基本工资 TO TO 工资工资MODIFY STRUCTUREMODIFY STRUCTURECLOSE DATABASES ALLCLOSE DATABASES ALL 例例4-54-52022-7-2329(1 1)将数据库表从数据库
40、中移出)将数据库表从数据库中移出 命令格式:命令格式:REMOVE TABLE REMOVE TABLE|?DELETE RECYCLE|?DELETE RECYCLE功能:从数据库中移去表。功能:从数据库中移去表。例例4-6 4-6 在在rsglrsgl数据库中移去数据库中移去rs.dbfrs.dbf表。表。OPEN DATABASES rsglOPEN DATABASES rsglREMOVE TABLE rsREMOVE TABLE rs&将表将表rs.dbfrs.dbf从从rsgl.dbcrsgl.dbc中移去,成为自由中移去,成为自由表表MODIFY DATABASESMODIFY
41、DATABASES将表删除将表删除到回收站到回收站 表示从磁盘表示从磁盘上删除数据上删除数据表表 3.3.删除表删除表2022-7-2330命令格式:命令格式:DROP TABLE DROP TABLE|?RECYCLE|?RECYCLE功能:从数据库和磁盘上将表直接删除掉。功能:从数据库和磁盘上将表直接删除掉。例例4-7 4-7 将将rs.dbfrs.dbf表复制表复制rs1.dbfrs1.dbf,然后将,然后将rs1.dbfrs1.dbf添加到添加到rsglrsgl数据库中,数据库中,然后再将其从数据库和磁盘中一起删除。然后再将其从数据库和磁盘中一起删除。代码如下:代码如下:CLOSE A
42、LLCLOSE ALLUSE rsUSE rsCOPY TO rs1COPY TO rs1&复制成表复制成表rs1.dbfrs1.dbfOPEN DATABASES rsglOPEN DATABASES rsglADD TABLE rs1ADD TABLE rs1&添加表添加表rs1.dbfrs1.dbf到到rsgl.dbcrsgl.dbcMODIFY DATABASESMODIFY DATABASES&显示数据库显示数据库DROP TABLE rs1DROP TABLE rs1&将表从数据库和磁盘上一起删除将表从数据库和磁盘上一起删除CLOSE DATABASESCLOSE DATABASE
43、SDIR DIR*.dbf.dbf(2 2)将表从数据库和磁盘上删除的)将表从数据库和磁盘上删除的DROP TABLEDROP TABLE命令命令2022-7-23314.3.2 SQL4.3.2 SQL数据操纵命令数据操纵命令SQLSQL的数据操纵命令主要包括三个部分:的数据操纵命令主要包括三个部分:记录的插入记录的插入记录的更新记录的更新记录的删除记录的删除 2022-7-2332命令格式:命令格式:INSERT INTO INSERT INTO (,.)2,.)VALUES(VALUES(,.)2,.)或或INSERT INTO INSERT INTO FROM ARRAY FROM A
44、RRAY|FROM MEMVAR|FROM MEMVAR功能:在表的末尾追加一条新的记录。功能:在表的末尾追加一条新的记录。例例4-8 4-8 向表向表rs.dbfrs.dbf表插入一条记录。表插入一条记录。代码如下:代码如下:OPEN DATABASES rsglOPEN DATABASES rsglINSERT INTO rs(INSERT INTO rs(编号编号,姓名姓名,性别性别,出生日期出生日期);VALUE(0101,VALUE(0101,李明李明,男男,1965/05/06),1965/05/06)LISTLISTCLOSE DATABASESCLOSE DATABASES1.
45、1.插入记录插入记录2022-7-2333命令格式:命令格式:UPDATE UPDATE SET SET =,=.2.WHERE WHERE 功能:更新满足条件的记录,该记录指定字段值由相对应的表达式值来功能:更新满足条件的记录,该记录指定字段值由相对应的表达式值来代替。代替。例例4-9 4-9 将表将表rsb.dbfrsb.dbf复制成复制成rsb1.dbfrsb1.dbf,然后对表,然后对表rsb1.dbfrsb1.dbf中的职称为中的职称为“讲师讲师”的职工基本工资都增加的职工基本工资都增加3535元。元。代码如下:代码如下:USE RSB USE RSB LISTLISTCOPY TO
46、 rsb1COPY TO rsb1UPDATE rsb1 SET UPDATE rsb1 SET 基本工资基本工资=基本工资基本工资+35 WHERE+35 WHERE 职称职称=讲师讲师 SELECT rsb1SELECT rsb1LISTLISTUSEUSE2.2.更新记录更新记录2022-7-2334命令格式:命令格式:DELETE FROM DELETE FROM WHERE WHERE 功能:逻辑删除表中满足条件的记录,即对满足条件的记录功能:逻辑删除表中满足条件的记录,即对满足条件的记录做删除标志。做删除标志。例例4-10 4-10 将表将表rsb1.dbfrsb1.dbf中姓名是
47、中姓名是“陈宏陈宏”的记录删除。的记录删除。代码如下:代码如下:DELETE FROM rsb1 WHERE DELETE FROM rsb1 WHERE 姓名姓名=陈宏陈宏&做删除标记做删除标记SELECT rsb1SELECT rsb1LISTLISTPACKPACK&彻底删除有删除标记的记录彻底删除有删除标记的记录LISTLISTUSEUSE3.3.删除记录删除记录2022-7-23354.3.3 SQL4.3.3 SQL数据查询命令数据查询命令Visual FoxProVisual FoxPro有两种方式来实现有两种方式来实现SQLSQL查询:查询:一、使用命令操作一、使用命令操作二、
48、界面操作二、界面操作2022-7-2336命令格式:命令格式:SELECTSELECT ALL|DISTINCT TOP ALL|DISTINCT TOP PERCENT PERCENT.1.1 AS AS,.2.2 AS AS 2 FROMFROM FORCE FORCE!AS AS 1INNER INNER|LEFT OUTER|RIGHT OUTER|FULL OUTER|LEFT OUTER|RIGHT OUTER|FULL OUTER JOIN JOIN !2!2 AS AS 2ON ON INTO INTO|TO FILETO FILE ADDITIVE|ADDITIVE|TO P
49、RINTERTO PRINTER PROMPT PROMPT|TO SCREENTO SCREENPREFERENCE PREFERENCE NOCONSOLE PLAIN NOWAIT NOCONSOLE PLAIN NOWAIT WHERE WHERE AND AND AND|OR AND|OR 1 AND|OR AND|OR 2 GROUP BY GROUP BY ,2 HAVING HAVING UNION ALL SELECT UNION ALL ORDER BYORDER BY ASC|DESC,ASC|DESC,ASC|DESC 2 ASC|DESC 功能:从一个或多个数据表中检
50、索一个记录集合(即表格),集合由指定的字段功能:从一个或多个数据表中检索一个记录集合(即表格),集合由指定的字段名组成,形成一个查询结果表。名组成,形成一个查询结果表。1.1.命令方式命令方式2022-7-2337 例例4-11 4-11 在在rsb.dbfrsb.dbf中查询显示所有职工编号、姓名、性别、年龄、职中查询显示所有职工编号、姓名、性别、年龄、职称和基本工资字段内容。称和基本工资字段内容。SELECT SELECT 编号编号,姓名姓名,性别性别,YEAR(DATE()-YEAR(,YEAR(DATE()-YEAR(出生日期出生日期)AS)AS 年龄年龄,;,;职称职称,基本工资基本