
网络数据库 NETWORK DATABASE 主讲教师:网络数据库课题组 天津电子信息技木学院·快件学院 0000

网络数据库 NETWORK DATABASE 授课教师:网络数据库课题组 第五章创建和管理表 ◆表是包含数据库中所有数据的数据库对象,用来存储各种各样的信息。 ◆在SQL Server2000中,一个数据库中最多可以创建200万个表,用户创建数 据库表时,最多可以定义1024列,每行最多8060字节。在同一数据库的不同表 中,可以有相同的字段,但在同一个表中不允许有相同的字段,而且每个字 段都要求数据类型相同。 心在创建表之前,需要定义表中的列(字段)的名称,同时还需要定义每列的 数据类型和宽度。数据类型指定了在每列中存储的数据的类型,例如文本、 数字、日期等等。宽度指定了可以向列中输入多少个字符或数字,也可以使 用用户自定义型数据。除此之外,还需要设定表中列是否允许为空,是否有 缺省值,是否设置为标识列。 0④①⊙
1 第五章 创建和管理表 表是包含数据库中所有数据的数据库对象,用来存储各种各样的信息。 在SQL Server 2000中,一个数据库中最多可以创建200万个表,用户创建数 据库表时,最多可以定义1024列,每行最多8060字节。在同一数据库的不同表 中,可以有相同的字段,但在同一个表中不允许有相同的字段,而且每个字 段都要求数据类型相同。 在创建表之前,需要定义表中的列(字段)的名称,同时还需要定义每列的 数据类型和宽度。数据类型指定了在每列中存储的数据的类型,例如文本、 数字、日期等等。宽度指定了可以向列中输入多少个字符或数字,也可以使 用用户自定义型数据。除此之外,还需要设定表中列是否允许为空,是否有 缺省值,是否设置为标识列

