数据库实验四答案

合集下载

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

《数据库与信息系统》实验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答案:数据库系统维护实验训练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

《数据库与信息系统》实验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答案形考任务四实验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答案最新国家开放大学电大《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数据库与数据表定义参考答案

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) 表结构的修改,要求:①修改图书表结构,要求出版社名称和入库时间不允许为空。

国开学习网电大数据库应用技术第四次形考作业实验答案

国开学习网电大数据库应用技术第四次形考作业实验答案

国开学习网电大数据库应用技术第四次形考作业实验答案实验目的:通过使用SSMS工具,练习对数据库中的数据表进行单表查询、多表连接查询、子查询。

对数据表中的数据进行更改和删除等操作。

实验要求:将相关的SQL 语句和运行结果的截屏保存在文件中,或填写在下面的实验报告中,并通过网络提交。

实验内容:使用SSMS工具,在“可用数据库”中选中Students数据库,完成如下实验。

1. 单表查询。

写出实现如下查询的SQL语句。

(1) 查询学生选课表中的全部数据。

SELECT * FROM SC(2) 查询计算机系的学生的姓名、年龄。

SELECT Sname,Sex FROM Student WHERE Sdept='计算机系'(3) 查询成绩在70~80分的学生的学号、课程号和成绩。

SELECT Sno,Cno,Grade FROM SC where Grade BETWEEN 70 AND 80;(4) 查询计算机系年龄在18~20岁男生的姓名、年龄。

SELECT Sname,Sage from Student where Sex='男' AND Sage>18 AND Sage<20(5) 查询C001课程的考试成绩最高分。

SELECT max(Grade) from SC where Cno='C001'(6) 查询计算机系学生的最大年龄和最小年龄。

SELECT max(Sage) '最大年龄',min(Sage) '最小年龄' from Student where Sdept='计算机系' (7) 统计各系的学生人数。

SELECT Sdept,count(Sno)'人数' from Student GROUP BY Sdept;(8) 统计每门课程的选课人数和考试成绩最高分。

SELECT cno,count(Sno) '选课人数',max(Grade)'最高成绩' FROM SC GROUP BY Cno;(9) 统计每个学生的选课门数和考试总成绩,并按选课门数升序显示结果。

同济大学数据库实验四答案

同济大学数据库实验四答案

1selectStudent.Snum,Student.Sname,um,ame, from Student inner join SC on Student.Snum=sc.snum inner join Sections on sc.secnum=Sections.Secnum inner join course on um=umwhere sc.score<602select distinct Student.Sname,YEAR(GETDATE())-YEAR(birthday)as年龄from Student inner join SC on Student.Snum=sc.snum inner join Sections on sc.secnum=Sections.Secnum inner join course on um=umwhere course.dept ='计算机系'3select distinct Student.Sname,Student.deptfrom Student inner join SC on Student.Snum=sc.snum inner join Sections on sc.secnum=Sections.Secnum inner join course on um=umwhere ame='数据库技术'4select snum,snamefrom studentwhere snum in(select snum from scgroup by snum having count(*)>=(select count(*)from course))5select snum,snamefrom studentwhere snum not in(select distinct snum from sc where sc.score<=80)6select snum,snamefrom studentwhere snum not in(select distinct snum from sc where sc.score<=80)and snum in(select snum from scgroup by snum having avg(score)>=90)7select Student.Snum,Student.Sname,sc.scorefrom Student inner join SC on Student.Snum=sc.snum inner join Sections on sc.secnum=Sections.Secnum inner join course on um=um where ame like'大学英语'order by sc.score desc8select um ,选课人数from(select cnum,COUNT(snum)as选课人数from sc join sectionson sc.secnum =sections.secnumgroup by all cnum)as a9(select student.sname,student.deptfrom Student inner join SC on Student.Snum=sc.snum inner join Sections on sc.secnum=Sections.Secnum inner join course on um=um and cname like'数据库技术')EXCEPT(select student.sname,student.deptfrom Student inner join SC on Student.Snum=sc.snum inner join Sections on sc.secnum=Sections.Secnum inner join course on um=um and cname like'高等数学')10select cnamefrom coursewhere textbook like'%高等教育出版社'11select um as课号,max(score)as最高成绩, min(score)as最低成绩,avg(score)as平均成绩from sc inner join sections onsc.secnum=sections.secnumgroup by um12select cnum,COUNT(snum)as选课人数,SUM(1-score/60) as不及格人数from sc join sectionson sc.secnum =sections.secnumgroup by all cnum。

