数据库创建与维护实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.实验一数据库创建与维护实验
1.1 实验目的
通过创建数据库、并进行相应的维护,了解并掌握Mysql数据库的创建和维护的不同方法和途径,并通过这一具体的数据库理解实际数据库所包含的各要素。
1.2 实验内容
1.数据库创建与维护
(1)创建数据库表
创建学生选课数据库中所包含的数据库表,数据库表结构如下:
学生(学号,姓名,性别,年龄,系别,班级)
课程(课程编号,课程名称,学分)
选修(学号,课程编号,学生成绩)
要求为各数据库表属性选择合适的数据类型。
列名、数据类型(长度列、精度、小数位数项)、是否允许空值等。
(2)查看和修改表结构。
选择一个数据库表,练习对其表结构进行相应的修改。
(3)练习用交互式的SQL语句分别完成以上操作。
(4)对学生数据库中的三张表分别插入数据;
(5)对表中的数据进行修改;
(6)对表中的数据进行删除操作
2.(1)建立如下视图:
学生选修课程信息视图,包括以下内容:
学生学号、姓名、所在系、选修的课程编号、课程名称、成绩
(2)修改以上视图,增加学生所在班级信息。
(3)对以上视图删除。
1.3 实验要求
1.数据库创建与维护实验则要求面向具体应用领域,利用SQL Server相关机制,创建并维护数据库系统,为后续各个实验提供前期准备
2.要求学生根据以上要求确定实验步骤,独立完成以上实验内容。并在安装和数据库运行后熟悉SQL SERVER 的各种运行管理。
3.实验完成后完成实验报告
1.4 实验环境
Windows8 pc机
Mysql配置的环境
Mysql命令行工具
Workbench可视化工具
1.5 实验步骤及结果分析
1.5.1 student数据库创建
打开命令行工具,输入密码,用use语句使用相应数据。Use student使用老师的给的数据库。在workbench中我们可以看到创建数据库的代码:
下面是输入的数据
此处我们会发现乱码问题,老师给的代码中写的是Latin,我们改成utf-8,便解决了中文乱码问题。
创建数据库语句,create table +`数据库名`(
`属性名` 属性类型约束
)
1.5.2 数据库操作---属性查询
查询表结构:即各个属性和属性的完整性约束等。(desc student)
该语句给我们展示了我们创建的数据的所有(属性名+类型+默认初始情况+约束等)信息。
1.5.3 数据库操作---数据结构修改
在老师给的默认数据库中,我发现最后一个属性classno的属性为varchar(3);但是数据库数
据中classno本来是4位数,所以导致存储时与原数据不匹配。因此,我们修改一下该属性。即:将它改为4位长度的:
alter table `student` modify `classno` varchar(4)DEFAULT NULL;
我们在数据插入操作中进行检测。
1.5.4 数据库操作—数据插入
例如,我们加入一个学生信息,以自己为例:
insert into `student` values('33333','茹兴康','男','1997/7/7 8:00','计算机','3146');
插入成功,因为插入的classno为3146 是4位的,所以说明数据库结构修改成功。
我们查询一下:
插入成功,数据库结构修改成功。
1.5.5 数据库操作---数据查询
例如:我们查询学号为30201的学生的所有信息。
采用语句结构:select+查询的属性from+要查找的表where+约束条件:
Select * from student where sno=30201;
1.5.6 数据库操作---数据修改
我们按学号为30201,即第一个数据为例,修改他的名字,
Update student set sname = ’abc’ where sno=30201;
1.5.7 数据库操作---数据删除
我们按学号为30201,即第一个数据为例:
delete from `student` where sno='30201';
因为我们已经删除了该数据,所以查询为空。
1.5.8 视图操作---视图创建
视图,用来更方便的展示某些信息,或者为了更安全的选择展示或隐藏某些信息。
我们将student表,sc表,course表连接起来创建新的视图,从而让学生信息更直观,更方便。创建视图所需语句:create view +视图名+as+查询语句。
create view view1 as
select sno,sname,dept,cno,cname,grade,classno
from student natural join sc natural join course;
我们在下面的视图查询操作中检测试图是否创建成功。
1.5.9 视图操作---视图查询
由于在上述实验中我们将第一个学生的数据删除掉了,所以我们选择查询后面的同学,
查询视图操作代码和查询表格是一样的。
代码:select * from view1 where sno=30203;(其中view1是我们创建的视图名称);
由于该同学选择了三门不同的课程,因此在进行表连接的时候,增加了该同学的元组数量,最终查询出3条结果。
1.5.10 视图操作---视图结构修改
在视图创建中,我们创建了视图的classno班级信息,现在我们删除这一属性。
使用语句:create or replace view。
Create or replace view view1 as
select sno,sname,dept,cno,cname,grade
from student natural join sc natural join course;
然后我们在查询一下view1的结构,同table操作一样,用desc语句。结果如下:
显然,view1视图结构中没有了classno属性。
1.5.11 视图操作---视图删除
最后,我们删除视图view1,采用语句drop view;
语句:drop view if exists view1;
结果: