表格模板-第5章创建和管理表 精品.ppt

上传人:lao****ou 文档编号:14344 上传时间:2022-09-25 格式:PPT 页数:31 大小:407.50KB
下载 相关 举报
表格模板-第5章创建和管理表 精品.ppt_第1页
第1页 / 共31页
表格模板-第5章创建和管理表 精品.ppt_第2页
第2页 / 共31页
表格模板-第5章创建和管理表 精品.ppt_第3页
第3页 / 共31页
表格模板-第5章创建和管理表 精品.ppt_第4页
第4页 / 共31页
表格模板-第5章创建和管理表 精品.ppt_第5页
第5页 / 共31页
亲,该文档总共31页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《表格模板-第5章创建和管理表 精品.ppt》由会员分享,可在线阅读,更多相关《表格模板-第5章创建和管理表 精品.ppt(31页珍藏版)》请在第一文库网上搜索。

1、 表是包含数据库中所有数据的数据库对象,用来存表是包含数据库中所有数据的数据库对象,用来存储各种各样的信息。储各种各样的信息。 在在SQL Server 2000SQL Server 2000中,一个数据库中最多可以创中,一个数据库中最多可以创建建200200万个表,用户创建数据库表时,最多可以定万个表,用户创建数据库表时,最多可以定义义10241024列列, ,每行最多每行最多80608060字节。在同一数据库的不字节。在同一数据库的不同表中,可以有相同的字段,但在同一个表中不允同表中,可以有相同的字段,但在同一个表中不允许有相同的字段,而且每个字段都要求数据类型相许有相同的字段,而且每个字

2、段都要求数据类型相同。同。 在创建表之前,需要定义表中的列(字在创建表之前,需要定义表中的列(字段)的名称,同时还需要定义每列的数段)的名称,同时还需要定义每列的数据类型和宽度。数据类型指定了在每列据类型和宽度。数据类型指定了在每列中存储的数据的类型,例如文本、数字、中存储的数据的类型,例如文本、数字、日期等等。宽度指定了可以向列中输入日期等等。宽度指定了可以向列中输入多少个字符或数字,也可以使用用户自多少个字符或数字,也可以使用用户自定义型数据。除此之外,还需要设定表定义型数据。除此之外,还需要设定表中列是否允许为空,是否有缺省值,是中列是否允许为空,是否有缺省值,是否设置为标识列。否设置为

3、标识列。一、语法格式:一、语法格式: CREATE TABLE CREATE TABLE 表名表名( ( 列名列名 数据类型和宽度数据类型和宽度 NULL|NOT NULL| NULL|NOT NULL| , ,nn ) ) 1. 几个与表结构设计相关的概念几个与表结构设计相关的概念 NULL与与 NOT NULL 在数据库中在数据库中NULL是一个特殊值,表示数值未知。是一个特殊值,表示数值未知。 NULL不同于空字符或数字不同于空字符或数字0,也不同于零长度字符串。,也不同于零长度字符串。 比较两个空值或将空值与任何其它数值相比均返回未知,比较两个空值或将空值与任何其它数值相比均返回未知,

4、这是因为每个空值均为未知。空值通常表示未知、不可用这是因为每个空值均为未知。空值通常表示未知、不可用或以后添加数据。或以后添加数据。 如果某个列上的空值属性为如果某个列上的空值属性为NULL,表示接受空值;空值,表示接受空值;空值属性为属性为NOT NULL,表示拒绝空值。,表示拒绝空值。 在程序代码中,要检查空值以便只在具有有效(或非空)在程序代码中,要检查空值以便只在具有有效(或非空)数据的行上进行某些计算。执行计算时消除空值很重要,数据的行上进行某些计算。执行计算时消除空值很重要,因为如果包含空值列,某些计算(如平均值)会不准确。因为如果包含空值列,某些计算(如平均值)会不准确。若要测试

