实验4 表与数据库对象的维护
实验目的:
1. 熟练掌握企业管理器、SQL 语句对数据表结构进行修改;
2. 熟练掌握企业管理器、SQL 语句对数据表中的数据进行插入、修改和删除操作;
3. 规则、约束和默认值的创建与使用;
4. 熟练掌握数据表数据的导入与导出方法。
实验内容和步聚:
1.用企业管理器为Student 表增加一列Address ,类型与宽度分别是VARCHAR 、30。 右击表Student →设计表
2.用SQL 语句修改表Course 的列属性,将Cname 列宽改为40,且不允许为空。 USE SM
ALTER TABLE Course ALTER COLUMN Cname VARCHAR(40) NOT NULL
【注意】Course 表的约束条件
3.用SQL 语句向Student 表增加一列Email ,要求输入的电子邮件地址必需含有@字符。 USE SM
ALTER TABLE Student ADD Email VARCHAR(40) NULL CONSTRAINT ck_ea CHECK(Email like '%@%')
4.用SQL 语句删除Student 表中的列Address 。
USE SM
ALTER TABLE Student DROP COLUMN Address
5.用SQL 语句给Student 表Sname 增加主键约束。
USE SM
ALTER TABLE Student ADD CONSTRAINT pk_name PRIMARY KEY (Sname) 注意:表中数据必须满足不能有重复、不能为空,否则,将会出错。
6.删除Student 表Sname 主键约束。
USE SM
ALTER TABLE Student DROP CONSTRAINT pk_name
7.使用企业管理器向Student 添加数据。
200200106,王成,男,20,CS
8.用SQL 语句向Student 表中输入数据。
INSERT INTO Student(Sno,Sname,Ssex,Sage) Values('200200109','万芳',' 女',20) 注意:省略(Sno,Sname,Ssex,Sage)可以吗?什么情况下可以省略?
9.用SQL 语句将Student 表中所有女生年龄加1岁。
UPDATE Student SET Sage=Sage+1 WHERE Ssex='女'
10.用SQL 语句删除Student 表中数据。
DELETE FROM Student WHERE Sno='200200109'
11.创建、捆绑与查看规则及解除捆绑与删除规则。
1)创建规则
USE SM
GO
CREATE RULE range_rule
AS
@VALUE>0
2)捆绑规则
将规则range_rule捆绑到SM 数据库表Student 的Sage 列上:
USE SM
EXEC sp_bindrule 'range_rule','Student.Sage'
插入记录查看结果:
INSERT INTO Student(Sno,Sname,Ssex,Sage) VALUES('200200110','赵飞',' 男',0) SELECT * FROM Student
3)查看规则
USE SM
EXEC sp_help range_rule /* 查看规则的基本信息*/
EXEC sp_helptext range_rule /* 查看规则的定义*/
4)解除捆绑规则
USE SM
EXEC sp_unbindrule 'range_rule',FUTUREONLY
注:使用FUTUREONL Y 参数,现有的属于该数据类型的列不会失去指定默认值。
5)删除规则
USE SM
DROP RULE range_rule /* 删除前必须从捆绑的列解除*/
12.创建、查看与删除默认值。
1)创建默认值
USE SM
GO
CREATE DEFAULT xsnl AS 20
2)捆绑默认值
将规则xsnl 捆绑到SM 数据库表Student 的Sage 列上:
USE SM
EXEC sp_binddefault ' xsnl','Student.Sage'
插入记录查看结果:
INSERT INTO Student(Sno,Sname,Ssex) VALUES('200200111','胡琴',' 女')
SELECT * FROM Student
3)查看默认值
USE SM
EXEC sp_help xsnl /* 查看默认值的基本信息*/
EXEC sp_helptext xsnl /* 查看默认值的定义*/
4)解除捆绑默认值
USE SM
EXEC sp_unbinddefault 'xsnl',FUTUREONLY
5)删除默认值
USE SM
DROP DEFAULT xsnl /* 删除前必须从捆绑的列解除*/
13.将SM 数据库中STUDENT 表中的数据导出到Excel 中,然后在企业管理器中删除STUDENT 表中的数据,在导出的Excel 中增加若干学生信息后再导入。
所有任务→导出数据/导入数据→DTS 导入/导出向导→选择数据源
思考:
1)如果一个表被其它表通过外码引用,该如何删除?
2)为表中数据提供默认值有几种方法?规则与约束有何不同?
实验4 表与数据库对象的维护
实验目的:
1. 熟练掌握企业管理器、SQL 语句对数据表结构进行修改;
2. 熟练掌握企业管理器、SQL 语句对数据表中的数据进行插入、修改和删除操作;
3. 规则、约束和默认值的创建与使用;
4. 熟练掌握数据表数据的导入与导出方法。
实验内容和步聚:
1.用企业管理器为Student 表增加一列Address ,类型与宽度分别是VARCHAR 、30。 右击表Student →设计表
2.用SQL 语句修改表Course 的列属性,将Cname 列宽改为40,且不允许为空。 USE SM
ALTER TABLE Course ALTER COLUMN Cname VARCHAR(40) NOT NULL
【注意】Course 表的约束条件
3.用SQL 语句向Student 表增加一列Email ,要求输入的电子邮件地址必需含有@字符。 USE SM
ALTER TABLE Student ADD Email VARCHAR(40) NULL CONSTRAINT ck_ea CHECK(Email like '%@%')
4.用SQL 语句删除Student 表中的列Address 。
USE SM
ALTER TABLE Student DROP COLUMN Address
5.用SQL 语句给Student 表Sname 增加主键约束。
USE SM
ALTER TABLE Student ADD CONSTRAINT pk_name PRIMARY KEY (Sname) 注意:表中数据必须满足不能有重复、不能为空,否则,将会出错。
6.删除Student 表Sname 主键约束。
USE SM
ALTER TABLE Student DROP CONSTRAINT pk_name
7.使用企业管理器向Student 添加数据。
200200106,王成,男,20,CS
8.用SQL 语句向Student 表中输入数据。
INSERT INTO Student(Sno,Sname,Ssex,Sage) Values('200200109','万芳',' 女',20) 注意:省略(Sno,Sname,Ssex,Sage)可以吗?什么情况下可以省略?
9.用SQL 语句将Student 表中所有女生年龄加1岁。
UPDATE Student SET Sage=Sage+1 WHERE Ssex='女'
10.用SQL 语句删除Student 表中数据。
DELETE FROM Student WHERE Sno='200200109'
11.创建、捆绑与查看规则及解除捆绑与删除规则。
1)创建规则
USE SM
GO
CREATE RULE range_rule
AS
@VALUE>0
2)捆绑规则
将规则range_rule捆绑到SM 数据库表Student 的Sage 列上:
USE SM
EXEC sp_bindrule 'range_rule','Student.Sage'
插入记录查看结果:
INSERT INTO Student(Sno,Sname,Ssex,Sage) VALUES('200200110','赵飞',' 男',0) SELECT * FROM Student
3)查看规则
USE SM
EXEC sp_help range_rule /* 查看规则的基本信息*/
EXEC sp_helptext range_rule /* 查看规则的定义*/
4)解除捆绑规则
USE SM
EXEC sp_unbindrule 'range_rule',FUTUREONLY
注:使用FUTUREONL Y 参数,现有的属于该数据类型的列不会失去指定默认值。
5)删除规则
USE SM
DROP RULE range_rule /* 删除前必须从捆绑的列解除*/
12.创建、查看与删除默认值。
1)创建默认值
USE SM
GO
CREATE DEFAULT xsnl AS 20
2)捆绑默认值
将规则xsnl 捆绑到SM 数据库表Student 的Sage 列上:
USE SM
EXEC sp_binddefault ' xsnl','Student.Sage'
插入记录查看结果:
INSERT INTO Student(Sno,Sname,Ssex) VALUES('200200111','胡琴',' 女')
SELECT * FROM Student
3)查看默认值
USE SM
EXEC sp_help xsnl /* 查看默认值的基本信息*/
EXEC sp_helptext xsnl /* 查看默认值的定义*/
4)解除捆绑默认值
USE SM
EXEC sp_unbinddefault 'xsnl',FUTUREONLY
5)删除默认值
USE SM
DROP DEFAULT xsnl /* 删除前必须从捆绑的列解除*/
13.将SM 数据库中STUDENT 表中的数据导出到Excel 中,然后在企业管理器中删除STUDENT 表中的数据,在导出的Excel 中增加若干学生信息后再导入。
所有任务→导出数据/导入数据→DTS 导入/导出向导→选择数据源
思考:
1)如果一个表被其它表通过外码引用,该如何删除?
2)为表中数据提供默认值有几种方法?规则与约束有何不同?