“数据库类课程资源建设( MySQL 数据库应用与设计)”教学方向资源建设
1
【任务 3-16】修改数据表时使用语句方式设 置数据表
的约束
【任务描述】
( 1)首先删除“图书类型”数据表中的“图书类型编号”字段,然后根据表 3-29 所示
的“图书类型”数据表的结构数据,使用语句方式对“图书类型”数据表的结构进行修改,
同时设置相应的约束。
表 3-29 “图书类型”数据表的结构数据
字段名称 数据类型 字段长度 是否允许 Null 值 约束
图书类型代号 Varchar 2 否 主键约束
图书类型名称 Varchar 50 否 唯一约束
描述信息 Varchar 100 是 无
( 2)将数据表“图书信息”中的字段“图书类型”设置外键约束,相关联的数据表为
“图书类型”,关联字段为“图书类型代码”。
( 3)根据表 3-30 所示的“读者类型”数据表的结构数据,使用语句方式对“读者类型
2”数据表的结构进行修改,同时设置相应的约束。
表 3-30 “读者类型”数据表的结构数据
字段名称 数据类型 字段长度 是否允许 Null 值 约束
读者类型编号 Smallint 否 主键约束
读者类型名称 Varchar 30 否 唯一约束
限借数量 Smallint 否 检查约束 (<=30)
限借期限 Smallint 否 检查约束 (<=360)
续借次数 Smallint 否 默认值约束 (5)
借书证有效期 Smallint 否 默认值约束 (5)
超期日罚金 Decimal 否 默认值约束 (1)、检查约束 (<=2)
【任务实施】
( 1)删除“图书类型”数据表中的“图书类型编号”字段
“数据库类课程资源建设( MySQL 数据库应用与设计)”教学方向资源建设
2
删除“图书类型”数据表中的“图书类型编号”字段的语句如下:
Alter Table 图书类型 Drop 图书类型编号 ;
( 2)修改“图书类型”数据表的结构数据
修改“图书类型”数据表的结构数据的语句如下:
Alter Table 图书类型 Modify 图书类型代号 Varchar(2) Not Null ;
Alter Table 图书类型 Add Constraint PK_图 书类型 Primary Key(图书类型代号 ) ;
Alter Table 图书类型 Modify 图书类型名称 Varchar(50) Unique ;
Alter Table 图书类型 Modify 描述信息 Varchar(100) ;
( 3)设置数据表“图 书信息”外键约束
设置数据表“图书信息”外键约束的语句如下:
Alter Table 图书信息 Add Constraint FK_图书信息 _图书类型
Foreign Key(图书类型 ) References 图书类型 (图书类型代号 ) ;
数据表“图书信息”中外键约束创建完成后,使用“ Show Create Table 图书信息 ; ”
语句可以数据表“图书信息”的外键约束。
( 4)修改“读者类型”数据表的结构数据
修改“读者类型”数据表的结构数据的语句如下:
Alter Table 读者类型 Modify 读者类型编号 Smallint Not Null ,
Add Constraint PK_读者类型 Primary Key(读者类型编号 );
Alter Table 读者类型 Modify 读者类型名称 Varchar(30) Not Null ;
Alter Table 读者类型 Add Constraint UQ_读者类型 Unique(读者类型名称 );
Alter Table 读者类型 Modify 限借数量 Smallint Not Null ;
“数据库类课程资源建设( MySQL 数据库应用与设计)”教学方向资源建设
3
Alter Table 读者类型 Add Constraint CHK_限借数量 Check(限借数量 <=30) ;
Alter Table 读者类型 Modify 限借期限 Smallint Not Null ;
Alter Table 读者类型 Add Constraint CHK_限借期限 Check(限借期限 <=360) ;
Alter Table 读者类型 Modify 续借次数 Smallint Not Null ;
Alter Table 读者类型 Alter 续 借次数 Set Default 5 ;
Alter Table 读者类型 Modify 借书证有效期 Smallint Not Null ;
Alter Table 读者类型 Alter 借书证有效期 Set Default 5 ;
Alter Table 读者类型 Modify 超期日罚金 Decimal Not Null ;
Alter Table 读者类型 Alter 超期日罚金 Set Default 1 ;
Alter Table 读者类型 Add Constraint CHK_超期日罚金 Check(超期日罚金 <=2) ;
|
|