第2次作业
一、环境
运行SQL Server,并创建名为student数据库
二、实训容
1.使用企业管理器创建“学生信息”表。并插入学生数据。
“学生信息”表的结构
列名
数据类型
长度
是否允许空
说明
学号
字符型
7
不允许空
主键
字符型
20
不允许空
性别
字符型
2
允许空
年龄
整型
4
允许空
所在系
字符型
15
允许空
“学生信息”表记录的数据
学号
性别
年龄
所在系
9056215
燕
女
20
计算机系
9056219
勇
男
21
计算机系
9057123
辉
男
19
管理系
9057436
王鹏
男
17
管理系
9056213
静
女
21
计算机系
use student --调用数据库
go
create table 学生信息_蒲强林 --创建表
(
学号 char(7) primary key,
char(20) not null,
性别 char(2),
年龄 int,
所在系 char(15)
)
go
use student --调用数据库
go
--插入数据
insert 学生信息_蒲强林
values ('9056215','燕','女',20,'计算机系')
insert 学生信息_蒲强林
values ('9056219','勇','男',21,'计算机系')
insert 学生信息_蒲强林
values ('9057123','辉','男',19,'管理系')
insert 学生信息_蒲强林
values ('9057436','王鹏','男',17,'管理系')
insert 学生信息_蒲强林
values ('9056213','静','女',21,'计算机系')
go
结果截图:
使用SQL语言编程序实现:
(1.1)在“学生信息”表中添加 “”、“电子”字段,类型分别为定长字符(11长度)、可变字符型(40长度),允许为空
use student --调用数据库
go
alter table 学生信息_蒲强林 --添加属性
add char(11)
alter table 学生信息_蒲强林 --添加属性
add 电子 varchar(40)
go
运行结果截图:
(1.2)将“性别”字段的类型改为不允许为空
use student
go
--修改字段
alter table 学生信息_蒲强林
alter column 性别 char(2) not null
go
运行结果截图:
(1.3)将“学生信息”表中的 “电子”字段名改为“email地址”
use student
go
exec sp_rename '学生信息_蒲强林.电子','email地址','column'
go
运行结果截图:
(1.4)删除“学生信息”表中的 “email地址”字段
use student
go
alter table 学生信息_蒲强林
drop column email地址
go
运行结果截图:
(1.5)试图删除“学生信息”表中的“学号”字段,出现什么情况?为什么?
use student
go
alter table 学生信息_蒲强林
drop column 学号
go
运行结果截图:
因为 “学号”字段为“学生信息_蒲强林”表中的主键,有主键约束,不能删除。
2.使用CREATE TABLE语句创建“课程”表,表结构如表1所示,写出程序代码。
表1 “课程”表的结构
列名
数据类型
长度
是否允许空
说明
课程号
字符型
7
不允许空
主键
课程名称
字符型
20
不允许空
学分
字符型
15
不允许空
use student
go
create table 课程_蒲强林
(
课程号 char(7) primary key,
课程名称 nvarchar(20) not null,
学分 char(15) not null
)
Go
运行结果截图:
3.使用CREATE TABLE语句创建“成绩”表,表结构如表2所示,写出程序代码。
表2 “成绩”表的结构
列名
数据类型
长度
是否允许空
说明
学号
字符型
7
不允许空
主键,外键
课程号
字符型
7
不允许空
主键,外键
分数
整型
4
允许空
use student
go
create table 成绩_蒲强林
(
学号 char(7) not null,
课程号 char(7) not null,
成绩 int
constraint pk_Score primary key (学号,课程号)
constraint fk_Score
foreign key(学号) references 学生信息_蒲强林(学号),
constraint fk_Score01
foreign key(课程号) references 课程_蒲强林(课程号)
)
Go
运行结果截图:
(3.4)使用命令方式查看“学生信息”表的定义信息。
use student
go
exec sp_help 学生信息_蒲强林
go
运行结果截图:
(3.2)在“课程”表中添加“先修课程”字段,数据类型为字符型,长度7,允许空。写出相应的程序代码。
use student
go
alter table 课程_蒲强林
add 先修课程 char(7) null
go
运行结果截图:
(3.3)将“课程”表中“课程名称”字段的长度修改为30.
use student
go
alter table 课程_蒲强林
alter column 课程名称 nvarchar(30) not null
go
运行结果截图:
(3.4)将“成绩”表中的表名更改为“学生成绩”表。
use student
go
exec sp_rename '成绩_蒲强林','学生成绩_蒲强林'
go
(3.5)使用企业管理器,建立上述3表的关系图。
表3 “课程”表记录的数据
课程号
课程名称
先修课程
学分
0000001
C语言
6
0000002
SQL server程序设计
6
0000003
VB.NET
0000001
4
0000004
数据结构
4
0000005
数据库原理及应用
0000003
4
0000006
管理信息系统
0000002
3
0000007
软件工程
0000004
3
(3.6)使用INSERT语句,将表3中的数据插入“课程”表。
use student
go
insert 课程_蒲强林(课程号,课程名称,先修课程,学分)
values ('0000001','C语言',null,'6')
insert 课程_蒲强林(课程号,课程名称,先修课程,学分)
values ('0000002','SQL server程序设计',null,'6')
insert 课程_蒲强林(课程号,课程名称,先修课程,学分)
values ('0000003','VB.NET','0000001','4')
insert 课程_蒲强林(课程号,课程名称,先修课程,学分)
values ('0000004','数据结构',null,'4')
insert 课程_蒲强林(课程号,课程名称,先修课程,学分)
values ('0000005','数据库原理及应用','0000003','4')
insert 课程_蒲强林(课程号,课程名称,先修课程,学分)
values ('0000006','管理信息系统','0000002','3')
insert 课程_蒲强林(课程号,课程名称,先修课程,学分)
values ('0000007','软件工程','0000004','3')
go
运行结果截图:
(3.7)使用INSERT语句,将表4中的数据插入“学生成绩”表。
use student
go
insert 学生成绩_蒲强林(学号,课程号,成绩)
values ('9056215','0000001',87)
insert 学生成绩_蒲强林(学号,课程号,成绩)
values ('9056219','0000002',93)
insert 学生成绩_蒲强林(学号,课程号,成绩)
values ('9057123','0000003',89)
insert 学生成绩_蒲强林(学号,课程号,成绩)
values ('9057436','0000004',56)
insert 学生成绩_蒲强林(学号,课程号,成绩)
values ('9056213','0000005',78)
insert 学生成绩_蒲强林(学号,课程号,成绩)
values ('9056219','0000006',65)
insert 学生成绩_蒲强林(学号,课程号,成绩)
values ('9057123','0000007',98)
go
运行结果截图:
(3.8)使用UPDATE语句,将“学生成绩”表中,“分数”列小于60分的成绩改为60分。
use student
go
update 学生成绩_蒲强林
set 成绩=60
where 成绩<60
go
运行结果截图:
表4 “学生成绩”表
学号
课程号
分数
9056215
0000001
87
9056219
0000002
93
9057123
0000003
89
9057436
0000004
56
9056213
0000005
78
9056219
0000006
65
9057123
0000007
98
二、实训小结
总结创建表的方法和步骤。掌握并理解如何创建、管理、维护表和表中的数据