资源简介 (共67张PPT)第三单元 创建与管理数据表任务3.1 创建表任务3.2 修改表任务3.3 删除表3.1.1 情景描述3.1.2问题分析3.1.3 解决方案3.1.4 知识总结3.1.5 应用实践任务3.1 创建表数据库开发人员需要在学生管理数据库中保存“专业”的基本信息,记录专业的编号,专业名称,专业描述和专业状态的信息。3.1.1 情景描述为此需要完成以下任务:1.根据“专业”的关系模式,设计表的字段及字段的属性;通过分析,得到“专业”表的关系模式为:专业(专业代码(pk),专业名称,描述,状态), “专业”表的结构如表3-1所示。2.根据表结构,编写创建“专业”表的语句。3.执行语句,完成“专业”表的创建。表3-1 “专业”表的结构3.1.2问题分析字段名称 数据类型 是否允许NULL值 约束专业代码 int 否 主键专业名称 varchar(32) 否描述 varchar(100) 是状态 varchar(20) 是1.打开SQL Server Management Studio,单击“对象资源管理器”中的“数据库”文件夹下的数据库“学生管理”;2.单击工具栏上的“新建查询”命令,打开“查询编辑器”;3.在“查询编辑器”上输入以下代码:3.1.3 解决方案CREATE TABLE 专业(专业代码 int primary key,专业名称 varchar(32) not null,描述 varchar(100),状态 varchar(20))4.单击工具栏上的【执行】按钮、。5.刷新“对象资源管理器”中的“数据库”文件夹下的“学生管理”,展开“学生管理”数据库下的表,可以看到“专业”表创建完成,如图所示。数据类型创建表约束3.1.4 知识总结整型数据类型定点小数数据类型近似数字类型日期类型字符数据类型货币数据类型二进制字符数据类型其它数据类型数据类型整型数据类型数据类型 数据范围 精度 长度bigint [-263,263-1] 19 8个字节int [-231,231-1] 10 4个字节smallint [-215,215-1] 5 2个字节tinyint [0,255] 3 1个字节定点小数数据类型数据类型 数据范围 精度 小数位数 长度numeric(p,s) [-1038 +1,1038 -1] p s 精度p为1到9,则用5字节;精度p为10到19,则用9字节;精度p为20到28,则用13字节;精度p为29到38,则用17字节decimal(p,s) [-1038 +1,1038 -1] p s 精度p为1到9,则用5字节;精度p为10到19,则用9字节;精度p为20到28,则用13字节;精度p为29到38,则用17字节近似数字类型数据类型 数据范围 精度 长度float(n) [-1.79×10308,1.79×10308] 精确到小数点后15位 n省略,用8字节,n取值范围为1到7,则用4个字节,n取值范围为8到15,则用8个字节real [-3.40×1038,3.40×1038] 最大可以有7位精确位数 4个字节日期类型数据类型 数据范围 精度 长度datetime [1753.1.1,999.12.31] 精确到3.33毫秒 8个字节smalldatetime [1900.1.1,2079.6.6] 精确到分钟 4个字节date [,9999.12.31] 精确到天 3个字节time [00:00:00.0000000,23:59:59.9999999] 精确到100纳秒 5个字节字符数据类型数据类型 长度 解释char(n) 由n指定,n取值范围1到8000 ASCII编码,固定长度,一个汉字占两个字节,要存放汉字的性别,n要取值为2varchar(n) 由n指定,n取值范围1到8000 ASCII编码,可变长度,最大不超过ntext 最长为231-1 ASCII编码,当字段中存储的字符个数超过8000时,选择textnchar(n) 由n指定,n取值范围1到4000 UNICODE编码,采用2个字节为一个存储单位,固定长度,一个汉字占两个字节,要存放汉字的性别,n要取值为1nvarchar(n) 由n指定,n取值范围1到4000 UNICODE编码,采用2个字节为一个存储单位,最大不超过nntext 最长为230-1 UNICODE编码,采用2个字节为一个存储单位,当字段中存储的字符个数超过4000时,选择text货币数据类型数据类型 数据范围 精度 小数位数 长度money [-922337203685477.5808,922337203685477.5807] 19 4 8个字节smallmoney [-214748.3468,214748.3467] 10 4 4个字节二进制字符数据类型数据类型 长度 解释binary(n) 由于n指定,n取值范围1到8000 存储固定长度为n的二进制数据varbinary(n) 由于n指定,n取值范围1到8000 存储可变长度为n的二进制数据image 最长为231-1字节 如果字段要存储超过8000字节的可变长度的二进制数据,选择 image其它数据类型数据类型 描述bit 存储0、1的逻辑型数据。输入0以外的其它值均当做1看待timestamp 时间戳数据类型,主要用于在数据表中记录其数据的修改时间uniqueidentifier 用于储存16位GUID的唯一标识符数据类型table 用来存储随后进行的处理的结果集使用CREATE TABLE语句创建表,语法规则如下:创建表CREATE TABLE 表名(列名1 数据类型 约束 ,列名2 数据类型 约束,列名3 数据类型 约束,......列名n 数据类型 约束)参数说明如下:表名:用于指定所创建的表的名称。列名:用于指定创建表包含的列的名称。数据类型:用于指定表中包含的列的数据类型。约束:用于指定列需要满足的约束,包含是否为空(NULL)、是否有默认值,是否是主键,是否是外键,是否唯一,是否限定取值范围。如果省略,约束默认允许为空值。【例3-1】在“学生管理”数据库中创建不带任何约束的“系部”表,具体的表结构如表所示。字段名称 数据类型 是否允许NULL值 约束系部代码 int 是系部名称 varchar(50) 是办公电话 varchar(11) 是系主任 varchar(20) 是(1)打开SQL Server Management Studio,在工具栏上单击“新建查询”按钮,打开SQL编辑器,编写如下代码:CREATE TABLE 系部(系部代码 int ,系部名称 varchar(50) ,办公电话 char(11),系主任 varchar(20))(2)单击工具栏上的【执行】按钮;(3)刷新“对象资源管理器”中的“数据库”文件夹下的“学生管理”,展开“学生管理”数据库下的表,可以看到“系部”表创建完成。非空(NOT NULL)约束主键(PRIMARY KEY)约束唯一(UNIQUE)约束检查(CHECK)约束外键(FOREIGN KEY)约束默认(DEFAULT)约束约束列是否为空决定了表中的字段是否允许为空值。设置了非空约束的列,满足列的取值不为空的要求。在创建表时候使用NOT NULL关键字指定非空约束的语法规则为:非空(NOT NULL)约束CREATE TABLE 表名(列名1 数据类型 NOT NULL ,列名2 数据类型 ,列名3 数据类型 ,......列名n 数据类型)【例3-2】在“学生管理”数据库中创建带非空约束的“课程”表,具体的表结构如表所示。字段名称 数据类型 是否允许NULL值 约束课程编号 int 否课程名称 varchar(50) 否课程性质 varchar(30) 否学分 int 否开课学期 varchar(20) 否课程分类 varchar(20) 否①打开SQL Server Management Studio,在工具栏上单击“新建查询”按钮,打开SQL编辑器,编写如下代码:CREATE TABLE 课程(课程编号 int not null,课程名称 varchar(50) not null,课程性质 varchar(30) not null,学分 int not null,开课学期 varchar(20) not null,课程分类 varchar(20) not null)②单击工具栏上的【执行】按钮;③刷新“对象资源管理器”中的“数据库”文件夹下的“学生管理”,展开“学生管理”数据库下的表,可以看到“课程”表创建完成在表中定义一个主键来唯一标识表中的每行记录。每个表中只能有一个主键,要求主键列的数据唯一,并且不允许为空。在一个表中,不能有两行具有相同的主键值。在创建表的时候使用PRIMARY KEY来创建主键约束的语法规则为:主键(PRIMARY KEY)约束CREATE TABLE 表名(列名1 数据类型 PRIMARY KEY ,列名2 数据类型 ,列名3 数据类型 ,......列名n 数据类型)【例3-3】在“学生管理”数据库中创建带主键约束的“班级”表,具体的表结构如表所示。字段名称 数据类型 是否允许NULL值 约束班级代码 int 否 主键班级名称 varchar(50) 否专业代码 int 否所属年级 varchar(20) 是班主任 varchar(20) 是描述 varchar(100) 是①打开SQL Server Management Studio,在工具栏上单击“新建查询”按钮,打开SQL编辑器,编写如下代码:CREATE TABLE 班级(班级代码 int primary key,班级名称 varchar(50) not null,专业代码 int not null,所属年级 varchar(20),班主任 varchar(20),描述 varchar(100))②单击工具栏上的【执行】按钮;③刷新“对象资源管理器”中的“数据库”文件夹下的“学生管理”,展开“学生管理”数据库下的表,可以看到“班级”表创建完成一个表中只能有一个主键,如果有多个字段需要实施数据唯一性,可以使用UNIQUE约束来限制表的非主键列中不允许输入重复值。唯一约束要求列的取值唯一,在一个表中,该列的任何两行都不能有相同的列值,如果该列允许NULL值,但只能出现一次。在创建表的时候使用UNIQUE来创建唯一约束的语法规则为:唯一(UNIQUE)约束CREATE TABLE 表名(列名1 数据类型 UNIQUE ,列名2 数据类型 ,列名3 数据类型 ,......列名n 数据类型)【例3-4】在“学生管理”数据库中创建带唯一约束的“学生”表,具体的表结构如表所示。字段名称 数据类型 是否允许NULL值 约束学号 int 否 主键姓名 varchar(50) 否性别 char(2) 否出生日期 datetime 是个人联系电话 char(11) 是 唯一约束政治面貌 varchar(20) 是身份证号 char(18) 否邮政编码 varchar(10) 是家庭联系电话 char(11) 是 唯一约束家庭联系地址 varchar(100) 是①打开SQL Server Management Studio,在工具栏上单击“新建查询”按钮,打开SQL编辑器,编写如下代码:CREATE TABLE 学生(学号 int primary key,姓名 varchar(50) not null,性别 char(2) not null,出生日期 datetime,个人联系电话 char(11) unique,政治面貌 varchar(20),身份证号 char(18),邮政编码 varchar(10),家庭联系电话 char(11) unique,家庭联系地址 varchar(100))②单击工具栏上的【执行】按钮;③刷新“对象资源管理器”中的“数据库”文件夹下的“学生管理”,展开“学生管理”数据库下的表,可以看到“学生”表创建完成。主键与UNIQUE约束的区别主要为:UNIQUE约束,主要用在非主键的一列或多列上要求数据唯一的情况。UNIQUE约束,允许该列上存在NULL值,而主键决不允许出现这种情况。可以在一个表上设置多个UNIQUE约束,而在一个表中只能设置一个主键约束。CHECK约束用来检查输入数据的取值是否正确,只有符合检查约束的数据才能输入,从而维护域的完整性,列的输入内容必须满足CHECK后面的约束条件。不满足限定范围的值不能正常输入。可以在一个表中为每列指定多个检查约束。在创建表的时候使用CHECK关键字来创建检查约束的语法规则为:检查(CHECK)约束CREATE TABLE 表名(列名1 数据类型 CHECK(约束条件) ,列名2 数据类型 ,列名3 数据类型 ,......列名n 数据类型)约束条件为创建的检查约束满足的条件表达式,主要有比较运算符和逻辑运算符组成。运算符 表达式 功能= a=b 判断表达式a和表达式b的值是否相等> a>b 判断表达式a是否大于表达式b的值>= a>=b 判断表达式a是否大于等于表达式b的值!< a!< a<= a<=b 判断表达式a是否小于等于表达式b的值!> a!>b 判断表达式a是否不大于表达式b的值<> a<>b 判断表达式a是否不等于表达式b的值!= a!=b 判断表达式a是否不等于表达式b的值比较运算符运算符 表达式 功能and A and B 表达式A和B的值都为真时,整个表达式的结果为真or A or B 表达式A或B的值为真时,整个表达式的结果为真not not A 表达式A的值为真,整个表达式的结果为假,表达式A的值为假时,整个表达式的结果为假in A in(a1,a2,a3,...) 如果A的值与集合里面的任意值相等,则返回真between C Between A and B 如果C的值在A和B之间,则返回真逻辑运算符【例3-5】在“学生管理”数据库中创建带检查约束的“教师”表,具体的表结构如表所示。字段名称 数据类型 是否允许NULL值 约束教师编号 int 否 主键教师姓名 varchar(50) 否性别 char(2) 是 取值范围:男,女职称 varchar(20) 是学历 varchar(20) 是学位 varchar(20) 是专业 varchar(20) 是①打开SQL Server Management Studio,在工具栏上单击“新建查询”按钮,打开SQL编辑器,编写如下代码:CREATE TABLE 教师(教师编号 int primary key,教师姓名 varchar(50) not null,性别 char(2) check(性别='男' or 性别='女') ,职称 varchar(20),学历 varchar(20),学位 varchar(20),专业 varchar(20))②单击工具栏上的【执行】按钮;③刷新“对象资源管理器”中的“数据库”文件夹下的“学生管理”,展开“学生管理”数据库下的表,可以看到“教师”表创建完成用于建立两个表之间的连接,当一个表的主键列在另外一个表中被引用时,就在这两个表中创建了连接。被引用的数据表称为主表,被引用列称为主键;引用表称为外键约束表,也称为从表,引用列称为外键。外键约束保证了数据库中各个数据表中数据的一致性和正确性。在创建表的时候使用FOREIGN KEY来创建外键约束,需要用references关键字指出来引用的主表的哪一列,语法规则为:外键(FOREIGN KEY)约束CREATE TABLE 表名(列名1 数据类型 FOREIGN KEY REFERENCES 表名(列名) ,列名2 数据类型 ,列名3 数据类型 ,......列名n 数据类型)【例3-6】在“学生管理”数据库中创建带外键约束的“辅导员评语”表,具体的表结构如表所示。字段名称 数据类型 是否允许NULL值 约束评价代码 int 否 主键学号 int 是 外键学期 varchar(20) 是评价寄语 text 是①打开SQL Server Management Studio,在工具栏上单击“新建查询”按钮,打开SQL编辑器,编写如下代码:CREATE TABLE 辅导员评语(评价代码 int primary key,学号 int foreign key references 学生(学号),学期 varchar(20) ,评价寄语 text)②单击工具栏上的【执行】按钮;③刷新“对象资源管理器”中的“数据库”文件夹下的“学生管理”,展开“学生管理”数据库下的表,可以看到“辅导员评语”表创建完成为表中某列建立一个默认值,当添加一条记录的时候,没有为此列提供输入值,则取默认值。在创建表的时候使用DEFAULT来创建默认约束的语法规则为:默认(DEFAULT)约束CREATE TABLE 表名(列名1 数据类型 DEFAULT 默认值 ,列名2 数据类型 ,列名3 数据类型 ,......列名n 数据类型)【例3-7】在“学生管理”数据库中创建带默认约束的“选课”表,具体的表结构如表所示。字段名称 数据类型 是否允许NULL值 约束学号 int 否 主键,外键课程编号 int 是 主键成绩 numeric(5,2) 是 默认为0①打开SQL Server Management Studio,在工具栏上单击“新建查询”按钮,打开SQL编辑器,编写如下代码:CREATE TABLE 选课(学号 int foreign key references 学生(学号),课程编号 int ,成绩 numeric(5,2) default 0primary key(学号,课程编号))②单击工具栏上的【执行】按钮;③刷新“对象资源管理器”中的“数据库”文件夹下的“学生管理”,展开“学生管理”数据库下的表,可以看到“选课”表创建完成。3.1.5 应用实践为了保存销售业务系统用户的账户信息,需要设计“账号”表,并在数据库“销售”中创建表格。“账号”表结构如表所示。字段名称 数据类型 是否允许NULL值 约束用户ID varchar(50) 否 主键密码 varchar(50) 否 默认:111111用户名 varchar(50) 否 唯一邮件 varchar(50) 是地址 varchar(100) 是邮编 varchar(10) 是电话 char(11) 否状态 varchar(20) 是 取值范围:启用,停用1.打开SQL Server Management Studio,单击“对象资源管理器”中的“数据库”文件夹下的数据库“销售”;2.单击工具栏上的“新建查询”命令,打开“查询编辑器”;3.在“查询编辑器”上输入以下代码:CREATE TABLE 账号(用户ID varchar(50) primary key,密码 varchar(50) not null default '111111' ,用户名 varchar(50) not null unique ,邮件 varchar(50),地址 varchar(100),邮编 varchar(10),电话 char(11) not null,状态 varchar(20) check(状态 in('停用','启用')))4.单击工具栏上的【执行】按钮;5.刷新“对象资源管理器”中的“数据库”文件夹下的“销售”,展开“销售”数据库下的表,可以看到“账号”表创建完成。3.2.1 情景描述3.2.2问题分析3.2.3 解决方案3.2.4 知识总结3.2.5 应用实践任务3.2 修改表数据库开发人员发现按照现有的关系模式,学生和班级之间的对应关系没有建立起来,在现有的表中没有办法在保存学生信息的同时保存其所在的班级信息,需要在“学生”表中添加一列“班级编号”, 然后把添加的“班级编号”字段设为外键,关联班级表的“班级代码”字段。3.2.1 情景描述在表创建好后若发现问题,可以通过修改表的方式来解决,我们可以对现有的表添加一列、删除一列、修改某列的数据类型、添加约束、删除约束等等操作。外键和所关联的表的主键的取值范围要一致,所以在“学生”表添加的字段“班级编号”字段的数据类型和表3-12的“班级”表的“班级代码”的数据类型要相同,添加的字段数据类型确定为“int”类型。3.2.2问题分析3.2.3 解决方案1.打开SQL Server Management Studio,单击“对象资源管理器”中的“数据库”文件夹下的数据库“学生管理”;2.单击工具栏上的“新建查询”命令,打开“查询编辑器”;3.在“查询编辑器”上输入以下代码:ALTER TABLE 学生 add 班级编号 intALTER TABLE 学生 add foreign key(班级编号) references 班级(班级代码)4.单击工具栏上的【执行】按钮,展开“对象资源管理器”中的“数据库”文件夹,选择数据库“学生管理” “表”文件夹,刷新“学生”表下的列,可以看到“学生”表的列“班级编号”添加完成;5.然后在“查询编辑器”上添加以下代码:6.再次刷新“学生”表下的列,可以看到“班级编号”字段旁边有灰色的钥匙图标,表明外键创建完成。使用ALTER TABLE命令添加一列使用ALTER TABLE命令删除一列使用ALTER TABLE命令修改表中列的数据类型使用ALTER TABLE命令修改某列为非空约束使用ALTER TABLE命令添加主键约束使用ALTER TABLE命令添加唯一约束使用ALTER TABLE命令添加检查约束使用ALTER TABLE命令添加外键约束使用ALTER TABLE命令添加默认约束使用ALTER TABLE命令删除约束3.2.4 知识总结语法规则:ALTER TABLE 表名 ADD 列名 数据类型使用ALTER TABLE命令添加一列ALTER TABLE 教师 add 系部代码 int【例3-8】在“教师”表中添加一列,列名为“系部代码”,列的数据类型为“int”。(1)打开SQL Server Management Studio,在工具栏上单击“新建查询”按钮,打开SQL编辑器,编写如下代码:(2)单击工具栏上的【执行】按钮;(3)刷新“教师”表下的列,可以看到“教师”表的列“系部代码”添加完成。语法规则:ALTER TABLE 表名 DROP COLUMN 列名【例3-9】在“学生”表中删除一列,列名为“邮政编码”。(1)打开SQL Server Management Studio,在工具栏上单击“新建查询”按钮,打开SQL编辑器,编写如下代码:ALTER TABLE 学生 drop column 邮政编码(2)单击工具栏上的【执行】按钮;(3)刷新“学生”表下的列,与图3-10比较,从对象资源管理器窗口中,可以看到“学生”表的列“邮政编码”删除成功使用ALTER TABLE命令删除一列语法规则: ALTER TABLE 表名ALTER COLUMN 列名 数据类型使用ALTER TABLE命令修改表中列的数据类型ALTER TABLE 学生 alter column 政治面貌 varchar(10)【例3-10】在“学生”表中修改字段“政治面貌”的数据类型为varchar(10)。(1)打开SQL Server Management Studio,在工具栏上单击“新建查询”按钮,打开SQL编辑器,编写如下代码:(2)单击工具栏上的【执行】按钮;(3)刷新“学生”表下的列,与图3-12比较,从对象资源管理器窗口中,可以看到“学生”表的列“政治面貌”的数据类型由varchar(20)变为varchar(10)语法规则:ALTER TABLE 表名ALTER COLUMN 列名 数据类型 NOT NULL使用ALTER TABLE命令修改某列为非空约束ALTER TABLE 学生 alter column 政治面貌 varchar(10) not null【例3-11】在“学生”表中修改字段“政治面貌”的约束为非空。(1)打开SQL Server Management Studio,在工具栏上单击“新建查询”按钮,打开SQL编辑器,编写如下代码:(2)单击工具栏上的【执行】按钮;(3)刷新“学生”表下的列,与图3-13比较,从“对象资源管理器”窗口,可以看到“学生”表的列“政治面貌”列修从NULL改为NOT NULL 。语法规则:ALTER TABLE 表名 ADD PRIMARY KEY(列名)使用ALTER TABLE命令添加主键约束ALTER TABLE 课程 add primary key(课程编号)【例3-12】修改表“课程”表,设置“课程编号”字段为主键约束。(1)打开SQL Server Management Studio,在工具栏上单击“新建查询”按钮,打开SQL编辑器,编写如下代码:(2)单击工具栏上的【执行】按钮;(3)刷新“课程”表下的列,可以看到“课程”表的列“课程编号”旁有个黄色的钥匙图标,表明主键约束添加完成。语法规则:ALTER TABLE 表名 ADD UNIQUE(列名)使用ALTER TABLE命令添加唯一约束ALTER TABLE 系部 add unique(系部名称)【例3-13】修改表“系部”表,设置“系部名称”字段为唯一约束。(1)打开SQL Server Management Studio,在工具栏上单击“新建查询”按钮,打开SQL编辑器,编写如下代码:(2)单击工具栏上的【执行】按钮;(3)展开“系部”表的“键”文件夹和“索引”文件夹,可以看到有一个约束名和索引名均为“UQ__系部__9C9278473B75D760”,当创建一个唯一约束会自动创建一个唯一的非聚焦索引,名字也是自动生成的,有关索引的内容将在后面章节中介绍语法规则:ALTER TABLE 表名 ADD CHECK(expression)使用ALTER TABLE命令添加检查约束ALTER TABLE 课程 add check(课程性质in('专业必修课','专业选修课', '公共必修课','公共选修课'))【例3-14】修改表“课程”表,设置“课程性质”的取值范围为:专业必修课,专业选修课,公共必修课,公共选修课。(1)打开SQL Server Management Studio,在工具栏上单击“新建查询”按钮,打开SQL编辑器,编写如下代码:(2)单击工具栏上的【执行】按钮;(3)展开“课程”表下的“约束”文件夹,可以看到有一个检查约束。语法规则:ALTER TABLE 表名1 ADD FOREIGN KEY(列名1) REFERENCES 表名2(列名2)使用ALTER TABLE命令添加外键约束参数说明如下:表名1:指出要修改的表的名字列名1:指出表名1的外键列的字段名FOREIGN KEY:指出要添加的约束是外键约束表名2:指出外键列名1要参考的主表名列名2:指出外键列名1要引用的表名2里面的主键列名ALTER TABLE 选课 add foreign key(课程编号) references 课程(课程编号)【例3-15】修改表“选课”表,设置“课程编号”字段为外键约束,关联表“课程”的“课程编号”字段。(1)打开SQL Server Management Studio,在工具栏上单击“新建查询”按钮,打开SQL编辑器,编写如下代码:(2)单击工具栏上的【执行】按钮;(3)刷新“课程”表下的文件夹“键”,可以看到生成的外键约束。语法规则:ALTER TABLE 表名 ADD DEFAULT 默认值 FOR 列名使用ALTER TABLE命令添加默认约束ALTER TABLE 教师 add default '助教' for 职称【例3-16】修改表“教师”表,设置“职称”字段的默认值为“助教”。(1)打开SQL Server Management Studio,在工具栏上单击“新建查询”按钮,打开SQL编辑器,编写如下代码:(2)单击工具栏上的【执行】按钮;(3)刷新“教师”表下的文件夹“约束”,可以看到生成的默认约束。语法规则:ALTER TABLE 表名 DROP CONSTRAINT 约束名使用ALTER TABLE命令删除约束ALTER TABLE 教师 drop constraint DF__教师__职称__7D【例3-17】修改表“教师”表,删除默认约束“DF__教师__职称__403A8C7D”。(1)打开SQL Server Management Studio,在工具栏上单击“新建查询”按钮,打开SQL编辑器,编写如下代码:(2)单击工具栏上的【执行】按钮;(3)刷新“教师”表下的文件夹“约束”,可以看到名为“DF__教师__职称__403A8C7D”的默认约束已经删除成功 。为了存储销售业务系统的商品信息,设计“商品”表,表结构如表所示。3.2.5 应用实践字段名称 数据类型 是否允许NULL值 约束商品ID int 是名称 varchar(50) 是价格 varchar(30) 是产品描述 text 是生产日期 datetime 是CREATE TABLE 商品(商品ID int,名称 varchar(50),价格 varchar(30),产品描述 text,生产日期 datetime)1.创建“商品”表,命令如下:ALTER TABLE 商品 alter column 价格 money2.执行成功后,发现“商品”表的字段“价格”数据类型有误,需要通过修改表的方式修改表中字段的数据类型,命令如下:ALTER TABLE 商品 add 保质期 int3.发现需要为“商品”表添加字段“保质期”,定时查看商品是否在保质期内。命令如下:ALTER TABLE 商品 alter column 商品ID int not null4.为了识别每一行,需要为“商品”表添加主键约束,由于主键约束要求不能为空,首先要设置“商品ID”字段的约束为非空约束,命令如下:ALTER TABLE 商品 add primary key(商品ID)然后再为“商品ID”字段添加主键约束,命令如下:ALTER TABLE 商品 add default 30 for 保质期5.商品的保质期一般为30天,为“保质期”字段设置默认约束的命令如下:3.3.1 情景描述3.3.2问题分析3.3.3 解决方案3.3.4 知识总结3.3.5 应用实践任务3.3删除表数据库开发人员发现“教师”表中的“系部代码”字段没有与“系部”表进行关联,但不想修改表,可以先把表删除,再重新创建。那么,需要完成以下任务:1.删除“教师”表;2.删除“系部”表;3.重新创建“系部”表,设置“系部代码”为主键;4.重新创建“教师”表,“教师”表的“系部代码”与“系部”表的“系部代码”字段关联。3.3.1 情景描述当一个表不再需要的时候,可以使用删除命令把表从数据库中删除。如果一个表需要修改,也可以通过删除表的方式,先删除表,再按照需要重新建立表。“教师”表中的“系部代码”如果要作为外键引用“系部”表的“系部代码”字段,首先要保证“系部”表的“系部代码”字段是“系部”表的主键字段。3.3.2问题分析1.打开SQL Server Management Studio,单击“对象资源管理器”中的“数据库”文件夹下的数据库“学生管理”;2.单击工具栏上的“新建查询”命令,打开“查询编辑器”;3.在“查询编辑器”上输入以下代码:3.3.3 解决方案DROP TABLE 教师DROP TABLE 系部4.单击工具栏上的【执行】按钮,成功删除表“教师”表、“系部”表;5.创建设置“系部代码”为主键的“系部”表的代码,并单击工具栏上的【执行】按钮;CREATE TABLE 系部(系部代码 int primary key ,系部名称 varchar(50) ,办公电话 char(11),系主任 varchar(20))6.创建“教师”表,与“系部”表关联的代码,并单击工具栏上的【执行】按钮;CREATE TABLE 教师(教师编号 int primary key,教师姓名 varchar(50) not null,性别 char(2) check(性别='男' or 性别='女'),职称 varchar(20),学历 varchar(20),学位 varchar(20),专业 varchar(20),系部代码 int foreign key references 系部(系部代码))数据库中的表如果不需要了,会占用空间,则需要把表删除。删除一个表的时候,表中的数据,表的结构及与表有关的所有对象都被删除,但是不能删除系统表和有外键约束引用的主表。删除表使用DROP TABLE语句,语法格式为:DROP TABLE 表名3.3.4 知识总结DROP TABLE 辅导员评价【例3-18】删除数据库“学生管理”中的“辅导员评价”表。(1)打开“查询编辑器”;(2)输入代码:(3)单击工具栏上的“执行”按钮。在数据库“销售”中,表3-20中发现了很多问题,“价格”字段的数据类型应该为money,添加“保质期”字段,默认值为30,设置“商品ID”字段为主键。为此,把“商品”表删除,然后创建合适的“商品”表。1.单击工具栏上的“新建查询”命令,打开“查询编辑器”;2.在“销售”数据库中,在“查询编辑器”上输入以下代码:3.3.5 应用实践DROP TABLE 商品3.单击工具栏上的【执行】按钮,成功删除表“商品”表;CREATE TABLE 商品(商品ID int,名称 varchar(50),价格 varchar(30),产品描述 text,生产日期 datetime)4.创建“商品”表,命令如下:ALTER TABLE 商品 alter column 价格 money5.执行成功后,发现“商品”表的字段“价格”数据类型有误,需要通过修改表的方式修改表中字段的数据类型,命令如下:ALTER TABLE 商品 add 保质期 int6.发现需要为“商品”表添加字段“保质期”,定时查看商品是否在保质期内。命令如下:ALTER TABLE 商品 alter column 商品ID int not null7.为了识别每一行,需要为“商品”表添加主键约束,由于主键约束要求不能为空,首先要设置“商品ID”字段的约束为非空约束,命令如下:ALTER TABLE 商品 add primary key(商品ID)然后再为“商品ID”字段添加主键约束,命令如下:ALTER TABLE 商品 add default 30 for 保质期8.商品的保质期一般为30天,为“保质期”字段设置默认约束的命令如下:1.常用的数据类型。2.创建表的命令。3.在创建表的时候创建非空约束、主键约束、外键约束、唯一约束、非空约束、默认约束。4.修改表的命令,通过修改表可以添加表的一列,删除一列,修改一列的数据类型,可以添加约束,删除约束。5.删除表的命令。本章小结 展开更多...... 收起↑ 资源预览