数据库实验四答案
《数据库与信息系统》实验4指导解析_9-10

实验四数据库操作语言SQL一.实验目的⚫了解使用SQL中DDL语句创建数据库和表的方法⚫熟练掌握使用SQL中DML语句对数据库进行查询、插入、修改和删除等操作的方法⚫掌握可编程对象视图和存储过程的创建与使用方法,了解触发器的创建方法二.实验环境及素材⚫MySQL和Navicat for MySQL⚫bookstore数据库的脚本文件bookstore.sql三.实验内容首先创建一个bookstore数据库,执行bookstore.sql脚本文件实现表的创建及数据记录的添加。
然后在bookstore数据库中完成以下题目(bookstore数据库设计说明参见10.1节)。
①在Navicat for MySQL中,创建数据库bookstore。
②右击数据库bookstore,选择“运行SQL文件…”,在对话框中浏览选择“bookstore.sql”文件,点击“开始”即可完成数据表定义及添加数据记录。
③在左栏连接窗口展开数据库“bookstore”/表,右击“表”选“刷新”菜单,即可看到恢复的各数据表。
9.创建和使用存储过程。
解析:存储过程是经过编译的SQL语句的集合。
用户首先创建存储过程,然后在程序中调用该存储过程执行。
创建存储过程可以在Navicat for MySQL中使用向导建立,也可以使用SQL的CREATE PROCDURE语句。
存储过程可以接受参数、也可将查询信息通过输出参数返回调用者。
常用存储过程的语法格式:CREATE PROCDURE 存储过程名( [形式参数列表])SQL语句段“形式参数列表”中多个参数之间用逗号分隔,如果没有参数,则()中为空。
每个参数由输入输出类型、参数名和参数类型三部分组成,定义规则如下:[IN|OUT|INOUT 参数名类型输入输出类型中:IN是输入参数,即把数据传递给存储过程;OUT是输出参数,即从存储过程返回值;INOUT表示输入输出,即传入也能返回值。
实验训练4答案:数据库系统维护

实验训练4答案:数据库系统维护实验训练4:数据库系统维护实验目的:在基于实验1创建的汽车用品网上商城中,练创建用户和权限管理,掌握数据库备份与恢复方法以及数据导出导入的技巧,了解数据库系统维护的主要工作。
实验内容:1.数据库安全性实验6-1】创建账户:创建一个用户名为‘Teacher’,密码为‘T’的用户;创建一个用户名为‘Student’,密码为‘S’的用户。
实验6-2】用户授权:将Shopping数据库上SELECT、INSERT、DELETE、UPDATE的权限授予‘Teacher’用户;将Shopping数据库上SELECT的权限授予‘Student’用户。
实验6-3】以‘Teacher’用户身份连接Shopping数据库,分别执行SELECT、INSERT、DELETE、UPDATE、CREATE操作,查看执行结果;以‘Student’用户身份连接Shopping数据库,执行SELECT操作,查看执行结果。
以‘Student’用户身份连接Shopping数据库,执行INSERT、DELETE、UPDATE操作提示无权限。
2.数据库备份与恢复实验6-4】使用mysqldump工具对Shopping数据库进行备份,查看备份文件。
命令为:mysqldump –uroot –p –hlocalhost shopping。
c:\shopping.sqlEnter password: -- Warning: Skipping the data of table mysql.event。
Specify the n explicitly.mysql@redhat6 MysqlDb_Backup]$ ls -ltr total xxxxxxx -rw-rw-r-- 1 mysql mysql xxxxxxxx37 Apr 8 09:45 Full-Backup_On_2018-04-08.sql -rw-rw-r-- 1 mysql mysql xxxxxxxx Apr 9 11:34 Backup_2018-04-09.sql -rw-rw-r-- 1 mysql mysql 5943 Apr 9 15:00使用mysqldump工具对Shopping数据库进行备份,并查看备份文件。
《数据库与信息系统》实验4指导解析_9-10

