一.实验内容及要求
1.创建数据库和数据表(在相应位置贴上SQL语句)
(1)利用资源管理器,在D盘建立以自己的姓名为名称的文件夹,以便保存数据库。
(2)登录并连接到SQL Server 服务器。
(3)利用SQL语句建立名称为Study的数据库文件,主文件名为Study_Data.mdf,日志文件名为Study_Log.ldf,它们的保存路径在第(1)步中建立的文件夹。
create database Study
on
primary(name=Study_Data,
filename='F:\Study_Data.mdf',
size=5MB,
maxsize=50MB,
filegrowth=5MB)
log on(
name=Study_Log,
filename='F:\Study_Log.ldf',
size=2MB,
maxsize=50MB,
filegrowth=5MB)
go
数据库名 | 文件名 | 初始大小 | 最大大小 | 增长方式 | 文件组 |
Study | Study_Data | 5MB | 50MB | 5MB | Primary |
Study_Log | 2MB | 50MB | 5MB | MyLog |
(5)利用对象资源管理器在已经建立的Study数据库中分别建立以下六个数据表。
① 学生基本情况数据表Student,结构如下
字 段 名 | 字 段 类 型 | 约 束 控 制 | 字段含义说明 |
s_no | char(6) | primary key | 学号 |
class_no | char(6) | not null | 班级号 |
s_name | varchar(10) | not null | 学生姓名 |
s_sex | char(2) | ‘男’或‘女’ | 性别 |
s_birthday | datetime |
| 出生日期 |
② 班级数据表Class,结构如下:
字 段 名 | 字 段 类 型 | 约 束 控 制 | 字段含义说明 |
class_no | char(6) | primary key | 班级号 |
class_name | char(20) | not null | 班级名称 |
class_special | varchar(20) |
| 所属专业 |
class_dept | char(20) |
| 系别 |
③ 课程数据表Course,结构如下:
字 段 名 | 字 段 类 型 | 约 束 控 制 | 字段含义说明 |
course_no | char(5) | primary key | 课程号 |
course_name | char(20) | not null | 课程名称 |
course_score | numeric(6,2) |
| 学分 |
④ 选修课程情况数据表Choice,结构如下:
字 段 名 | 字 段 类 型 | 约 束 控 制 | 字段含义说明 |
s_no | char(6) |
| 学号 |
course_no | char(5) |
| 课程号 |
score | numeric(6,1) |
| 成绩 |
⑤ 教师数据表Teacher,结构如下:
字 段 名 | 字 段 类 型 | 约 束 控 制 | 字段含义说明 |
t_no | char(6) | primary key | 教师号 |
t_name | varchar(10) | not null | 教师姓名 |
续表
字 段 名 | 字 段 类 型 | 约 束 控 制 | 字段含义说明 |
t_sex | char(2) | ‘男’或‘女’ | 性别 |
t_birthday | datetime |
| 出生日期 |
t_title | char(10) |
| 职称 |
⑥ 教师任课情况表Teaching,结构如下:
字 段 名 | 字 段 类 型 | 约 束 控 制 | 字段含义说明 |
couse_no | char(5) |
| 课程号 |
t_no | char(6) |
| 教师号 |
use Study;
create table Student(
s_no char(6) primary key,
class_no char(6) not null,
s_name varchar(10) not null,
s_sex char(2) check(s_sex in('男','女')),
s_birthday datetime)
go
create table Class(
class_no char(6) primary key,
class_name char(20) not null,
class_special varchar(20),
class_dept char(20))
go
create table Course(
cours_no char(5) primary key,
course_name char(20) not null,
course_score numeric(6,2))
go
create table Choice(
s_no char(6),
course_no char(5),
score numeric(6,1))
go
create table Teacher(
t_no char(6) primary key,
t_name varchar(10) not null,
t_sex char(2) check(t_sex in('男','女')),
t_birthday datetime,
t_title char(10))
go
create table Teaching(
course_no char(5),
t_no char(6))
go
(5)在Study数据库中,向以上建立的六个数据表中分别输入以下内容。
① 学生基本情况数据表Student的内容如下:
s_no | class_no | s_name | s_sex | s_birthday |
991101 | js9901 | 张彬 | 男 | 1981-10-1 |
991102 | js9901 | 王蕾 | 女 | 1980-8-8 |
991103 | js9901 | 李建国 | 男 | 1981-4-5 |
991104 | js9901 | 李平方 | 男 | 1981-5-12 |
991201 | js9902 | 陈东辉 | 男 | 1980-2-8 |
991202 | js9902 | 葛鹏 | 男 | 1979-12-23 |
991203 | js9902 | 藩桃芝 | 女 | 1980-2-6 |
991204 | js9902 | 姚一峰 | 男 | 1981-5-7 |
001101 | js0001 | 宋大方 | 男 | 1980-4-9 |
001102 | js0001 | 许辉 | 女 | 1978-8-1 |
001201 | js0002 | 王一山 | 男 | 1980-12-4 |
001202 | js0002 | 牛莉 | 女 | 1981-6-9 |
002101 | xx0001 | 李丽丽 | 女 | 1981-9-19 |
002102 | xx0001 | 李王 | 男 | 1980-9-23 |
use Study
insert
into Student(s_no,class_no,s_name,s_sex,s_birthday)
values ('991101','js9901','张彬','男','1981-10-1')
insert
into Student(s_no,class_no,s_name,s_sex,s_birthday)
values ('991102','js9901','王蕾','女','1980-8-8')
insert
into Student(s_no,class_no,s_name,s_sex,s_birthday)
values ('991103','js9901','李建国','男','1981-4-5')
insert
into Student(s_no,class_no,s_name,s_sex,s_birthday)
values ('991104','js9901','李平方','男','1981-5-12')
insert
into Student(s_no,class_no,s_name,s_sex,s_birthday)
values ('991201','js9902','陈东辉','男','1980-2-8')
insert
into Student(s_no,class_no,s_name,s_sex,s_birthday)
values ('991202','js9902','葛鹏','男','1979-12-23')
insert
into Student(s_no,class_no,s_name,s_sex,s_birthday)
values ('991203','js9902','藩桃芝','女','1980-2-6')
insert
into Student(s_no,class_no,s_name,s_sex,s_birthday)
values ('991204','js9902','姚一峰','男','1981-5-17')
insert
into Student(s_no,class_no,s_name,s_sex,s_birthday)
values ('001101','js0001','宋大方','男','1980-4-9')
insert
into Student(s_no,class_no,s_name,s_sex,s_birthday)
values ('001102','js0001','许辉','男','1978-8-1')
insert
into Student(s_no,class_no,s_name,s_sex,s_birthday)
values ('001201','js0002','王一山','男','1980-12-4')
insert
into Student(s_no,class_no,s_name,s_sex,s_birthday)
values ('001202','js0002','牛莉','女','1981-6-9')
insert
into Student(s_no,class_no,s_name,s_sex,s_birthday)
values ('002101','xx0001','李丽丽','女','1981-9-19')
insert
into Student(s_no,class_no,s_name,s_sex,s_birthday)
values ('002102','xx0001','李王','男','1980-9-23')
go
② 班级数据表Class的内容如下:
class_no | class_name | class_special | class_dept |
js9901 | 计算机99-1 | 计算机 | 计算机系 |
js9902 | 计算机99-2 | 计算机 | 计算机系 |
js0001 | 计算机00-1 | 计算机 | 计算机系 |
js0002 | 计算机00-2 | 计算机 | 计算机系 |
xx0001 | 信息00-1 | 信息 | 信息系 |
xx0002 | 信息00-2 | 信息 | 信息系 |
use Study
insert
into Class(class_no,class_name,class_special,class_dept)
values('js9901','计算机99-1','计算机','计算机系')
insert
into Class(class_no,class_name,class_special,class_dept)
values('js9902','计算机99-2','计算机','计算机系')
insert
into Class(class_no,class_name,class_special,class_dept)
values('js0001','计算机00-1','计算机','计算机系')
insert
into Class(class_no,class_name,class_special,class_dept)
values('js0002','计算机00-2','计算机','计算机系')
insert
into Class(class_no,class_name,class_special,class_dept)
values('xx0001','信息00-1','信息','信息系')
insert
into Class(class_no,class_name,class_special,class_dept)
values('xx0002','信息00-2','信息','信息系')
go
③ 课程数据表Course的内容如下:
course_no | course_name | course_score |
01001 | 计算机基础 | 3 |
01002 | 程序设计语言 | 5 |
续表
course_no | course_name | course_score |
01003 | 数据结构 | 6 |
02001 | 数据库原理与应用 | 6 |
02002 | 计算机网络 | 6 |
02003 | 微机原理与应用 | 8 |
use Study
insert into Course(course_no,course_name,course_score)
values('01001','计算机基础',3)
insert into Course(course_no,course_name,course_score)
values('01002','程序设计语言',5)
insert into Course(course_no,course_name,course_score)
values('01003','数据结构',6)
insert into Course(course_no,course_name,course_score)
values('02001','数据库原理与应用',6)
insert into Course(course_no,course_name,course_score)
values('02002','计算机网络',6)
insert into Course(course_no,course_name,course_score)
values('02003','微机原理与应用',8)
go
④ 选修课程情况数据表Choice的内容如下:
s_no | course_no | score |
991101 | 01001 | 88.0 |
991102 | 01001 |
|
991103 | 01001 | 91.0 |
991104 | 01001 | 78.0 |
991201 | 01001 | 67.0 |
991101 | 01002 | 90.0 |
991102 | 01002 | 58.0 |
991103 | 01002 | 71.0 |
991104 | 01002 | 85.0 |
use Study
insert into Choice(s_no,course_no,score)
values('991101','01001',88.0)
insert into Choice(s_no,course_no)
values('991102','01001')
insert into Choice(s_no,course_no,score)
values('991103','01001',91.0)
insert into Choice(s_no,course_no,score)
values('991104','01001',78.0)
insert into Choice(s_no,course_no,score)
values('991201','01001',67.0)
insert into Choice(s_no,course_no,score)
values('991101','01002',90.0)
insert into Choice(s_no,course_no,score)
values('991101','01002',58.0)
insert into Choice(s_no,course_no,score)
values('991102','01002',71.0)
insert into Choice(s_no,course_no,score)
values('991103','01002',85.0)
go
⑤ 教师数据表Teacher的内容如下:
t_no | t_name | t_sex | t_birthday | t_title |
000001 | 李英 | 女 | 1964-11-3 | 讲师 |
000002 | 王大山 | 男 | 1955-3-7 | 副教授 |
000003 | 张朋 | 男 | 1960-10-5 | 讲师 |
000004 | 陈为军 | 男 | 1970-3-2 | 助教 |
000005 | 宋浩然 | 男 | 1966-12-4 | 讲师 |
000006 | 许红霞 | 女 | 1951-5-8 | 副教授 |
000007 | 徐永军 | 男 | 1948-4-8 | 教授 |
000008 | 李桂菁 | 女 | 1940-11-3 | 教授 |
000009 | 王一凡 | 女 | 1962-5-9 | 讲师 |
000010 | 田峰 | 男 | 1972-11-5 | 助教 |
Use Study
insert into Teacher(t_no,t_name,t_sex,t_birthday,t_title)
values('000001','李英','女','1964-11-3','讲师')
insert into Teacher(t_no,t_name,t_sex,t_birthday,t_title)
values('000002','王大山','男','1955-3-7','副教授')
insert into Teacher(t_no,t_name,t_sex,t_birthday,t_title)
values('000003','张朋','男','1960-10-5','讲师')
insert into Teacher(t_no,t_name,t_sex,t_birthday,t_title)
values('000004','陈为军','男','1970-3-2','助教')
insert into Teacher(t_no,t_name,t_sex,t_birthday,t_title)
values('000005','宋浩然','男','1966-12-4','讲师')
insert into Teacher(t_no,t_name,t_sex,t_birthday,t_title)
values('000006','许红霞','女','1951-5-8','副教授')
insert into Teacher(t_no,t_name,t_sex,t_birthday,t_title)
values('000007','徐永军','男','1948-4-8','教授')
insert into Teacher(t_no,t_name,t_sex,t_birthday,t_title)
values('000008','李桂菁','女','1940-11-3','教授')
insert into Teacher(t_no,t_name,t_sex,t_birthday,t_title)
values('000009','王一凡','女','1962-5-9','讲师')
insert into Teacher(t_no,t_name,t_sex,t_birthday,t_title)
values('000010','田峰','男','1972-11-5','助教')
go
⑥ 教师任课情况表Teaching的内容如下:
course_no | t_no |
01001 | 000001 |
01002 | 000002 |
01003 | 000002 |
02001 | 000003 |
02002 | 000004 |
01001 | 000005 |
01002 | 000006 |
01003 | 000007 |
02001 | 000007 |
02002 | 000008 |
use Study
insert into Teaching(course_no,t_no)
values('01001','000001')
insert into Teaching(course_no,t_no)
values('01002','000002')
insert into Teaching(course_no,t_no)
values('01003','000002')
insert into Teaching(course_no,t_no)
values('02001','000003')
insert into Teaching(course_no,t_no)
values('02002','000004')
insert into Teaching(course_no,t_no)
values('01001','000005')
insert into Teaching(course_no,t_no)
values('01002','000006')
insert into Teaching(course_no,t_no)
values('01003','000007')
insert into Teaching(course_no,t_no)
values('02001','000007')
insert into Teaching(course_no,t_no)
values('02002','000008')
go
(6)利用对象资源管理器的数据库备份功能,将以上建立的数据库Study备份到所建立的文件夹中,并将备份文件拷贝到U盘中,以备下面的题目使用。
2.修改表结构
(1).为选修课程情况数据表Choice添加主码约束。主码为s_no和course_no
Alter table choice add constraint c1 primary key(s_no,couse_no)
go
(2).为选修课程情况数据表Choice添加外码约束。外码为s_no和course_no
Alter table choice add constraint c2 foreign key(s_no) references Student(s_no)
go
Alter table choice add constraint c3 foreign key(course_no) references Course(course_no)
go
(3).将数据库中的班号列class_no的字段长度变为8
Alter table class alter column class_no char(8)
(4).为教师数据表Teacher添加一列所属学院t_belong
Alter table Teacher add t_belong varchar(20)
go
(5).为学生表Student添加年龄列s_age,默认值18
Alter table Student add s_age int default 18
go
3.更新表数据
(1).将学生许辉的性别设为男。
update Student set s_sex='男' where s_name='许辉' go
(2).将学号为’001101’的学生的姓名设为宋小方.
update Student set s_name='宋小方' where s_no='001101' go
(3).将学生表Student的男生的年龄增加2岁
update Student set s_age+=2 where s_sex='男' go
(4).将陈为军老师的职称变为讲师
update Teacher set t_title='讲师' where t_name='陈为军' go