4 数据库的操作
4.1 数据库的创建
根据数据库设计结果,利用SQL Server Management 工具,用SQL语句创建数据库。
use master
go
if exists (select * from sysdatabases where name='化学课程网上教学平台')
drop database 化学课程网上教学平台
go
create database 化学课程网上教学平台
on primary
( name=化学课程网上教学平台_data,
filename='D:\SQLServer2012\化学课程网上教学平台_data.mdf',
size=100MB,
maxsize=200GB,
filegrowth=10%)
log on
( name =化学课程网上教学平台_log,
filename='D:\SQLServer2012\化学课程网上教学平台_log.ldf',
size=100MB,
maxsize=200GB,
filegrowth=5%
)
l 创建高中化学课程在线教学数据库(HXJX)
create database HXJX
l 创建教师信息表(teacher)
use HXJX
create table teacher(
tno nchar(11) primary key not null ,
tname varchar(20) not null ,
tsex varchar(20) not null,
level varchar(10) not null,
tphone nchar(11) not null,
tmail varchar(20) not null,
taddress varchar(100) not null,
constraint a1 check(tsex in ('男','女')),
)
l 创建学生信息表(student)
use HXJX
create table student (
sno nchar(11) primary key not null,
sname varchar(20) not null ,
ssex varchar(4) not null,
sdate datetime ,
smail varchar(20) ,
saddress varchar(100),
sphone nchar(11),
constraint a2 check(ssex in ('男','女')),
)
l 创建课程信息表:
create table course (
cno nchar(11) primary key not null,
cname varchar(20) not null,
intro text,
outline text,
tno nchar(11) not null
--教师编号作为课程表的外键
constraint a3 foreign key (tno)references teacher(tno)
)
l 创建教学资源表
create table resource(
rno nchar(11) not null,
rname varchar(255) not null,
cno nchar(11) not null,
tno nchar(11) not null,
upload datetime not null,
rcontent text,
--cno 和 tno 作为resourse的外键
constraint a4 foreign key (cno)references course(cno),
constraint a5 foreign key (tno)references teacher(tno),
)
l 创建学生问题表
use HXJX
create table question(
qno nchar(11) not null,
title varchar(255) not null,
qcontent text,
cno nchar(11) not null,
sno nchar(11) not null,
qdate datetime not null,
--cno sno 作为question的外键
constraint a6 foreign key (cno)references course(cno),
constraint a7 foreign key (sno)references student(sno),
)
l 创建问题回复表
use HXJX
create table answer(
ano nchar(11) not null,
acontent text not null,
qno nchar(11)not null,
tno nchar(11) not null,
adate datetime not null,
constraint a8 foreign key (tno)references teacher(tno),
)
4.2数据的插入操作
l 向教师信息表中插入数据
use HXJX
insert into teacher values
('20220001','宋老师','男','中级','13506542689','2356987@163.com','北大街011号'),
('20220002','李老师','女','高级','18721234454','1274345@qq.com','北大街012号'),
('20220003','张老师','女','特级','13504536453','215487@163.com','东一环路013号'),
('20220004','王老师','男','高级','18706545019','234147@163.com','北大街014号')
图 4.1教师信息表
l 向学生信息表中插入数据
insert into student values
('220001','张平','男','2022-02-13','255484547@qq.com','雷家巷011号','13659867454'),
('220002','李楠','女','2021-09-16','113221454@qq.com','雷家巷012号','13525986745'),
('220003','王五','男','2021-06-16','245545237@qq.com','北大街013号','13540145478'),
('220004','孙七','女','2022-06-09','35657447@163.com','风景路014号','13659435431')
图 4.2 学生信息表
l 向课程表中插入数据
insert into course values
('0001','有机化学分析','针对高考中常见的有机化学题目进行讲解','有机化学基本知识和进阶应用','20220002'),
('0002','化工流程推断30讲','化工流程剖析','工业流程的基本过程','20220001'),
('0003','无机化学分析','针对高考中常见的无机化学题目进行讲解','无机化学基本知识和进阶应用','20220003'),
('0004','化学与生活','常见的化学与生活题目进行讲解','基本化学知识和进阶应用','20220004')
图 4.3 课程信息表
l 向教学资源表中插入数据
insert into resource values
('001','无机化学总结','0003','20220003','2021-08-12','关于无机化学的详细总结'),
('002','有机化学常见题型','0001','20220002','2022-03-24','关于有机化学的详细总结'),
('003','化学与生活100题','0004','20220004','2020-06-22','化学生活常见100题'),
('004','化工流程总结','0002','20220001','2020-11-14','化工流程总结')
图 4.4 教学资源信息表
l 向学生问题表中插入数据
insert into question values
('01','化工流程过程','化工流程中的具体过程是什么?','0002','220001','2022-03-04'),
('02','有机化学流程','有机化学中的聚合反应怎么写?','0001','220002','2021-09-16')
('03','无机化学反应','Na钠的性质如何?','0003','220003','2022-08-26'),
('04','化学生活详解','制造芯片的硅属于什么材料?')
图 4.5 学生问题表
l 向问题回复表中插入数据
insert into answer values
('100','原材料加工产出','01','20220001','2022-03-05'),
('101','低分子量单体转化为聚合物','02','20220002','2021-09-17'),
('102','浮游溶响红','03','20220003','2022-08-27'),
('103','无机非金属','04','20220004','2022-08-27')
图 4.6 问题回复表
4 .3 数据操作
(1) 数据查询操作
l 查询全部教师的个人信息
select *
from teacher
图 4.7 全部教师个人信息
l 查询学号为“220001”的学生的基本信息
select *
from student
where sno = 220001
图 4.8 学号为20001的学生基本信息
l 查询全部的问题回复
select *
from answer
图 4.9 问题的全部回复
l 查询学号为220001提问的问题
select qcontent
from question
where sno = 220001
图 4.10 学号为220001的学生提问的问题
l 查询课程号为0004的课程信息
select *
from course
where cno = 0004
图 4.11课程号为0004的课程信息
(2) 数据更新操作
l 将学号为220003的学生电话更新为13506942684
update student
set sphone='13506942684'
where sno = 220003
图 4.12 更新后的学生表
l 将教师编号为20220002的教师职称更新为特级
update teacher
set level = '特级'
where tno = 20220002
更新后的教师表如图4.3.7所示
图 4.13 更新后的教师表
(3) 数据删除操作
l 删除资源编号为004的全部信息
delete
from resource
where rno = 004
删除后的资源表如图4.3.8所示
图 4.14 删除后的资源表
(4) 建立视图
l 将问题表中的问题编号,问题标题,问题内容建立视图
use HXJX
create view view_1
as
select qno,title,qcontent
from question
视图建立结果如图4.3.9所示
图 4.15 建立的视图
5 总结
通过本次数据库课程设计,完成对高中化学课程网上辅助教学平台的分析和数据库的实现。在过程中,将重点放在系统的分析与数据库设计方面。根据了解系统的相关信息,初步分析系统需求,在需求分析基础上,通过画E-R图,完成对数据库的概念结构设计;将E-R图转化为关系模式,完成数据库的逻辑结构设计;将关系模式转化为数据库中的表,完成数据库的物理结构设计。并利用SQL语句完成数据库中对象的创建、插入数据记录、查询记录、创建数据存储等。
高中化学课程网上辅助教学平台的设计过程,是对软件工程与数据库课程相关内容的温习。整个完成过程严格按照软件开发流程与数据库设计步骤进行,为后期的系统实现打下了坚实的基础。该系统可扩展功能很多,有待进一步完善。相信通过本次数据库课程设计后,在未来的软件开发过程中,我们将更加规范自己的设计过程,使所开发系统更加稳定可靠,具有更多功能,服务于更多用户。
[1] 严蔚敏,吴伟民.数据结构(C语言版)[M].北京:清华大学出版社,2021
[2] 林小玲.数据库原理及应用[M]. 北京:机械工业出版社,2021
[3] 苗雪兰,刘瑞新,宋会群.数据库系统原理及应用教程(第2版)[M].北京:机械工业出版社,2016.
[4] 向阳.信息系统分析与设计(第1版)[M].北京:清华大学出版社,2019.
[5] 卫红春.信息系统分析与设计[M].西安:西安电子科技大学出版社,2013
[6] 郑炜,朱怡安.软件工程[M].西安:西北工业大学出版社,2019