实验四数据库操作语言SQL一.实验目的⚫了解使用SQL中DDL语句创建数据库和表的方法⚫熟练掌握使用SQL中DML语句对数据库进行查询、插入、修改和删除等操作的方法⚫掌握可编程对象视图和存储过程的创建与使用方法,了解触发器的创建方法二.实验环境及素材⚫MySQL和Navicat for MySQL⚫bookstore数据库的脚本文件bookstore.sql三.实验内容首先创建一个bookstore数据库,执行bookstore.sql脚本文件实现表的创建及数据记录的添加。
然后在bookstore数据库中完成以下题目(bookstore数据库设计说明参见10.1节)。
①在Navicat for MySQL中,创建数据库bookstore。
②右击数据库bookstore,选择“运行SQL文件…”,在对话框中浏览选择“bookstore.sql”文件,点击“开始”即可完成数据表定义及添加数据记录。
③在左栏连接窗口展开数据库“bookstore”/表,右击“表”选“刷新”菜单,即可看到恢复的各数据表。
9.创建和使用存储过程。
解析:存储过程是经过编译的SQL语句的集合。
用户首先创建存储过程,然后在程序中调用该存储过程执行。
创建存储过程可以在Navicat for MySQL中使用向导建立,也可以使用SQL的CREATE PROCDURE语句。
存储过程可以接受参数、也可将查询信息通过输出参数返回调用者。
常用存储过程的语法格式:CREATE PROCDURE 存储过程名( [形式参数列表])SQL语句段“形式参数列表”中多个参数之间用逗号分隔,如果没有参数,则()中为空。
每个参数由输入输出类型、参数名和参数类型三部分组成,定义规则如下:[IN|OUT|INOUT 参数名类型输入输出类型中:IN是输入参数,即把数据传递给存储过程;OUT是输出参数,即从存储过程返回值;INOUT表示输入输出,即传入也能返回值。
国开电大《数据库运维》形考实验4答案

国开电大《数据库运维》形考实验4答案形考任务四实验4 数据库备份与恢复实验(预备知识:第5章;分值:16分;需辅导教师评分)1.实验目的练习数据库备份与恢复的操作方法。
说明:实验过程中可以使用MySQL官网提供实例employees数据库,下载地址为https:///test-db/employees-db-1/1.0.6,也可以自己创建数据库进行备份恢复实验。
2.实验内容【实验5-1】使用select…into…outfile语句对数据库employees的表departments进行数据导出。
【实验5-2】使用select…into…outfile语句对数据库employees的表salaries进行数据导出,并使用fields字句指定字段值之间的符号分隔符为“,”,字段的包裹符号为“””。
【实验5-3】使用mysqldump命令备份数据库中的某个表,对数据库employees的表deparments 导出SQL语句。
【实验5-4】使用mysqldump命令备份单个数据库,对数据库employees的导出SQL语句,并忽略数据表departments。
【实验5-5】使用mysqldump命令备份多个数据库,对数据库employees、test两个数据库导出SQL语句。
【实验5-6】使用mysqldump命令导出界定格式文件数据,对数据库employees进行CSV文件数据的导出。
【实验5-7】使用图形化工具MySQL Workbench导出数据库employees的表departments的CSV 格式数据。
【实验5-8】使用图形化工具MySQL Workbench导出数据库employees的表departments的SQL 文件。
【实验5-9】使用DELETE语句删除employees数据库的表departments的表格数据,使用LOAD DATA INFILE语句,通过【实验5-1】导出的文件,对删除的数据进行恢复,并使用SELECT语句对恢复的数据进行检查。
实验答案(四-五-六)参考答案

实验四简单查询和连接查询1. 简单查询实验用Transact-SQL语句表示下列操作,在“学生选课“数据库中实现其数据查询操作:(1) 查询数学系学生的学号和姓名。
select sno,snamefrom studentwhere dept='数学系';(2) 查询选修了课程的学生学号。
select distinct(sno)from sc;(3) 查询选修课程号为0101的学生学号和成绩,并要求对查询结果按成绩降序排列,如果成绩相同则按学号升序排列。
select distinct(sno),gradefrom scwhere cno='0101'order by grade desc,sno asc;(4) 查询选修课程号为0101的成绩在80-90 分之间的学生学号和成绩,并将成绩乘以系数0.8 输出。
select distinct(sno),grade*0.8 as'sore'from scwhere cno='0101'and grade between 80 and 90;(5) 查询数学系或计算机系姓张的学生的信息。
select*from studentwhere dept in('数学系','计算机系')and sname like'张%';(6) 查询缺少了成绩的学生的学号和课程号。
select sno,cnofrom scwhere grade is null;2. 连接查询实验用Transact-SQL语句表示,并在“学生选课”数据库中实现下列数据连接查询操作:(1) 查询每个学生的情况以及他(她)所选修的课程。
select student.*,amefrom student,sc,coursewhere student.sno=sc.sno and o=o;(2) 查询学生的学号、姓名、选修的课程名及成绩。
数据库原理及应用最全上机实验及实验答案

实验一 SQL Server 2005 的安装和环境介绍一.实验目的与要求:1.掌握SQL Server 2005 服务器的安装方法2.了解SQL Server 2005 的环境3.了解数据库及其对象二.实验准备1.了解SQL Server 2005的版本2.了解SQL Server 2005各版本对硬件和软件的需求三.实验要求1.写出SQL SERVER 2005的功能与特点, 使用方法, 应用状况的报告2.完成SQL SERVER 2005的安装、启动、登录。
四.实验内容1.安装SQL Server 2005实验一 SQL Server 2005 的安装和环境介绍●实验指导——安装SQL Server 20051.根据安装机器软硬件的要求,选择一个合适的版本,以下以开发版为例2.将 SQL Server 2005 DVD 插入 DVD 驱动器。
如果DVD驱动器的自动运行功能无法启动安装程序无法启动安装程序,请导航到 DVD 的根目录然后启动splash.hta。
3.在自动运行的对话框中,单击“运行 SQL Server 安装向导”。
4.在“最终用户许可协议”页上,阅读许可协议,再选中相应的复选框以接受许可条款和条件。
接受许可协议后即可激活“下一步”按钮。
若要继续,请单击“下一步”若要结束安装程序,请单击“取消”。
如下图:5.在“SQL Server 组件更新”页上,安装程序将安装 SQL Server 2005 的必需软件。
有关组件要求的详细信息,请单击该页底部的“帮助”按钮。
若要开始执行组件更新,请单击“安装”。
更新完成之后若要继续,请单击“完成”。
6.在 SQL Server 安装向导的“欢迎”页上,单击“下一步”以继续安装。
7.在“系统配置检查 (SCC)”页上,将扫描安装计算机,以检查是否存在可能妨碍安装程序的条件。
8.在“注册信息”页上的“姓名”和“公司”文本框中,输入相应的信息。
最新国家开放大学电大《MySQL数据库应用》网络核心课实验训练4答案

最新国家开放大学电大《MySQL数据库应用》网络核心课实验训练4答案最新国家开放大学电大《MySQL数据库应用》网络核心课实验训练4答案盗传必究实验训练4:数据库系统维护答案: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 语句使用相应数据。
ex04数据库与数据表定义参考答案

实验四数据库与数据表定义1 实验目的与要求(1)掌握数据库的建立、删除和修改操作。
(2)理解基本表之间的关系,掌握表结构的建立、修改和删除操作,创建模式导航图。
2 实验内容(1)创建一个BookDB数据库,要求至少一个数据文件和一个日志文件。
创建BookBD数据库:use mastergoif exists(select*from sysdatabases where name='BookDB')drop database BookDBgocreate database BookDBon(Name='BookDB',--数据库名称FileName='g:\',--数据库物理存储路径Size=3,--初始化文件大小MaxSize=20,--文件最大限制FileGrowth=1 --每次增长大小)Log On(Name='BookDBLog',--创建日志名称FileName='g:\',--日志物理存储路径Size=1,--初始化大小MaxSize=5,--文件最大限制FileGrowth=1 --每次增长大小)gouse BookDBgo(2) 创建图书管理相关4张关系表,表结构如图3-1至图3-4所示。
图3-1图书分类表BookClass图3-2 图书表Book图3-3读者表Reader图3-4 借阅表Borrow创建4张表:--图书分类表CREATE TABLE BookClass(classNo char(3)not null,/*图书分类号*/className varchar(20)not null/*图书分类名称*/)--图书表CREATE TABLE Book(bookNo char(10)not null,/*图书编号*/classNo char(3)not null,/*分类号*/bookName varchar(40)not null,/*图书名称*/authorName varchar(8)not null,/*作者姓名*/publishingName varchar(20)null,/*出版社名称*/publishingNo char(17)null,/*出版社编号*/price numeric(7, 2)null,/*单价*/publishingDate datetime null,/*出版日期*/shopDate datetime null,/*入库时间*/shopNum numeric(3)null/*入库数量*/)--读者表CREATE TABLE Reader(readerNo char(8)Not null,/*读者编号*/readerName varchar(8)Not null,/*姓名*/Sex char(2)null,/*性别*/identifycard char(18)null,/*身份证号*/workUnit varchar(50)null,/* 工作单位*/borrowCount tinyint null/*借书数量*/)--借阅表CREATE TABLE Borrow(readerNo char(8)not null,/*读者编号*/bookNo char(10)not null,/*图书编号*/borrowDate datetime not null,/*借阅日期*/shouldDate datetime not null,/*应归还日期*/returnDate datetime null/*归还日期*/)(3) 表结构的修改,要求:①修改图书表结构,要求出版社名称和入库时间不允许为空。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库实验四答案
--实验四--
--1.定义“IS”系学生基本情况视图V_IS 并查询结果;
create view V_IS
as
select *
from S
where Sdept='IS'
with check option;
select *
from V_IS;
--2.将S,C,SC表中学生的学号,姓名,课程号,课程名,成绩定义为视图V_S_C_G并查询结果;
create view V_S_C_G
as
select S.Sno,Sname,o,Cname
from S,C,SC
where S.Sno=SC.Sno and o=o;
select *
from V_S_C_G;
--3.将各系学生人数,平均年龄定义为视图V_NUM_AVG并查询结果; create view V_NUM_AVG
as
select count(Sno) DeptNum ,avg(Sage) DeptAvgAge,Sdept
from S
group by Sdept;
select *
from V_NUM_AVG;
--4.定义一个反映学生出生年份的视图V_YEAR并查询结果;
create view V_YEAR
as
select Sno,2012-Sage birthday
from S;
select *
from V_YEAR;
--5.将各位学生选修课程的门数及平均成绩定义为视图V_AVG_S_G并查询结果;
create view V_AVG_S_G
as
select SC.Sno,count(o) CountCno,avg(Grade) AvgGrade
from S,C,SC
where S.Sno=SC.Sno and o=o
group by SC.Sno;
select *
from V_AVG_S_G;
--6.将各门课程的选修人数及平均成绩定义为视图V_AVG_C_G并查询结果; create view V_AVG_C_G
as
select count(SC.Sno) Cnum,avg(Grade) AvgGrade
from S,C,SC
where S.Sno=SC.Sno and o=o
group by o;
select *
from V_AVG_C_G;
--7.查询平均成绩为90分以上的学生学号、姓名和成绩;
select SC.Sno,Sname,avg(Grade) AvgGrade
from S,SC
where S.Sno=SC.Sno
group by SC.Sno,Sname
having avg(Grade) >90;
--8.查询各课成绩均大于平均成绩的学生学号、姓名、课程和成绩;create view V_AVG
as
select o,avg(Grade) AvgGrade
from C,SC
where o=o
group by o;
select
distinct S.Sno,Sname,o,Grade
from S,SC,C,V_AVG
where S.Sno=SC.Sno and o=V_o and Grade >V_AVG.AvgGrade ;
--9.按系统计各系平均成绩在80分以上的人数,结果按降序排列;
select Sdept,count(AvgGrade) Num
from S,V_AVG_S_G
where S.Sno=V_AVG_S_G.Sno and AvgGrade > 80
group by Sdept
order by Num desc;
--10通过视图V_IS,分别将学号为“S1”和“S4”的学生姓名更改为“S1_MMM”,”S4_MMM”并查询结果;
insert into S(Sno,Sname,Ssex,Sage,Sdept) values('200215121','三毛','男',21,'IS');
insert into S(Sno,Sname,Ssex,Sage,Sdept) values('200215124','紫薇','女',19,'IS');
update V_IS set Sno='S1_MMM' where Sno='200215121'; update V_IS set Sno='S4_MMM' where Sno='200215124'; select *
from V_IS;
--11.通过视图V_IS,新增加一个学生记录('S12','YAN XI',19,'IS'),并查询结果;
insert into V_IS(Sno,Sname,Sage,Sdept) values('S12','YAN XI',19,'IS');
select *
from V_IS
where Sno='S12';
--11.通过视图V_IS,新增加一个学生记录('S13','YAN XI',19,'MA'),并查询结果;
insert into V_IS(Sno,Sname,Sage,Sdept) values('S13','Y
AN XI',19,'MA');
-- Tip:由于该学生是MA系的,当有check约束时将会产生更新错误。
--13.通过视图V_IS,删除学号为“S12”和“S3”的学生信息,并查询结果;insert into V_IS(Sno,Sname,Sage,Sdept) values('S3','李杨',21,'IS');
select *
from V_IS;
delete
from V_IS
where Sno='S12';
delete
from V_IS
where Sno='S3';
select *
from V_IS;
--14.要通过视图V_S_C_G,将学号为“S12”的姓名改为“S12_MMM”,是否可以实现?
update V_S_C_G
set Sname='S12_MMM'
where Sno='S12';
--15.要通过视图V_AVG_S_G,将学号为“S1”的平均成绩改为90分,是否可以实现?
--不能实现,因为视图不是真正存在的,对视图的修改实际上是对基本表的修改, --而平均分在基本表中不存在,涉及到多个成绩,所以不能修改。