数据库实验四答案
《数据库与信息系统》实验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 及答案
实验报告课程名称数据库系统原理专业班级姓名学号电气与信息学院和谐勤奋求是创新实验教学考核和成绩评定办法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 )。
实验训练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.定义“IS”系学生基本情况视图V_IS 并查询结果;create view V_ISasselect *from Swhere Sdept='IS'with check option;select *from V_IS;--2.将S,C,SC表中学生的学号,姓名,课程号,课程名,成绩定义为视图V_S_C_G并查询结果;create view V_S_C_Gasselect S.Sno,Sname,o,Cnamefrom S,C,SCwhere S.Sno=SC.Sno and o=o;select *from V_S_C_G;--3.将各系学生人数,平均年龄定义为视图V_NUM_AVG并查询结果; create view V_NUM_AVGasselect count(Sno) DeptNum ,avg(Sage) DeptAvgAge,Sdeptfrom Sgroup by Sdept;select *from V_NUM_AVG;--4.定义一个反映学生出生年份的视图V_YEAR并查询结果;create view V_YEARasselect Sno,2012-Sage birthdayfrom S;select *from V_YEAR;--5.将各位学生选修课程的门数及平均成绩定义为视图V_AVG_S_G并查询结果;create view V_AVG_S_Gasselect SC.Sno,count(o) CountCno,avg(Grade) AvgGradefrom S,C,SCwhere S.Sno=SC.Sno and o=ogroup by SC.Sno;select *from V_AVG_S_G;--6.将各门课程的选修人数及平均成绩定义为视图V_AVG_C_G并查询结果; create view V_AVG_C_Gasselect count(SC.Sno) Cnum,avg(Grade) AvgGradefrom S,C,SCwhere S.Sno=SC.Sno and o=ogroup by o;select *from V_AVG_C_G;--7.查询平均成绩为90分以上的学生学号、姓名和成绩;select SC.Sno,Sname,avg(Grade) AvgGradefrom S,SCwhere S.Sno=SC.Snogroup by SC.Sno,Snamehaving avg(Grade) >90;--8.查询各课成绩均大于平均成绩的学生学号、姓名、课程和成绩;create view V_AVGasselect o,avg(Grade) AvgGradefrom C,SCwhere o=ogroup by o;selectdistinct S.Sno,Sname,o,Gradefrom S,SC,C,V_AVGwhere S.Sno=SC.Sno and o=V_o and Grade >V_AVG.AvgGrade ;--9.按系统计各系平均成绩在80分以上的人数,结果按降序排列;select Sdept,count(AvgGrade) Numfrom S,V_AVG_S_Gwhere S.Sno=V_AVG_S_G.Sno and AvgGrade > 80group by Sdeptorder 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_ISwhere Sno='S12';--11.通过视图V_IS,新增加一个学生记录('S13','YAN XI',19,'MA'),并查询结果;insert into V_IS(Sno,Sname,Sage,Sdept) values('S13','YAN XI',19,'MA');-- Tip:由于该学生是MA系的,当有check约束时将会产生更新错误。
最新国家开放大学电大《MySQL数据库应用》网络核心课实验训练3及4答案
最新国家开放大学电大《MySQL数据库应用》网络核心课实验训练3及4答案盗传必究本课程分为形成性考核和终结性末考两种考核形式,形成性考核占50% (满分100分),末考为网络考试占50% (满分100),其中形成性考核为完成课程网站上的形考作业任务,形考作业均为主观题,包括四个实训:实训一:在MYSQL创建数据库和表,25分;实训二:数据查询操作,25分;实训三:数据增删改操作,25分;实训四:数据库系统维护,25分。
实验训练3数据增删改操作答案:实验目的:基于实验1创建的汽车用品网上商城数据库Shopping,练习Insert、Delete. TRUNCATE TABLE. Update 语句的操作方法,理解单记录插入与批量插入、DELETE与TRUNCATE TABLE语句、单表修改与多表修改的区别。
实验内容:【实验3-1]插入数据(1)使用单记录插入Insert语句分别完成汽车配件表Autoparts、商品类别表category>用户表Client、用户类别表Clientkind、购物车表shoppingcart、订单表Order >订单明细表order_has_Autoparts评论Comment的数据插入,数据值自定;并通过select语句检查插入前后的记录情况。
INSERT INTO 目标表SELECT * FROM 来源表;insert into insertTest select * from insertTest2;INSERT INTO目标表(字段1,字段2,...)SELECT字段1,字段2, ... FROM来源表;(这里的话字段必须保持一致)insert into insertTest2(id) select id from insertTest2;INSERT INTO 目标表(字段1,字段2,...)SELECT 字段1,字段2,...FROM来源表WHERE not exists (select * from 目标表where目标表.比较字段=来源表.比较字段);1>.插入多条记录:insert into insertTest2(id, name )select id, namefrom insertTestwhere not exists ( select * from insertTest2where insertTest2. id=insertTest. id);2>.插入一条记录: insert into insertTest (id, name )SELECT 100, 'liudehua' FROM dualWHERE not exists ( select * from insertTest where insertTest. id = 100); (2)使用带Select 的Insert 语句完成汽车配件表Autoparts 中数据的批量追加;并通过select 语句检查插入前后的记录情况。
最新国家开放大学电大《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 语句使用相应数据。
mssql 实验答案(四-五-六)参考答案
实验四简单查询和连接查询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) 查询学生的学号、姓名、选修的课程名及成绩。
国开学习网电大数据库应用技术第四次形考作业实验答案
国开学习网电大数据库应用技术第四次形考作业实验答案实验目的:通过使用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) 统计每个学生的选课门数和考试总成绩,并按选课门数升序显示结果。
华东理工大学 数据库 小实验四 查询
select *
from course
where not exists
( select *
from student
where not exsits(
select *
from sc
where sno=student.sno and cno=o))
where Sname = ‘李勇’)
and Sname <> ‘李勇’
and sbirth<( select sbirth
from student
where sname=’李勇’)
(5)查询所有学生都选修的课程情况。
use Stu_Cou
select cno
from SC
where sno = ‘95001’
UNION
select cno
from SC
where sno = ‘95002’
(2)查询学号为‘95001’的学生选修而学号为‘95002’的学生没有选修的课程号。
use Stu_Cou
where SCZ.Sno=SCX.Sno and
o=o));
4、集合查询
(1)查询学号为‘95001’或‘95002’的学生选修的课程号。
(2)查询选修“操作系统”课的学生学号、姓名。
select sno,sname
from sc,student
where sc.sno=student.sno and cname=’操作系统’
(3)查询每门课程的选修情况,列出课程号、课程名、选修该课学生学号及成绩(外连接)。
同济大学数据库实验四答案
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数据查询一、实验目的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的学生的姓名和家庭住址。
数据库实验4-2 答题文件(答案)
实验4-2 数据表的修改、排序和索引文件的建立及使用 实验要求1.将服务器上的数据源文件夹“data4-2”下载到本地盘(比如E:\);2.打开其中的“实验4-2答题文件.doc”,边做实验边将各题的操作步骤或所用的命令记录在该文件中;3.在答题时将答案的文字格式设置为蓝色并加粗;4.实验完成后将数据源文件夹“data4-2”上传到服务器对应的班级文件夹。
1.修改表结构和记录⑴修改“A班成绩表dbf”的表结构,在最后添加“总分”和“平均分”字段,类型和长度分别为N(3)、N(6,2))。
方法一:使用表设计器修改表结构的步骤:①启动Microsoft Visual FoxPro;②打开“A班成绩表.dbf”;(注意:一定是“独占”方式打开,否则表结构不能修改。
)③选择菜单【显示】→【表设计器】,弹出表设计器对话框。
增加总分字段,数值型,宽度为3,小数位为0;增加平均分字段,数值型,宽度为6,小数宽度为2。
方法二:使用SQL命令修改表结构的步骤:①启动Microsoft Visual FoxPro;②在命令窗口分别输入如下命令(不需要先打开数据源):ALTER TABLE A班成绩表ADD COLUMN 总分n(3)ALTER TABLE A班成绩表ADD COLUMN 平均分n(6,2)⑵分别使用表设计器、list命令和disp命令查看修改后的“A班成绩表.dbf”表结构。
在命令窗口依次输入如下命令:use A班成绩表list stru &&(或disp stru)选择菜单【显示】→【表设计器】⑶计算出“A班成绩表”中“总分”和“平均分”在命令窗口依次输入如下命令:Use A班成绩表replace 总分with 数学+英语+政治+计算机应用+电子技术allreplace 平均分with 总分/5 all2.记录的删除与恢复⑴将“学生.dbf”表的第4到第14之间的男生记录删除,并用disp 命令显示删除后表的全部内容。
山东大学数据库实验四答案
山东大学数据库实验四答案实验四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。
数据库实验四(含答案)
实验四使用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实验报告(四)附答案实验报告(四)专业:班级:学号:姓名:实验名称:数据库的多表连接查询实验报告内容: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 编辑器工具栏中各快捷按钮的作用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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分以上的人数,结果按降序排列;
having avg(Grade) >90;
--8. 查询各课成绩均大于平均成绩的学生学号、姓名、课程和成绩;
create view V_AVG
as
select o,avg(Grade) AvgGrade
from C,SC
where o=o
group by o;
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('S13','YAN XI',19,'MA');
-- Tip:由于该学生是MA系的,当有check约束时将会产生更新错误。
--13. 通过视图V_IS,删除学号为“S12”和“S3”的学生信息,并查询结果;
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并查询结果;
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;
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 *
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'),并查询结果;
--实验四--
--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;
insert into S(Sno,Sname,Ssex,Sage,Sdept) values('200215121','三毛','男',21,'IS');
insert into S(Sno,Sname,Ssex,Sage,Sdept) values('200215124','紫薇','女',19,'IS');
-- 不能实现,因为视图不是真正存在的,对视图的修改实际上是对基本表的修改,
-- 而平均分在基本表中不存在,涉及到多个成绩,所以不能修改。
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
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分,是否可以实现?
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
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 d将学号为“S1”和“S4”的学生姓名更改为“S1_MMM”,”S4_MMM” 并查询结果;
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';