【西华大学大数据库实验报告材料(二)】

  第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

 二、实训小结

 总结创建表的方法和步骤。掌握并理解如何创建、管理、维护表和表中的数据