网络数据库 NETWORK DATABASE 授课教师:网络数据库课题组 第一节创建表的结构 一、 语法格式: CREATE TABLE表名( 列名数据类型和宽度[NULL|NOT NULL] [〈表约束〉][,.n] ⑧④⊙ 3
2 第一节 创建表的结构 一、语法格式: CREATE TABLE 表名( 列名 数据类型和宽度 [NULL|NOT NULL]| [ ] [,……n] )

网络数据库 NETWORK DATABASE 授课教师:网络数据库课题组 1.几个与表结构设计相关的概念 (I)NULL与NOT NULL ⊙在数据库中NULL是一个特殊值,表示数值未知。 。NULL不同于空字符或数字0,也不同于零长度字符串。 一比较两个空值或将空值与任何其它数值相比均返回未知,这是因为每个空值均为未知。 空值通常表示未知、不可用或以后添加数据。 ⊙如果某个列上的空值属性为NULL,表示接受空值;空值属性为NOT NULL,表示拒绝 空值。 。在程序代码中,要检查空值以便只在具有有效(或非空)数据的行上进行某些计算。 执行计算时消除空值很重要,因为如果包含空值列,某些计算(如平均值)会不准确。 若要测试数据列中的空值,可在WHERE子句中使用IS NULL或IS NOT NULL。 。注意:为了减少对已有查询或报表的维护和可能的影响,建议尽量少使用空值。 00①⊙
3 1. 几个与表结构设计相关的概念 ⑴ NULL与 NOT NULL 在数据库中NULL是一个特殊值,表示数值未知。 NULL不同于空字符或数字0,也不同于零长度字符串。 比较两个空值或将空值与任何其它数值相比均返回未知,这是因为每个空值均为未知。 空值通常表示未知、不可用或以后添加数据。 如果某个列上的空值属性为NULL,表示接受空值;空值属性为NOT NULL,表示拒绝 空值。 在程序代码中,要检查空值以便只在具有有效(或非空)数据的行上进行某些计算。 执行计算时消除空值很重要,因为如果包含空值列,某些计算(如平均值)会不准确。 若要测试数据列中的空值,可在WHERE子句中使用IS NULL 或 IS NOT NULL。 注意:为了减少对已有查询或报表的维护和可能的影响,建议尽量少使用空值

网络数据库 NETWORK DATABASE 授课教师:网络数据库课题组 (2)缺省值(DEFAULT) 一缺省值表示在用户未输入数据时列的取值。 (3)计算列(CALCULATED COLUMN) ~一个表的某些列的取值是由基于定义该列的表达式计算得到的。该列不是存储数据的 列,是表的虚拟列,该列中的值并未存储在表中,而是在运行时经过计算而得到的。 (④)标识列(IDENTITY) IDENTITY属性使得某一列的取值是基于上一行的列值和为该列定义的步长自动生成 的。DENTITY列的值可以唯一地标识表中的一行。 心定义一个DENTITY列,必须给出一个种子值(初始值),一个步长值(增量)。在 一个DENTITY列定义后,每当向表中插入一行数据时,IDENTITY列就会自动产生下 一个值。在插入数据行的语句中,不应包含DENTITY列的值,该列的值由系统自动 给出。 ⑧0①⊙
4 ⑵ 缺省值(DEFAULT) 缺省值表示在用户未输入数据时列的取值。 ⑶ 计算列(CALCULATED COLUMN) 一个表的某些列的取值是由基于定义该列的表达式计算得到的。该列不是存储数据的 列,是表的虚拟列,该列中的值并未存储在表中,而是在运行时经过计算而得到的。 ⑷ 标识列(IDENTITY) IDENTITY属性使得某一列的取值是基于上一行的列值和为该列定义的步长自动生成 的。IDENTITY列的值可以唯一地标识表中的一行。 定义一个IDENTITY列,必须给出一个种子值(初始值),一个步长值(增量)。在 一个IDENTITY列定义后,每当向表中插入一行数据时,IDENTITY列就会自动产生下 一个值。在插入数据行的语句中,不应包含IDENTITY列的值,该列的值由系统自动 给出

网络数据库 NETWORK DATABASE 授课教师:网络数据库课题组 定义IDENTITY列时,应注意如下几点: ①每张表只允许有一个DENTITY列。 ②IDENTITY列不能被更新。 ③IDENTITY列不允许有NULL值。 ④IDENTITY列只能用于具有下列数据类型之一的列:INT、 SMALLINT、TINYINT、NUMERIC(小数部分为O)、DECIMAL(小 数部分为0)。 0④⊙
5 定义IDENTITY列时,应注意如下几点: ① 每张表只允许有一个IDENTITY列。 ② IDENTITY列不能被更新。 ③ IDENTITY列不允许有NULL值。 ④ IDENTITY列只能用于具有下列数据类型之一的列:INT、 SMALLINT、TINYINT、NUMERIC(小数部分为0)、DECIMAL(小 数部分为0)

网络数据库 NETWORK DATABASE 授课教师:网络数据库课题组 二、创建表的示例 例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 0④①⊙ 6
6 二、创建表的示例 例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 )

网络数据库 NETWORK DATABASE 授课教师:网络数据库课题组 例2创建课程表 CREATE TABLE course( cid smallint not null, course varchar(20)not null, credit dec(4,1)null, teacher varchar(8)null ④①⊙
7 例2 创建课程表 CREATE TABLE course ( cid smallint not null, course varchar(20)not null, credit dec(4,1) null, teacher varchar(8) null )

网络数据库 NETWORK DATABASE 授课教师:网络数据库课题组 例3创建成绩单表 CREATE TABLE report( Sid int not null, cid smallint not null, result Numeric(5,1)not NULL 0④⊙
8 例3 创建成绩单表 CREATE TABLE report ( Sid int not null, cid smallint not null, result Numeric(5,1) not NULL )

网络数据库 NETWORK DATABASE 授课教师:网络数据库课题组 第二章设置约束 使用TSQL语句设置约束 1.设置主键约束 语法格式: [CONSTRAINT约束名称] PRIMARY KEY [(字段名【.n】 00①⊙ 9
9 第二章 设置约束 使用T-SQL语句设置约束 1.设置主键约束 语法格式: [CONSTRAINT 约束名称] PRIMARY KEY [(字段名 [,……n])]