数据库代码程序修改文件
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(10)用SQL语句修改表Course的列属性,将CName的长度改为40,且不允许空。
在工具栏中点击“新建查询”按钮,打开代码编辑器,输入如下SQL语句。
ALTER TABLE Course ALTER COLUMN CNameV ARCHAR(40) NOT NULL
提示:1、如果有约束则需要先删除约束。
2、在默认情况下,列被设置为允许空,将一个原来允许空的列改为不允许空,必须满足以下两个条件。
∙列中没有存放是空值的记录。
∙在列上没有创建索引。
(11)用SQL语句向表Student中增加列Email,且要求输入的电子邮件地址必须包括“@”字符。
在工具栏中点击“新建查询”按钮,打开代码编辑器,输入如下SQL语句。
USE SMSD
ALTER TABLE Student ADD Email V ARCHAR(40) NULL CONSTRAINT ck_ea CHECK(Email like '%@%')
(12)用SQL语句删除表Student中的列Email。
ALTER TABLE Student DROP CONSTRAINT ck_ea
ALTER TABLE Student DROP COLUMN Email
提示:删除属性时,如果该属性上有约束,则需要先删除约束,而后才可以删除属性。
(13)用SQL语句给表Student添加主键约束。
在工具栏中点击“新建查询”按钮,打开代码编辑器,输入如下SQL语句。
USE SMSD
ALTER TABLE Student ADD CONSTRAINT pk_name PRIMARY KEY(SName)
提示:①一个关系只能与一个主键,向已存在的表中添加主键约束时,必须确保该表目前没有主键,若有需先删除原来的主键。②向已存在的表中的某一列或某几列添加主键约束,表中已有的数据在这几列上需要满足以下条件。
∙不能有重复的数据。
∙不能有空值。
(14)删除SName列上的主键约束。
在工具栏中点击“新建查询”按钮,打开代码编辑器,输入如下SQL语句。
USE SMSD
ALTER TABLE Student DROP CONSTRAINT pk_name
(15)使用WITH NOCHECK子句。
对表Student的SAge列添加约束,使学生的年龄为18~25岁。可以使用如下语句。
USE SMSD
ALTER TABLE Student WITH NOCHECK ADD CONSTRAINT ck_ageCHECK(Age>=18 AND Age<=25)
提示:用包含WITH NOCHECK子句的ALTER TABLE语句添加的约束只对在以后
改变或插入的行发生作用,而不检查已存在的行。在确认现存的数据不破坏约束时,可在
ALTER TABLE语句中使用WITH NOCHECK子句,从而提高运行速度;或者是表中存在不满足约束的数据,而希望这些数据仍能保留。
(16)使约束无效或重新有效。
前面为表Student添加了列Email,并且定义了检查约束,要求输入的电子邮件地址必
须包括“@”字符。现在使这一约束无效,使用如下语句。
USE SMSD
ALTER TABLE Student NOCHECK CONSTRAINT ck_ea
使这一约束重新有效,使用如下语句。
ALTER TABLE Student CHECK CONSTRAINT ck_ea
提示:在ALTER TABLE语句中使用nocheck constraint子句和check constraint子句来完成使约束无效和重新有效的设置。
2.5.4数据的维护
(1)启动SQL Server Management Studio工具,使用对象资源管理器,修改表Student
中的数据。
①在对象资源管理器中,展开SMSD数据库,选择“表”,用鼠标右键单击右侧窗口中
要编辑的表节点“Student”,在弹出的快捷菜单中选择“编辑前200行”命令,打开表编辑
器。
②插入一条记录(‘15001’,‘梁栋’,‘M’,‘20’,‘山西运城’);
如果要删除记录,可以单击记录第一个列前的按钮,按Delete键;如果要修改数据,可
以将光标移至需要修改的地方,直接修改。
③编辑完毕,单击“关闭”按钮,保存编辑结果。
(2)用SQL语句向表中插入数据。
①将学号为“15002”、姓名为“王立”、性别为“男”的学生记录插入表Student中。
在工具栏中点击“新建查询”按钮,打开代码编辑器,执行如下SQL语句。
INSERT INTO Student (StuNo,SName,Gender) V ALUES('15002', '王立', 'M')
✹思考:试将将上面代码改为:INSERT INTO Student (StuNo,SName,Gender) V ALUES('15002', '王立', '男’),会出现什么问题?为什么?
②将一条选课记录插入表Score中。
INSERT INTO Score V ALUES('15001', '00001', null,null,null,null,null,nul)
③在表Student中插入一条学生记录,省略INSERT INTO后的列名,查看插入结果。
INSERT INTO Student V ALUES('15003', '要强', 'M', '21',null,null,null,null,null,null,null) 提示:当表明后面省略列名时,V ALUES后括号里的值的个数一定要和表的列数一致。
④新建一个表SS,且结构与表Student的结构完全相同。
CREATE TABLE SS
(StuNOCHAR(12) PRIMARY KEY,
SNameCHAR(10),