数据库系统及应用 实验表4和数据 答案

数据库系统及应用 实验表4和数据 答案
--select * from 产品 where 单价>1000 and 产品名称='显示器'
/*select 客户名称,联系人,电话 from 客户 where 客户号 in
(select 客户号 from 订购单 where 订单号 in
(select 订单号 from 订单名细 where 产品号 in
insert into 客户 values('C07',' 安徽医科大学','丁磊','梅山路','230031','5113422')
insert into 客户 values('C08','中国科大','李永','金寨路','230022','3665872')
insert into 客户 values('C10','新华学院','朱军','null','230035','null')
/*create table 客户(
客户号 char(8) primary key check(客户号 like '[a-z]%'),
客户名称 varchar(40) NOT NULL,
联系人 char(8),
地址 varchar(40),
订购日期 datetime default getdate() )
create table 订单名细(
订单号 char(8) foreign key references 订购单,

数据库实验四作业及答案

数据库实验四作业及答案

数据库实验四作业及答案实验4数据查询一、实验目的1.掌握使用Tranact-SQL的SELECT语句进行基本查询的方法。

2.掌握使用SELECT语句进行条件查询的方法。

3.掌握嵌套查询的方法。

4.掌握多表查询的方法。

5.掌握SELECT语句的GROUPBY和ORDERBY子句的作业和使用方法。

6.掌握联合查询的操作方法。

7.掌握数据更新语句INSERTINTO、UPDATE、DELETE的使用方法。

二、实验准备1.了解SELECT语句的基本语法格式和执行方法。

2.了解嵌套查询的表示方法。

3.了解UNION运算符的用法。

4.了解SELECT语句的GROUPBY和ORDERBY子句的作用。

5.了解IN、JOIN等子查询的格式。

6.了解INSERTINTO、UPDATE、DELETE的格式与作用。

三、实验内容及步骤0.创建tudentdb数据库及其相应表,并录入数据。

启动查询分析器,运行下面链接的代码即可。

创建数据库代码1.在tudentdb数据库中,使用下列SQL语句将输出什么?(1)SELECTCOUNT(某)FROMgrade(2)SELECTSUBSTRING(姓名,1,2)FROMtudent_info(3)SELECTUPPER('kelly')(4)SELECTReplicate('kelly',3)(5)SELECTSQRT(分数)FROMgradeWHERE分数>=85(6)SELECT2,3,POWER(2,3)(7)SELECTYEAR(GETDATE()),MONTH(GETDATE()),DAY(GETDATE())2.在tudentdb数据库中使用SELECT语句进行基本查询。

(1)在tudent_info表中,查询每个学生的学号、姓名、出生日期信息。

SELECT某FROMtudent_info(2)查询学号为0002的学生的姓名和家庭住址。

山东大学数据库实验四答案

山东大学数据库实验四答案

山东大学数据库实验四答案实验四1) 4 - 1 统计总成绩create table test4_01 as select * from pub.STUDENT_41alter table test4_01 add sum_score intupdate test4_01set sum_score=(select sum(score)from pub.STUDENT_COURSE,pub.COURSEwhere test4_01.sid=student_course.sid and student_course.cid=COURSE.cidgroup by sid)2) 4 - 2 统计平均成绩alter table test4_02 add avg_score float(int不行)update test4_02set avg_score=(select trim(to_char(avg(score),999999.9))from pub.STUDENT_COURSEwhere test4_02.sid=student_course.sidgroup by sid)3) 4 - 3 统计总学分alter table test4_03 add sum_credit intupdate test4_03set sum_credit=(select sum(credit)from pub.STUDENT_COURSE,pub.COURSEwhere test4_03.sid=student_course.sid and student_course.cid=COURSE.cid and score>=60group by sid)4) 4 - 4 设置院系编号update test4_04set dname= casewhen dname in (select dnamefrom pub.DEPARTMENT) then (select didfrom pub.DEPARTMENTwhere test4_04.DNAME=department.dname)else test4_04.DNAMEend5) 4 - 5 几项内容综合前三项参照前面题目第四项update test4_05set did= casewhen test4_05.dname in (select dnamefrom pub.DEPARTMENT) then (select didfrom pub.DEPARTMENTwhere test4_05.DNAME=department.dname)when test4_05.dname in (select dnamefrom pub.DEPARTMENT_41) then (select didfrom pub.DEPARTMENT_41where test4_05.DNAME=department_41.dname)else '00'end6) 4 - 6 剔除姓名中的空格create table test4_06 as select * from pub.STUDENT_42update test4_06set name= replace(name,' ')7) 4 - 7 规范性别update test4_07set sex= replace(sex,' ')update test4_07set sex= casewhen sex is NULL then NULLwhen length(sex)>1 then substr(sex,1,1)else sexend8) 4 - 8 规范班级update test4_08set class= casewhen class is NULL then NULLwhen length(class)>4 then substr(class,1,4)else classend9) 4 - 9 计算年龄update test4_09set age= casewhen age is NULL then (2012-extract(year from birthday)) else ageend10) 4 - 10 几项内容综合update test4_10setname= replace(name,' ')update test4_10set dname= replace(dname,' ')update test4_10set sez= replace(sex,' ')update test4_10set sex= casewhen sex is NULL then NULLwhen length(sex)>1 then substr(sex,1,1)else sexendupdate test4_10set class= casewhen class is NULL then NULLwhen length(class)>4 then substr(class,1,4)else classendupdate test4_10set age= casewhen age is NULL then (2012-extract(year from birthday)) else ageend。

数据库实验(实验四实体完整性约束)实验报告答案

数据库实验(实验四实体完整性约束)实验报告答案

实验4 实体完整性约束【实验内容】4.1 实体完整性约束实体完整性约束1、为现有表T在TNO列上创建PRIMARY KEY约束。

约束。

2、创建数据库表TEST_C,并以列约束形式创建PRIMARY KEY约束,TEST_C表的结构定义如下:表的结构定义如下: 表名:TEST_C。

包含的列如下:包含的列如下:课程号:CNO CHAR(2);课程名:CN CHAR(10);课时:CT TINYINT;主键:CNO主键约束名:PK_TEST_C。

3、创建数据库表TEST_TC,并以表约束形式创建PRIMARY KEY约束,TEST_TC表的结构定义如下:表的结构定义如下: 表名:TEST_TC。

包含的列如下:包含的列如下:教师号:TNO CHAR(2);课程号:CNO CHAR(2);主键:(TNO, CNO);主键约束名:PK_TEST_TC。

4、为表C中的CN列创建“UNIQUE”约束UNIQUE_C。

5、为表TEST_TC增加新列ID_TC,并创建此列属性为IDENTITY。

6、删除表C中CN列的UNIQUE约束UNIQUE_C。

4.2 域完整性约束域完整性约束1、为表S创建CHECK约束。

约束。

要求本科生的年龄限制在14 14 —— 40岁之间,此约束对表S 中已有数据做检查。

中已有数据做检查。

2、创建数据库表TEST_S ,包含DEFAULT 和CHECK 约束,表TEST_S 的结构定义如表4-1所示。

所示。

表4-1 表TEST_S 的结构定义的结构定义 列名列名数据类型和长度数据类型和长度 DEFAULT是否可NULLCHECK 表达式约束名 SNO char(2) 否 SN char(8) 否SEX char(2) ‘男’ 是 ‘男’OR‘女’ DEFAULT_SEX CHECK_SEX AGE int 18 是 >= 14 AND <= 40 DEFAULT_AGE CHECK_AGE3、删除表TEST_S 中列SEX 的DEFAULT 约束及列AGE 的CHECK 约束。

数据库实验四(含答案)

数据库实验四(含答案)

实验四使用SQL语句创建和删除数据库、表一. 实验目的:1、了解SQL Server 2005数据库的逻辑结构和物理结构。

2、掌握使用SQL 语句创建和删除数据库。

3、学会使用T-SQL语句创建表。

二. 实验准备1.明确能够创建数据库的用户必须是系统管理员,或是被授权使用CREATE DATABASE语句的用户。

2.了解用SQL语句创建和删除数据库的基本语法。

3.是用查询分析器,完成用SQL语句创建和删除基本表。

三. 实验要求1、熟练使用查询分析器进行数据库的创建和删除操作。

2、用查询分析器,完成用SQL语句创建和删除基本表。

3、完成实验报告。

四. 实验内容一、数据库1.以下是创建数据库userdb1的SQL语句,create database userdb1on(name=userdb4_data,--数据文件的逻辑名称,注意不能与日志逻辑同名filename='g:\xygl\userdb4.mdf' ,--物理名称,注意路径必须存在size=5,--数据初始长度为5Mmaxsize=10,--最大长度为10Mfilegrowth=1)--数据文件每次增长1Mlog on( name=userdb4_log,filename='g:\xygl\userdb4.ldf ' ,size=2 ,maxsize=5 ,filegrowth=1)运行上诉语句建立数据库userdb12.根据步骤1的sql语句,写出创建实验二中“学生信息”数据库的sql语句,并建立“学生信息”数据库.(.mdf的名字可以修改)3.数据库的修改(alter database 数据库名add file),将一个大小为10MB 的数据文件mrkj添加到userdb1的数据库中,该数据文件的大小为10MB,最大的文件大小为100MB,增长速度为2MB,物理地址与原有的mdf,ldf文件放在一起。

alter database 数据库名 add file()注括号内格式同下:( name=userdb4_log,filename='g:\xygl\userdb4.ldf ' ,size=2 ,maxsize=5 ,filegrowth=1)4.修改文件alter database数据库名modify file()注括号内表示修改后的属性信息,格式同下:( name=userdb4_log,filename='g:\xygl\userdb4.ldf ' ,size=2 ,maxsize=5 ,filegrowth=1)5.删除文件mrkj(alter database数据库名remove file+文件名)6.用SQL语句删除步骤一建立的数据库userdb1。

大学mysql实验报告(四)附答案

大学mysql实验报告(四)附答案

⼤学mysql实验报告(四)附答案实验报告(四)专业:班级:学号:姓名:实验名称:数据库的多表连接查询实验报告内容:1、⽤SELECT语句完成第183页实验3的23)27)28)31)的查询语句23) 求选修了课程的学⽣⼈数SELECT COUNT(*)选课⼈数FROM Enrollment27)求选修每门课程的学⽣⼈数。

SELECT Cno AS '课程号', COUNT(Sno) AS '选修⼈数'FROM Enrollment GROUP BY Cno28)求每个学⽣的学号和各门课程的总成绩。

SELECT Sno '学号', Sum(grade) '总成绩' FROM Enrollment GROUP BY Sno31)查询选修了C1课程的学⽣的学号和成绩,查询结果按成绩降序排列。

SELECT Sno, Grade FROM Enrollment WHERE Cno='C1' ORDER BY Grade DESC32)查询全体学⽣信息,查询结果按所在系的系名升序排列,同⼀系的学⽣按年龄降序排列。

SELECT * FROM Students ORDER BY Sdept, Sage DESC2、⽤SELECT语句完成第183页实验4的2)3)4)6)的查询语句2)查询每个学⽣的学号、姓名、选修的课程名、成绩。

SELECT Students.Sno,Sname, Cname,GradeFROM Students,Courses,EnrollmentWHERE Students.Sno = Enrollment.Sno AND /doc/4b14113722.htmlo= /doc/4b14113722.htmlo3)查询选修了C2且成绩⼤于90分的学⽣的学号、姓名、成绩。

SELECT Students.Sno,Sname, GradeFROM Students, EnrollmentWHERE Students.Sno = Enrollment.Sno AND Cno='C2 ' AND Grade>904)求计算机系选修课程超过2门课的学⽣的学号、姓名、平均成绩, 并按平均成绩从⾼到低排序。

数据库原理实验报告四(有答案)

数据库原理实验报告四(有答案)

数据库原理实验报告四(有答案)南京晓庄学院《数据库原理与应用》课程实验报告实验四查询设计实验所在院(系):数学与信息技术学院班级:学号:姓名:1.实验目的(1)了解查询的目的,掌握SELECT语句的基本语法和查询条件的表示方法。

(2)掌握数据排序和数据联接查询的方法。

(3)掌握SQL Server查询分析器的使用方法。

2.实验要求(1)针对“TM”数据库,在SQL Server查询分析器中,用T-SQL语句实现以下单表查询操作,并将将调试成功的T-SQL命令,填入实验报告中。

a)查询所有课程的详细情况。

b)查询来自江苏或山东的学生学号和姓名,并以中文名称显示输出的列名。

c)查询选修了课程的学生学号(一人选了多门课程的话,学号只显示一次)。

d)查询选修课程号为07253001的学号和成绩,并要求对查询结果按成绩降序排列,如果成绩相同则按学号升序排列。

e)查询所有学生的学号、姓名和年龄。

f)查询选修课程号为07253001的成绩在85-95之间的学生学号和成绩,并将成绩乘以0.7输出。

g)查询数学与信息技术学院(DEPT_ID为07)或物理与电子工程学院(DEPT_ID为09)姓张的学生的信息。

h)查询所有核心课程(课程名中带*的)的情况。

i)查询缺少了成绩的学生的学号和课程号,查询结果按课程号升序排列。

(2)在SQL Server查询分析器中,用T-SQL语句实现下列数据联接查询操作:a)查询每个学生的情况以及他(她)所选修的课程。

b)查询学生的学号、姓名、选修的课程名及成绩。

c)查询选修C语言程序设计且成绩为85分以上的学生学号、姓名及成绩。

d)查询和学生柏文楠是同一个民族的学生(用自身联接实现)。

e)分别用等值联接和内联接查询有授课记录的老师的姓名。

f)用外联接查询所有老师的授课情况,输出老师的工号、姓名、职称、院系、担任的课程号和授课的学期,结果按院系和职称升序排列。

如果该老师没有授课历史,在课程号和授课的学期中显示空值(3)在SQL Server Management Studio中新建查询,完成以上查询命令的同时,熟悉SQL 编辑器工具栏中各快捷按钮的作用。

数据库实验4 及答案

数据库实验4 及答案

实验报告课程名称数据库系统原理专业班级姓名学号电气与信息学院和谐勤奋求是创新实验教学考核和成绩评定办法1.课内实验考核成绩,严格按照该课程教学大纲中明确规定的比重执行。

实验成绩不合格者,不能参加课程考试,待补做合格后方能参加考试。

2.单独设立的实验课考核按百分制评分,考核内容应包括基本理论、实验原理和实验。

3.实验考核内容包括:1)实验预习;2)实验过程(包括实验操作、实验记录和实验态度、表现);3)实验报告;权重分别为0.2 、0.4 、0.4;原则上根据上述三个方面进行综合评定。

学生未取得1)和2)项成绩时,第3)项成绩无效。

4.实验指导教师应严格按照考核内容分项给出评定成绩,并及时批改实验报告,给出综合成绩,反馈实验中出现的问题。

实验成绩在教师手册中有记载。

实验报告主要内容一.实验目的二.实验仪器及设备三.实验原理四.实验步骤五.实验记录及原始记录六.数据处理及结论七.实验体会(可选项)注:1. 为了节省纸张,保护环境,便于保管实验报告,统一采用A4纸,实验报告建议双面打印(正文采用宋体五号字)或手写,右侧装订。

2. 实验类别指验证、演示、综合、设计、创新(研究)、操作六种类型实验。

3. 验证性实验:是指为了使学生巩固课程基本理论知识而开设的强调演示和证明,注重实验结果(事实、概念或理论)的实验。

4. 综合性实验:是指实验内容涉及本课程的综合知识或本课程相关的课程知识的实验。

5. 设计性实验:是指给定实验目的、要求和实验条件,由学生自行设计实验方案并加以实现的实验。

实验题目 数据定义、操纵实验室 电信机房 实验时间2011 年 4 月 日实验类别 验证同组人数 1成 绩指导教师签字:一. 实验目的:掌握数据库、表、索引的创建、修改、删除,以及单表查询。

二. 实验内容:1.设有一数据库GradeManager(成绩管理),包括四个表:学生表(Student ),课程表(Course )、班级表(Class )以及成绩表(Grade )。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据库实验四答案
--实验四--
--1.定义“IS”系学生基本情况视图V_IS 并查询结果;
create view V_IS
as
select *
from S
where Sdept=&#39;IS&#39;
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) &gt;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 &gt;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 &gt; 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(&#39;200215121&#39;,&#39;三毛&#39;,&#39;男&#39;,21,&#39;IS&#39;);
insert into S(Sno,Sname,Ssex,Sage,Sdept) values(&#39;200215124&#39;,&#39;紫薇&#39;,&#39;女&#39;,19,&#39;IS&#39;);
update V_IS set Sno=&#39;S1_MMM&#39; where Sno=&#39;200215121&#39;; update V_IS set Sno=&#39;S4_MMM&#39; where Sno=&#39;200215124&#39;; select *
from V_IS;
--11.通过视图V_IS,新增加一个学生记录(&#39;S12&#39;,&#39;YAN XI&#39;,19,&#39;IS&#39;),并查询结果;
insert into V_IS(Sno,Sname,Sage,Sdept) values(&#39;S12&#39;,&#39;YAN XI&#39;,19,&#39;IS&#39;);
select *
from V_IS
where Sno=&#39;S12&#39;;
--11.通过视图V_IS,新增加一个学生记录(&#39;S13&#39;,&#39;YAN XI&#39;,19,&#39;MA&#39;),并查询结果;
insert into V_IS(Sno,Sname,Sage,Sdept) values(&#39;S13&#39;,&#39;Y
AN XI&#39;,19,&#39;MA&#39;);
-- Tip:由于该学生是MA系的,当有check约束时将会产生更新错误。

--13.通过视图V_IS,删除学号为“S12”和“S3”的学生信息,并查询结果;insert into V_IS(Sno,Sname,Sage,Sdept) values(&#39;S3&#39;,&#39;李杨&#39;,21,&#39;IS&#39;);
select *
from V_IS;
delete
from V_IS
where Sno=&#39;S12&#39;;
delete
from V_IS
where Sno=&#39;S3&#39;;
select *
from V_IS;
--14.要通过视图V_S_C_G,将学号为“S12”的姓名改为“S12_MMM”,是否可以实现?
update V_S_C_G
set Sname=&#39;S12_MMM&#39;
where Sno=&#39;S12&#39;;
--15.要通过视图V_AVG_S_G,将学号为“S1”的平均成绩改为90分,是否可以实现?
--不能实现,因为视图不是真正存在的,对视图的修改实际上是对基本表的修改, --而平均分在基本表中不存在,涉及到多个成绩,所以不能修改。

相关文档
最新文档