(5)扩展实验完成总结(可选)。
授课信息(教师号,课程号,学期) 班级信息(班级号,班级名称,专业号)
授课信息:Create table shouke(T_ID char(8)not Null Primary Key, C_class varchar(8) not Null, xi float not Null, Pgrade float not Null);
Create table banji(c_class char(8)not Null Primary Key, C –class varchar(8) not Null, C-num varchar(8) not Null,
4.实验思考:
①你认为在教学管理中还可以增加管理哪些信息,可以再为数据库增加设计哪些表或为已有表增加设计哪些属性字段?说出理由。 答:可以增加的表
考试时间表(院系名称,课程名称,考试地点,考试时间,监考人员,监考人数) 宿舍分布表 (地区编号,宿舍楼编号,负责人姓名)
学生住宿表(院系号,地区编号,宿舍楼编号,房间编号,姓名,班级) 增加已有表中的属性字段:
课程信息表中可以增加教室和上课时间字段
学习信息表中可以增加是否住宿和所居住宿舍号的字段
②数据表中的主键有何特性,请设计实例验证主键的特性。当相关数据表中已有数据时,为各表之间增加参照关系时有可能会失败,为什么? 主键具有如下特性:
(1)不重复性。当将一列设置为主键时,则数据的取值在该列或者列组合中是唯一的,因此主键列(或列组合)可以作为表中数据的标识列。
(2)非空性。即主键列(或列组合)的每个数据不能出现空值。 (3)唯一性。指一个表中最多只有一个主键。
创建表时可通过定义PRIMARY KEY约束来创建主键。 命令格式:
CREAT TABLE 表名
(列名 数据类型 CONSTRAINT 主键约束名 PRIMARY KEY [CLUSTERED |NON CLUSTERED)
主键可能所连接的字段设置的数据类型不同,各表之间增加参照关系会失败
③总结SQL中数值数据,字符数据和日期数据常量的表示方法。思考当向某表中插入记录时,若插入记录的某字段值的数据类型或精度与该表中对应字段定义不同时,会产生哪些结果?请设计不同情况的实例加以验证。
1)数值数据
SQL支持许多种不同的数值型数据。你可以存储整数 INT 、小数 NUMERIC、和钱数 MONEY。
INT VS SMALLINT VS TINYINT
他们的区别只是字符长度: INT型数据的表数范围是从-2,147,483,647到2,147,483,647的整数SMALLINT 型数据可以存储从-32768到32768的整数TINYINT 型的字段只能存储从0到255的整数,不能用来储存负数
通常,为了节省空间,应该尽可能的使用最小的整型数据。一个TINYINT型数据只占用一个字节;一个INT型数据占用四个字节。这看起来似乎差别不大,但是在比较大的表中,字节数的增长是很快的。另一方面,一旦你已经创建了一个字段,要修改它是很困难的。因此,为安全起见,你应该预测以下,一个字段所需要存储的数值最大有可能是多大,然后选择适当的数据类型。
2)字符数据
VARCHAR 和 CHAR
VARCHAR型和CHAR型数据的这个差别是细微的,但是非常重要。他们都是用来储存字符串长度小于255的字符。 3)日期数据
DATETIME VS SMALLDATETIME
当只输入一个字段时:
当主键为空时: