第3章:表的创建和管理
- 格式:doc
- 大小:85.00 KB
- 文档页数:8
第三章表的创建与使用复习1. 执行下列命令后,被打开的表文件是_____。
X="XS.DBF/CJ.DBF/JS.DBF"Y="/"L=AT("/",X)+1F=SUBSTR(X,L,2)USE &F2. 已知教师表JS.DBF的表结构如下:若要求按如下条件更改基本工资(JBGZ):工龄在10年以下(含10年)者基本工资加200工龄在10年以上(不含10年)者基本工资加400可用如下命令来完成:UPDATE JS ______ JBGZ=IIF(__________,JBGZ+200,JBGZ+400)。
3. 设教师表JS.DBF的表结构如下:要删除教师表中年龄在60岁以上(不含60岁)的教师记录,可使用命令:Delete From JS Where _________4. 为了选用一个未被使用的编号最小的工作区,可使用命令________。
5. 下列程序段用于显示XXDA表中所有类型为字符型的字段的字段名:USE XXDAFOR n=1 TO ________IF TYPE(FIELD(n))=________? FILED(n)ENDIFENDFORUSE6. 有一个表文件XSDA,含有一个学号字段(XH,C,8)。
利用ALTER TABLE xsda_____________COLUMN xh C(10)命令,可以将学号字段的宽度修改为10。
7. 学生表(XS.DBF)的表结构为:学号(XH,C,8),姓名(XM,C,8),性别(XB,C,2),班级(BJ,C,6),用Insert命令向XS表添加一条新记录,记录内容为:下列命令中正确的是___23___。
A. INSERT INTO XS VALUES("10","李小平","男","984461")B. INSERT TO XS VALUES("10","李小平","男","984461")C. INSERT INTO XS(XH,XM,XB,BJ) VALUES(10,李小平,男,984461)D. INSERT TO XS(XH,XM,XB,BJ) VALUES("10","李小平","男","984461")8. 学生表(XS.DBF)的表结构为:学号(XH,C,8),姓名(XM,C,8),性别(XB,C,2),班级(BJ,C,6),并且按XH字段设置了结构复合索引,索引标识为XH,如果XS表不是当前工作表,则下列命令中___29___可以用来查找学号为“96437101”的记录。
ACCESS理论复习第一章数据库基础知识1. 数据是指存储在某一种媒体上能够识别的物理符号。
2. 数据处理是指将数据转换成信息的过程。
数据处理的中心问题是数据管理。
3. 计算机数据管理经历了由低级到高级的几个阶段:人工管理、文件系统、数据库系统阶段。
在这几个阶段中,数据独立性最高的是数据库系统阶段。
4. 数据库是存储在计算机存储设备中的、结构化的相关数据的集合。
它不仅包括描述事物的数据本身,而且包括相关事物之间的关系。
5. 数据库应用系统是指系统开发人员利用数据库系统资源开发的面向某一类实际应用的软件系统。
6. 数据库管理系统是指位于用户与操作系统之间的数据管理软件。
例如ACCESS。
7. 数据库系统由5部分组成:硬件系统、数据库、数据库管理系统及相关软件、数据库管理员(DataBase Administrator,DBA)和用户。
数据库系统的核心是数据库管理系统。
8. 数据库DB、数据库系统DBS、数据库管理系统DBMS 3者之间的关系是DBS包括DB和DBMS。
9. DBMS的功能主要包括以下5个方面:数据定义、数据操纵(存取)、数据库运行管理、数据库的地建立和维护、数据通信。
10. 数据模型就是从现实世界到机器世界的一个中间层次。
根据模型应用的不同目的,分为两类:一个是概念模型(信息模型),二是数据模型,如层次模型、网状模型和关系模型等。
11. 客观存在并相互区别的事物称为实体。
描述实体的特性称为属性。
12. 实体之间的对应关系称为联系,它反映现实世界事物之间的相互联系。
包括:一对一、一对多、多对多。
13. 概念模型的表示方法很多,最著名的是E—R方法(实体—联系方法),用E—R图来描述现实世界的概念模型。
用长方形表示实体型,用椭圆形表示实体的属性,用菱形表示实体间的联系。
14. 数据模型是数据库管理系统用来表示实体及实体间联系的方法。
15. 层次模型是用树结构来表示数据之间的联系;网状模型是用图结构来表示数据之间的联系;关系模型是用二维表来表示数据之间的联系。
1. 索引(Index)索引是根据索引关键字(即索引表达式)的值进行逻辑排序的一组指针。
索引提供对数据的快速访问,可以对表的各行强制实现唯一性。
索引文件由索引序号和对应于索引序号的表的记录号(亦称为指针)组成。
2. 索引关键字(Index Key)索引关键字是用来作为建立索引的依据。
它通常是一个字段或字段表达式。
例如,学生表(XS.DBF)中有8个记录,输入时的物理顺序如下:记录号XH XM XB ZYDH XIMING1 950101 李林男102001 信息管理系2 950106 高山男102001 信息管理系3 950105 陆海涛男102001 信息管理系4 950104 柳宝女102001 信息管理系5 950102 李枫女102001 信息管理系6 950103 蓝军男102001 信息管理系7 960201 林一风男109003 计算机科学系8 960203 高平男109003 计算机科学系现以XH字段作为索引关键字,按升序建立索引,索引文件的情况如下:P83Index # Table Record # XH1 1 9501012 5 9501023 6 9501034 4 9501045 3 9501056 2 9501067 7 9602018 8 960203第一列是索引号,第二列是对应于表中的记录号。
当该索引起作用时,浏览学生表时,记录按学号的顺序排列。
索引表达式的构成2-1索引表达式的构成与一般表达式的构成一样,只是索引表达式一般与表的字段有关。
索引表达式可以由单个字段构成,也可以是多个字段的组合。
需要注意的是,不能基于备注型字段和通用型字段建立索引。
索引表达式的构成2-2对于基于多个字段的索引表达式,可以按多个字段的值进行排序。
用多个字段建立索引表达式时,要注意以下几点。
⒈字符型表达式⒉算术表达式⒊不同类型字段构成一个表达式⒈字符型表达式⒈表达式中字段的前后顺序将影响索引的结果。
第3章表的创建与操作习题参考答案一、选择题1.C2.D3.C4.B5.D6.B7.B8.C二、填空题1.自由表,数据库表2.创建表结构,输入记录数据3.物理,逻辑4.dbf5.表文件,按<关键字表达式>进行排序或创建索引文件。
三、问答题1.答:两个命令的作用基本相同,区别仅在于LIST是连续显示,当显示的内容超过一屏时,自动向上滚动,直到显示完成为止。
DISPLAY是分屏显示,显示满屏时暂停,待用户按任一键后继续显示后面的内容。
如果FOR子句或WHILE子句以及范围全省略,对于LIST默认为所有记录,即取ALL,对于DISPLAY默认为当前记录,即取NEXT1。
此外,对于DISPLAY命令是分屏输出,对于LIST是连续输出。
2.答:ZAP命令删除当前表的全部记录,只留下表结构,因此该表还存在。
DELETE 命令给指定的记录加上删除标志(*),这时被标记的记录并没有真正被删除,需要时仍可以用RECALL命令恢复(取消指定记录上的删除标志)。
如要对加了删除标志的记录真正地从表中删除掉,再使用PACK命令。
ZAP命令用于删除当前表的全部记录,它等价于DELETE ALL和PACK命令。
3.答:排序是根据不同的字段对当前表的记录做出不同的排列,产生一个新的表。
新表与旧表内容完全一样,只是它们的记录排列顺序不同而已。
索引并不是重新排列表记录的物理顺序,而是另外形成一个索引关键表达式值与记录号之间的对照表。
索引文件中记录的排列顺序称为逻辑顺序。
索引文件发生作用后,对表进行操作时将按索引表中记录的逻辑顺序进行操作,而记录的物理顺序只反映了输入记录的历史,对表的操作将不会产生任何影响。
对于用户来说,索引不但可以使数据记录重新组织时节省磁盘空间,而且可以提高表的查询速度。
在Visual FoxPro中,索引可分为下列4种类型:主索引、候选索引、唯一索引和普通索引。
创建索引文件可以使用INDEX命令,也可以在表设计器中创建索引。
3.2 表结构的创建和修改1. 表结构的创建创建表结构其实就是设计字段的基本属性。
可以使⽤表设计器、表向导或SQL命令来创建表结构。
(1)使⽤表设计器创建表步骤:从⽂件菜单中单击新建→在新建对话框中选择表并单击新⽂件→在创建对话框中给出⽂件名并确定所需的保存位置→在表设计器对话框中逐个输⼊所需字段(⽤↓或⿏标换⾏),全部字段输⼊完成后单击确定。
(2)使⽤表向导创建表步骤:从⽂件菜单中单击新建→在新建对话框中选择表并单击向导→在表向导中做第1步:选取字段,完成后单击下⼀步→在表向导中做第1a步:选择数据库,完成后单击下⼀步→在表向导中做第2步:修改字段设置,完成后单击下⼀步→在表向导中做第3步:为表建索引,完成后单击下⼀步→在表向导中做第4步:完成,选择表的保存⽅法,完成后单击完成→在另存为对话框中给出⽂件名并确定所需的保存位置。
注意:先选择⼀个与待建数据表类似的样表,再从中挑选出所需的部分字段,然后在下⼀步根据实际需要修改或直接采⽤原字段的宽度。
(3)使⽤ CREATE TABLE - SQL命令该命令的⼀般格式为:CREATE TABLE |dbf (字段名1 字段类型[(字段宽度[,⼩数位数])][,字段名2 字段类型[(字段宽度[,⼩数位数])]]……)例:CREATE TABLE xscj(xh c(8),xm c(6),xb c(2),;cj n(5,1),ksrq d)2. 表结构的修改(1)⽤表设计器修改⽤菜单调出表设计器: 打开所需的表⽂件→单击显⽰菜单中的表设计器→在表设计器对话框中对字段进⾏修改→修改完毕单击确定并在消息框中选择是。
⽤命令调出表设计器:USEMODIFY STRUCTURE(2)使⽤ ALTER TABLE - SQL命令功能命令格式⽰例添加字段ALTER TABLE xscj ADD COLUMN kcmc C(14)重命名字段ALTER TABLE xscj RENAME COLUMN kcmc TO kc删除字段ALTER TABLE xscj DROP COLUMN kc。
一.选择题1.下列关于数据库、表和视图操作的叙述中,正确的是______A_______ 。
A. 关闭一个数据库,将自动关闭其所有已打开的数据库表B.打开一个数据库表,不能自动打开其所有对应的数据库C.关闭一个视图所对应的基表,将自动关闭该视图D.关闭一个视图,自动关闭其所对应的基表(在使用视图时,自动打开的本地基表并不随视图的关闭而自动关闭,必须单独关闭)2.有如下一段程序:CLOSE TABLES ALLUSE XSSELE 3USE JSUSE KC IN 0BROW上述程序执行后,浏览窗口中显示的表及当前工作区号分别是_____C________ 。
A.KC 、2B.KC 、3C.JS 、3D.JS 、23表(table)是存储数据的容器。
在下列有关VFP表的叙述中,错误的是_D___。
A.每个表最多只能包含200多个字段B.新建一个表后,一般会生成1~3个文件(.dbf,.fpt,.cdx)(如果表中有备注型字段或通用型字段,则自动产生与表名相同但扩展名为.fpt的备注文件,如果建立索引,则自动生成与文件名相同的结构复合索引文件。
)C.自由表与数据库表在数据存储功能上是相同的,但在数据管理与控制功能上有差别D.自由表添加到数据库中变成数据库表,而数据库表移出数据库则变成自由表**此题答案基本都正确,D选项考虑表移出数据库有可能被删除,所以勉强选D4.在VFP中,对于数据库表来说,如果将其移出数据库(变成自由表),则该表原设置或创建的__A__仍然有效。
A.候选索引B.长表名C.记录有效性规则D.触发器5.在创建表索引时,索引表达式可以包含表的一个或多个字段。
在下列字段类型中。
不能直接选作索引表达式的是_D____。
A.货币型B.日期时间型C.逻辑型D.备注型(不能基于备注型和通用型字段建立索引)6.表( table )是存储数据的容器.在下列有关 VFP 表的叙述中,错误的是 DA.系统默认的表文件扩展名为. dbfB.利用表设计器创建表结构时,系统默认的字符型字段宽度为 10C.自由表的索引功能与数据库表有区别D.表文件名在命名时只要遵循操作系统的规定 ,VFP 本身无任何新的限定(不可使用A-J中的单个字母作文件名,文件名及存取路径最好不使用空格)7. 数据库( database )是许多相关的数据库表及其关系等对象的集合.在下列有关 VFP 数据库的叙述中,错误的是 BA.可用命令新建数据库B.从项目管理器中可以看出,数据库包含表、视图、查询、连接和存储过程(不包含查询)C.创建数据库表之间的永久性关系,一般是在数据库设计器中进行D.数据库表之间创建"一对多"永久性关系时,主表必须用主索引或候选索引8.在下列有关 VFP 表索引的叙述中,错误的是 cA.通过创建表的索引,不仅可以对记录数据进行排序,而且可以实现记录的筛选B.对于数据库表来说,可以创建 VFP 系统支持的所有类型的索引C.在表打开时,系统会自动地将默认的第一个索引作为主控索引(必须显式的指定,p99)D.表的唯一索引并不能控制字段数据输入时的重复9.数据库表可以设置字段有效性规则,字段有效性规则属于 DA.实体完整性范畴(字段的数据完整性和记录的数据完整性)B.参照完整性范畴(相关表数据的一致性)C.数据一致性范畴 D.域完整性范畴(域完整性指列的值域的完整性。
第3章:表的创建和管理(一)3.1SQL Server 2000中的数据类型3.1.1 数字数据类型1.整数类型bigint:存储大小8个字节。
int:存储大小4个字节。
smallint:存储大小2个字节。
tinyint:存储大小1个字节。
用于存储0到255的整型数据。
bit:用于存储整数,但只能取0,1或者NULL,可以用于做逻辑运算。
2.小数类型float[(n)]:用于存储一定范围之内的浮点数,当n在1到24之间时,精度是7位,占有4个字节。
当n在25到53之间时,精度位15个有效数字,占用8个字节。
real:用于存储一定范围的浮点数,占用4个字节,相当于float(24).decimal[(p,[s])]和numeric[(p,[s])]数据类型:用于存储带小数点且数值确定的数据。
[表示数值的全部位数,取值范围为1到38,其中包括小数的位数。
但不包括小数点在内,p称为该数值的精度;s表示小数的位数。
money和smallmoney用来存储货币类型的数据,它们带有4位小数。
在money和smallmoney 类型的劣种输入货币数据时,应当在货币数据后面加一个货币符号。
输入负值时,应当在货币数据后面加上一个负号。
money占8个字节。
smallmoney占4个字节。
3.1.2 字符串类型数据1. 非Unicode字符串类型char[(n)]:是一种长度固定的非Unicode字符数据,其长度为n个字节,n必须是1到8000之间的数值。
如果没有指定n则默认为1。
varchar[(n)]:是一种长度可变的非Unicode的字符数据,其长度为n个字节,n必须是1到8000的数值。
数据的存储大小为输入数据的字节的实际长度,而不是n个字节。
如果没有定义n,则默认长度为1。
text:是一种服务器代码页中长度可变的非Unicode数据。
2. Unicode字符串类型nchar(n):是一种长度固定的Unicode字符数据,其中包含n个字符,n的值必须在1到4000之间。
数据的存储大小为n的两倍大小。
如果没有指定n,则默认为1。
nvarchar(n):是一种长度可变的Unicode字符数据,其中包含n个字符,n的值必须借予1到4000之间。
数据存储字节是所输入字符个数的两倍。
所输入数据的字符长度可以为0。
在没有指定n的时候,默认为1。
3. 二进制数据类型binary[(n)]:是n个字节的定长二进制数据。
varbinary[(n)]:是n个字节的变长二进制数据。
3.1.3 日期时间数据类型1. 日期时间数据类型datetime时间精确度为3/100秒2. 日期时间数据类型smalldatetime精确度为1分钟3. 日期时间数据的输入格式Aug 1 2008 英文数字格式2008-8-1 数字加间隔符格式20080801 纯数字形式4. 时间数据的输入格式2005-9-8 5:36:59:99 pm 12小时格式2005-9-8 17:36:59:99 pm 24小时格式3.2 创建表3.2.1 利用企业管理器创建表在利用企业管理器创建数据库表时需要注意以下事项:1.标识:其作用是自动增长的作用,实用于int 、smallint、tinyint、mumeric、decimal 等的系统数据类型。
2.标识种子:指定标识列的初始值。
3.标识递增值:指定标识列的递增值。
4.是RowGuid:指定是否是一个全局唯一标识符。
【全局唯一标识符】:在整个数据库或世界各地所有网络计算机的全部数据库中均为唯一的标识符列。
3.2.2 利用Transact-SQL语言创建表基本格式:CREA T TABLE [<数据库名称>.<所有者>.]<数据库表名称>(<列定义>[ ,….,n])<列定义>∷={<列名称> <数据类型>}[[DEFAULT <常量表达式>]|[IDENTITY[(<种子>,<增量>)]] ][<列约束>][,...,n]【案例】在企业管理器中创建一个名为studentinfo的数据库,然后在该数据库中创建三个表:student 表、courses表和Score表。
接着在表中分别数据:【案例2】:用Transact-SQL语言完成上述数据库表的创建CREA TE DA TABASE StudentsInfo1USE StudentsInfo1CREA TE TABLE Students(StudentNo nvarchar(8),StudentName nvarchar(50),StudentSex nvarchar(1),BirthDate smalldatetime NULL,Speciality nvarchar(50),Class nvarchar(4),IsCY bit NULL,E-mail nvarchar(20),QQ nvarchar(10),PhotoPath nvarchar(50),HomeAddress nvarchar(50),PostalCode nvarchar(6),PhoneCode nvarchar(16),Remark nvarchar(300) )GOCREA TE TABLE Courses(CourseNo smallint NOT NULL,CourseName nvarchar (50))CREA TE TABLE Scores(RecID int IDENTITY(1,1) NOT NULL, StudentNo nvarchar(8),CourseNo nvarchar(3),Score float NULL)3.3删除表3.3.1利用企业管理器来删除表3.3.2利用Transact-SQL语言删除表DROP TABLE语句用于删除一个或多个表,包括表中的所有记录、索引以及约束等。
语法格式如下:DROP TABLE 〈表名〉[,。
n]3.4 创建、删除和修改约束约束是SQL Server提供的自动保持数据库完整性的一种方法,它通过限制字段中数据、记录中的数据和表之间的数据来保证数据的完整性。
在SQL Server 2000中有5种约束:●主键约束(PRIMARY KEY)●唯一性约束(UNIQUE KEY)●检查约束(CHECK KEY)●默认约束(DEFAULT KEY)●外键约束(FOREIGN KEY)约束从应用范围来看又可分为两种:●列级约束:是行定义的一部分,只能应用于一列上。
●表级约束:表级约束的定义独立于列的定义,可以应用于一个表中的多列上。
3.4.1 主键约束主键约束可以保证实体的完整性,是最重要的一种约束。
如果表中有一列被指定为主键,则该列不允许指定为null属性,且image和text类型的列不能被指定为主键。
如果主键约束定义在不止一列上,则一列中的值可以重复,但所有列的组合值必须是唯一的。
主键的添加、删除和修改操作方法有两种:企业管理器操作法和Transact-SQL语句操作法。
1、通过企业管理器完成添加、删除和修改主键的操作。
2、通过Transact-SQL语句完成添加、删除和修改主键的操作。
格式:[CONSTRAINT <约束名>]PRIMARY KEY [CLUSTERED | NONCLUSTERED][ ( 列名[,…n] ) ] ]例1:使用CREA TE TABLE语句在创建表时基于单个列定义PRIMARY KEY约束。
创建一个名为“学生信息“的数据库,然后在改数据库中矿见一个名为“学生”的表,并能够在“学号”列上定义PRIMARY KEY约束。
方法要点:若要在单个表列上定义PRIMARY KEY约束,直接在该列定义中加入PRIMARY KEY子句即可,由此创建列级约束。
CREA TE DA TABASE 学生信息GOUSE 学生信息CREA TE TABLE 学生(学号nchar(8) NOT NULL PRIMARY KEY CLUSTERED,姓名nvarchar(8) NULL ,专业nvarchar(20) NULL,班级char(4)NULL)例2:使用CREA TE TABLE语句在创建表时基于列组合定义PRIMARY KEY约束。
在“学生信息”数据库中,创建一个名为“成绩”的表,并将“学号”和“课程编号”两个列上定义PRIMARY KEY约束。
方法要点:若要在列组合上定义PRIMARY KEY约束,应在各个列定义后面加上PRIMARY KEY子句,病指定约束名和组成主键的哥哥列名,由此创建表级约束。
USE 学生信息CREA TE TABLE 成绩(学号nchar(8) NOT NULL,课程编号char(2) NOT NULL,成绩float,CONSTRAINT PK_SNo_CNo PRIMARY KEY CLUSTERED (学号,课程编号) )3.4.2 唯一性约束唯一性约束用于指定一个或多个列的组合值具有唯一性,以防止在列中输入重复的值。
当表中已经有一个主键值时,如果还要保证其他标识符唯一时,就可以使用唯一性约束,当使用唯一性约束。
当使用唯一性约束时,需要考虑以下几个因素:●使用唯一性约束的字段允许为空值。
●一个表中可以允许有多个唯一性约束。
●可以把唯一性约束定义在多个字段上。
●唯一性约束用于强制在指定字段上创建一个唯一性索引。
●默认情况下,创建的索引类型为非聚集索引。
一、通过企业管理器完成创建和修改唯一性约束的操作例:在企业管理器中创建UNIQUE约束的方法:在StudentInfo数据库中,为Courses 表中的CourseName列定义UNIQUE约束。
二、使用CREA TE TABLE语句定义UNIQUE约束语法格式:[ CONSTRAINT <约束名>]UNIQUE [ CLUSTERED | NONCLUSTERED][ ( <列名>) [,….n] ]例:使用CREA TE TABLE 语句在创建表时定义唯一性的约束方法。
在“学生信息”数据库中创建一个名为“课程表”的表,该表包含课程号和“课程名称”两个列,将前者设置为主键,对后者加上唯一性约束。
USE 学生信息CREA TE TABLE 课程(课程编号nchar(2) NOT NULL CONTRAINT PK_CNo PRIMARY KEY CLUSTERED,课程名称nvarchar(50)NULL CONSTRAINT UN_CName UNIQUE NONCLUSTERED)3.4.3 CHECK约束CHECK约束通过限制输入到列中的值来强制域的完整性。