5、数据列中的空值,可在若要测试数据列中的空值,可在WHERE子句中使用子句中使用IS NULL 或或 IS NOT NULL。 注意:注意:为了减少对已有查询或报表的维护和可能的影响,为了减少对已有查询或报表的维护和可能的影响,建议尽量少使用空值。建议尽量少使用空值。 缺省值(缺省值(DEFAULT) 缺省值表示在用户未输入数据时列的取值。缺省值表示在用户未输入数据时列的取值。 计算列(计算列(CALCULATED COLUMN) 一个表的某些列的取值是由基于定义该列的表达式计算一个表的某些列的取值是由基于定义该列的表达式计算得到的。该列不是存储数据的列,是表的虚拟列,该列得到的。该列不是存储数

6、据的列,是表的虚拟列,该列中的值并未存储在表中,而是在运行时经过计算而得到中的值并未存储在表中,而是在运行时经过计算而得到的。的。 标识列(标识列(IDENTITY) IDENTITY属性使得某一列的取值是基于上一行的列值属性使得某一列的取值是基于上一行的列值和为该列定义的步长自动生成的。和为该列定义的步长自动生成的。IDENTITY列的值可列的值可以唯一地标识表中的一行。以唯一地标识表中的一行。 定义一个定义一个IDENTITY列,必须给出一个种子值(初始列,必须给出一个种子值(初始值),一个步长值(增量)。在一个值),一个步长值(增量)。在一个IDENTITY列定义列定义后,每当向表中插入

7、一行数据时,后,每当向表中插入一行数据时,IDENTITY列就会自列就会自动产生下一个值。在插入数据行的语句中,不应包含动产生下一个值。在插入数据行的语句中,不应包含IDENTITY列的值,该列的值由系统自动给出。列的值,该列的值由系统自动给出。 定义定义IDENTITY列时,应注意如下几点:列时,应注意如下几点: 每张表只允许有一个每张表只允许有一个IDENTITY列。列。 IDENTITY列不能被更新。列不能被更新。 IDENTITY列不允许有列不允许有NULL值。值。 IDENTITY列只能用于具有下列数据类列只能用于具有下列数据类型之一的列:型之一的列:INT、SMALLINT、TIN

8、YINT、NUMERIC(小数部分为小数部分为0)、DECIMAL(小数部分为(小数部分为0)。)。例例1 创建学生表创建学生表 CREATE TABLE student ( sid int not null, name varchar(8) not null, sex char(2) not null, age smallint not null, endate datetime null, speciality varchar(16) null, address varchar(40) null )例例2 创建课程表创建课程表CREATE TABLE course ( cid smalli

9、nt not null, course varchar(20) not null, credit dec(4,1) null, teacher varchar(8) null ) 例例3 创建成绩单表创建成绩单表 CREATE TABLE report ( Sid int not null, cid smallint not null, result Numeric(5,1) not NULL ) 5.2 5.2 设置约束设置约束使用使用T-SQL语句设置约束语句设置约束 1设置主键约束设置主键约束语法格式:语法格式:CONSTRAINT 约束名称约束名称 PRIMARY KEY (字段名字段

10、名 ,n) 例例4 4:创建课程表创建课程表course2 ,同时创建主键,同时创建主键CREATE TABLE course2 ( 课程号课程号 smallint NOT NULL PRIMARY KEY, 课程名课程名 varchar(20) NOT NULL, 学分学分 dec(4,1) NULL, 任课教师任课教师 varchar(8) NULL ) 例例5:创建成绩单表创建成绩单表report2 ,同时创建组合主键,同时创建组合主键 CREATE TABLE report2 ( 学号学号 int NOT NULL, 课程号课程号 smallint NOT NULL, 成绩成绩 num

11、eric(5,1) NOT NULL, CONSTRAINT pk_cid_sid PRIMARY KEY(学号学号 ,课程号课程号 ) ) 2设置唯一性约束设置唯一性约束语法格式:语法格式:CONSTRAINT 约束名称约束名称UNIQUE (字段名字段名 ,n) 例例6:创建学生表创建学生表student2 ,同时创建同时创建主键主键和和唯一性唯一性约束。约束。 CREATE TABLE student2 ( 学号学号 int NOT NULL PRIMARY KEY, 姓名姓名 varchar(8) NOT NULL UNIQUE, 性别性别 char(2) NOT NULL, 年龄年龄

12、 smallint NOT NULL, 入学日期入学日期 datetime NULL, 所学专业所学专业 varchar(16) NULL, 家庭住址家庭住址 varchar(40) NULL ) 例例7:创建创建report 3表表,同时创建组合主键及外键约束同时创建组合主键及外键约束.CREATE TABLE report3 ( 学号学号 int NOT NULL, 课程号课程号 smallint NOT NULL, 成绩成绩 numeric(5,1) NOT NULL, CONSTRAINT pk_cid_sid PRIMARY KEY(学号学号 ,课程号课程号 ),CONSTRAINT

13、 FK_report foreign key( FK_report foreign key(课程课程号号 ) ) REFERENCES course2 ( course2 (课程号课程号 ) ) ) 例例8:创建学生表创建学生表student3 ,同时创建同时创建主键主键和姓名列和姓名列默认值默认值“无名无名”的约束。的约束。CREATE TABLE student3 ( 学号学号 int NOT NULL PRIMARY KEY, 姓名姓名 varchar(8) DEFAULT 无名无名, 性别性别 char(2) NOT NULL, 年龄年龄 smallint NOT NULL, 入学日期

14、入学日期 datetime NULL, 所学专业所学专业 varchar(16) NULL, 家庭住址家庭住址 varchar(40) NULL ) 例例9:创建:创建report4及及计算列总分计算列总分。 CREATE TABLE report4 ( 学号学号 int NOT NULL, 高数高数 smallint NOT NULL, 英语英语 smallint NOT NULL, 数据库数据库 smallint NOT NULL, 总分总分 as (高数高数+英语英语+数据库数据库)5.2 修改表结构的修改表结构的T-SQL命令命令 语法格式:语法格式: ALTER TABLE tabl

15、e ALTER COLUMN ALTER COLUMN 列名列名新的数据类型新的数据类型 |ADD ,n |DROP COLUMN 列名列名 ,n 说明:请参见教材说明:请参见教材P93页页例例1:删除学生表(:删除学生表(student)姓名列)姓名列ALTER TABLE studentDROP COLUMN name 例例2:增加:增加学生表(学生表(student)姓名列姓名列ALTER TABLE student ADD name char(8) 一、一、INSERT语句的一般用法:语句的一般用法: INSERT INTO 表名表名|视图名视图名(列名列表)(列名列表) VALUES

16、(数据值数据值)例:例:INSERT INTO course VALUES(1,数据结构数据结构,3.0,张老师张老师) 二、二、INSERTSELECT语句插入符合条件的语句插入符合条件的多行多行例:例:INSERT INTO report (sid) SELECT sid FROM student WHERE age18 三、插入部分数据三、插入部分数据1.在在INSERT子句中子句中,指定要插入数据指定要插入数据的列名。的列名。2.在在VALUES子句中,列出与列名对子句中,列出与列名对应的数据,列名的顺序和数据的顺应的数据,列名的顺序和数据的顺序应该完全对应。序应该完全对应。3.在在INSERT子句中,没有列出的列应子句中,没有列出的列应该至少具有这四种类型之一:该至少具有这四种类型之一: 具有具有IDENTITY属性;属性; Timestamp数据类型;数据类型; 允许允许NULL; 或者有一个指定的默认值。否则会出现或者有一个指定的默认值。否则会出现错误信息。错误信息。例:例:INSERT INTO course (cid,course,teacher) VALUES(3,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 技术资料 > 统计图表

copyright@ 2008-2022 001doc.com网站版权所有   

经营许可证编号:宁ICP备2022001085号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有,必要时第一文库网拥有上传用户文档的转载和下载权。第一文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第一文库网,我们立即给予删除!



客服