数据库实验四作业及答案

合集下载

数据库实验四

数据库实验四

数据库实验四在学习数据库的过程中,实验是帮助我们深入理解和掌握相关知识的重要环节。

本次数据库实验四主要围绕着数据库的查询、更新以及数据完整性等方面展开。

实验的目的是让我们通过实际操作,更加熟练地运用 SQL 语句来处理数据库中的数据,同时加深对数据库原理和概念的理解。

在实验开始之前,我们首先需要准备好相关的数据库环境。

这包括安装数据库管理系统,如 MySQL 或 SQL Server 等,并创建好实验所需的数据库和数据表。

本次实验中,我们创建了一个名为“students”的数据库表,用于存储学生的基本信息,如学号、姓名、年龄、性别和所在班级等。

同时,还创建了一个名为“courses”的表,用于存储课程的信息,包括课程编号、课程名称和授课教师等。

接下来,就是实验的核心部分——数据查询操作。

通过使用 SQL 的 SELECT 语句,我们可以从数据库中获取所需的数据。

例如,要查询所有年龄大于 20 岁的学生信息,可以使用以下语句:```sqlSELECT FROM students WHERE age > 20;```除了简单的条件查询,我们还学习了如何进行多表连接查询。

比如,要获取同时选修了“数据库原理”和“操作系统”两门课程的学生信息,就需要将“students”表、“courses”表以及选课关系表进行连接查询。

数据更新操作也是实验中的重要内容。

通过使用 UPDATE 语句,我们可以对数据库中的数据进行修改。

但在进行数据更新时,一定要谨慎操作,确保更新的结果符合预期,避免造成数据的错误或丢失。

例如,如果要将某个学生的年龄增加一岁,可以使用以下语句:```sqlUPDATE students SET age = age + 1 WHERE student_id ='_____';```在实验过程中,数据完整性的维护也是至关重要的。

我们通过设置主键、外键以及各种约束条件,来确保数据的准确性和一致性。

数据库实验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 )。

数据库运维形考实验4

数据库运维形考实验4

数据库运维形考实验4实验训练4:数据库系统维护作业实验目的:本实验旨在通过创建和维护数据库,掌握Mysql数据库的创建和维护的不同方法和途径,并理解实际数据库所包含的各要素。

实验内容:1.数据库创建与维护1)创建学生选课数据库中所包含的数据库表,包括学生、课程和选修表,要求为各数据库表属性选择合适的数据类型,并确定列名、数据类型、是否允许空值等。

2)查看和修改表结构,选择一个数据库表,练对其表结构进行相应的修改。

3)练用交互式的SQL语句分别完成以上操作。

4)对学生数据库中的三张表分别插入数据。

5)对表中的数据进行修改。

6)对表中的数据进行删除操作。

2.建立视图1)建立学生选修课程信息视图,包括学生学号、姓名、所在系、选修的课程编号、课程名称、成绩。

2)修改以上视图,增加学生所在班级信息。

3)对以上视图进行删除。

实验要求:1.利用SQL Server相关机制,根据具体应用领域创建并维护数据库系统,为后续各个实验提供前期准备。

2.独立完成以上实验内容,并在安装和数据库运行后熟悉SQL SERVER的各种运行管理。

3.完成实验报告。

实验环境:Windows 8 PC机、Mysql配置的环境、Mysql命令行工具、Workbench可视化工具。

实验步骤及结果分析:1.创建student数据库,通过命令行工具输入密码,使用相应数据库,使用create table语句创建数据库表,解决中文乱码问题。

2.进行属性查询操作,通过select语句查询数据库表的属性信息,包括列名、数据类型、约束等。

查询表结构,即查看各个属性和属性的完整性约束等。

使用desc student语句可以展示我们创建的数据的所有信息,包括属性名、类型、默认初始情况和约束等。

在默认数据库中,发现最后一个属性classno的属性为varchar(3),而实际数据中classno是4位数,导致存储时与原数据不匹配。

因此,需要修改该属性为4位长度。

数据库运维 形考任务4 实验4 数据库备份与恢复实验

数据库运维 形考任务4 实验4 数据库备份与恢复实验

数据库运维形考任务4 实验4 数据库备份与恢复实验符分隔符为“,”,字段的包裹符号为“””,并使用SELECT 语句对恢复的数据进行检查。

2实验4:数据库备份与恢复实验本实验旨在练数据库备份与恢复的操作方法。

学生可以选择使用MySQL官网提供的实例employees数据库进行实验,也可以自己创建数据库进行备份恢复实验。

具体实验内容如下:1.使用select…into…outfile语句对数据库employees的表departments进行数据导出。

2.使用select…into…outfile语句对数据库employees的表salaries进行数据导出,并使用fields字句指定字段值之间的符号分隔符为“,”,字段的包裹符号为“””。

3.使用mysqldump命令备份数据库中的某个表,对数据库employees的表deparments导出SQL语句。

4.使用mysqldump命令备份单个数据库,对数据库employees的导出SQL语句,并忽略数据表departments。

5.使用mysqldump命令备份多个数据库,对数据库employees、test两个数据库导出SQL语句。

6.使用mysqldump命令导出界定格式文件数据,对数据库employees进行CSV文件数据的导出。

7.使用图形化工具MySQL Workbench导出数据库employees的表departments的CSV格式数据。

8.使用图形化工具MySQL Workbench导出数据库employees的表departments的SQL文件。

9.使用DELETE语句删除employees数据库的表departments的表格数据,使用LOAD DATA INFILE语句,通过实验1导出的文件,对删除的数据进行恢复,并使用SELECT语句对恢复的数据进行检查。

10.使用DELETE语句删除employees数据的表salaries的表格数据,使用LOAD DATA INFILE语句以及FIELDS子句,通过实验2导出的文件,对删除的数据进行恢复,即字段分隔符为“,”,字段的包裹符号为“””,并使用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约束时将会产生更新错误。

第四次形考作业实验答案:电大数据库应用技术

第四次形考作业实验答案:电大数据库应用技术

第四次形考作业实验答案:电大数据库应用技术一、实验目的1. 掌握数据库的基本操作;2. 熟悉数据库管理系统的使用;3. 了解电力大数据库的结构和内容;4. 提高学生对数据库应用技术的能力。

二、实验环境1. 数据库管理系统:MySQL;2. 编程语言:Python;3. 操作系统:Windows 10;4. 开发工具:Navicat for MySQL、PyCharm。

三、实验内容1. 数据库的创建与表的创建操作步骤:1. 打开Navicat for MySQL,连接到MySQL数据库服务器;2. 创建一个新的数据库,命名为“电力大数据库”;3. 在“电力大数据库”中创建一个新表,命名为“电力设备表”,字段包括:设备ID(int)、设备名称(varchar)、设备类型(varchar)、设备位置(varchar);4. 向“电力设备表”中插入一些示例数据。

示例代码:CREATE DATABASE 电力大数据库;USE 电力大数据库;CREATE TABLE 电力设备表 (设备ID INT PRIMARY KEY,设备名称 VARCHAR(50),设备类型 VARCHAR(50),设备位置 VARCHAR(50));INSERT INTO 电力设备表 (设备ID, 设备名称, 设备类型, 设备位置)VALUES (1, '配电箱', '电力设备', '变电站A');INSERT INTO 电力设备表 (设备ID, 设备名称, 设备类型, 设备位置)VALUES (2, '开关柜', '电力设备', '变电站B');INSERT INTO 电力设备表 (设备ID, 设备名称, 设备类型, 设备位置)VALUES (3, '变压器', '电力设备', '变电站C');2. 数据库的查询与操作操作步骤:1. 使用SQL语句查询“电力设备表”,找出所有设备类型为“电力设备”的记录;2. 修改查询结果中设备ID为2的记录,将设备位置改为“变电站D”;3. 删除查询结果中设备ID为3的记录。

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

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

国开学习网电大数据库应用技术第四次形考作业实验结果一、实验目的1. 加深对数据库原理与技术的理解。

2. 巩固数据库设计、建立及查询的基本技能。

3. 提高学生运用大数据库技术解决实际问题的能力。

二、实验要求1. 独立完成实验,确保实验数据的准确性与合理性。

2. 按照实验指导书要求,完成实验报告的撰写。

3. 实验报告需包含实验目的、实验环境、实验步骤、实验结果及实验总结。

三、实验环境1. 操作系统:Windows 102. 数据库管理系统:MySQL 8.03. 编程语言:Python 3.84. 开发工具:Visual Studio Code四、实验步骤1. 数据库设计:根据实验要求,设计合适的数据库表结构。

- 创建学生表(student),包含学号(id)、姓名(name)、性别(gender)、年龄(age)等字段。

- 创建课程表(course),包含课程编号(id)、课程名称(name)、学分(credit)等字段。

- 创建选课表(elective),包含学生编号(student_id)、课程编号(course_id)、成绩(score)等字段。

2. 数据库建立:在MySQL中执行SQL语句,创建实验所需的数据库及表。

CREATE DATABASE IF NOT EXISTS education;USE education;CREATE TABLE IF NOT EXISTS student (id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(50),gender ENUM('男', '女'),age INT);CREATE TABLE IF NOT EXISTS course (id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(100),credit INT);CREATE TABLE IF NOT EXISTS elective (student_id INT,course_id INT,score INT,PRIMARY KEY (student_id, course_id),FOREIGN KEY (student_id) REFERENCES student(id), FOREIGN KEY (course_id) REFERENCES course(id));3. 数据查询:运用SQL语句进行数据查询。

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

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

国开学习网电大数据库应用技术第四次形考作业实验答案实验目的:通过使用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。

国开MySQL数据库应用形考任务4

国开MySQL数据库应用形考任务4

实验训练1 在MySQL中创建数据库和表请到电脑端查看实验目的熟悉MySQL环境的使用,掌握在MySQL中创建数据库和表的方法,理解MySQL支持的数据类型、数据完整性在MySQL下的表现形式,练习MySQL数据库服务器的使用,练习CREATE TABLE,SHOW TABLES,DESCRIBE TABLE,ALTER TABLE,DROP TABLE语句的操作方法。

实验内容:【实验1-1】MySQL的安装与配置。

参见4.1节内容,完成MySQL数据库的安装与配置。

【实验1-2】创建“汽车用品网上商城系统”数据库。

用CREATE DATABASE语句创建Shopping数据库,或者通过MySQL Workbench图形化工具创建Shopping数据库。

【实验1-3】在Shopping数据库下,参见3.5节,创建表3-4~表3-11的八个表。

可以使用CREATE TABLE语句,也可以用MySQL Workbench创建表。

【实验1-4】使用SHOW、DESCRIBE语句查看表。

【实验1-5】使用ALTER TABLE、RENAME TABLE语句管理表。

【实验1-6】使用DROP TABLE语句删除表,也可以使用MySQL Workbench删除表。

(注意:删除前最好对已经创建的表进行复制。

)【实验1-7】连接、断开MySQL服务器,启动、停止MySQL服务器。

【实验1-8】使用SHOW DATABASE、USE DATABASE、DROP DATABASE语句管理“网上商城系统”Shopping数据库。

实验要求:1.配合第1章第3章的理论讲解,理解数据库系统。

2.掌握MySQL工具的使用,通过MySQL Workbench图形化工具完成。

3.每执行一种创建、删除或修改语句后,均要求通过MySQL Workbench查看执行结果。

4.将操作过程以屏幕抓图的方式复制,形成实验文档。

实验训练2:数据查询操作请到电脑端查看实验目的:基于实验1创建的汽车用品网上商城数据库Shopping,理解MySQL运算符、函数、谓词,练习Select语句的操作方法。

第四次形考作业实验答案:电大数据库应用技术

第四次形考作业实验答案:电大数据库应用技术

第四次形考作业实验答案:电大数据库应用技术1. 简介本文档旨在总结和介绍电大数据库应用技术的实验答案。

以下是实验题目及其答案。

2. 实验题目一题目:请使用SQL语句创建一个名为"students"的表,包含以下字段:- 学号(id):整型,主键- 姓名(name):字符串型- 年龄(age):整型- 性别(gender):字符串型答案:CREATE TABLE students (id INT PRIMARY KEY,name VARCHAR(50),age INT,gender VARCHAR(10));3. 实验题目二题目:请使用SQL语句向"students"表中插入一条记录,值为:- 学号:123- 姓名:张三- 年龄:20- 性别:男答案:INSERT INTO students (id, name, age, gender) VALUES (123, '张三', 20, '男');4. 实验题目三题目:请使用SQL语句查询"students"表中所有记录。

答案:SELECT * FROM students;5. 实验题目四题目:请使用SQL语句更新"students"表中学号为123的记录,将姓名改为"李四"。

答案:UPDATE students SET name = '李四' WHERE id = 123;6. 实验题目五题目:请使用SQL语句删除"students"表中学号为123的记录。

答案:DELETE FROM students WHERE id = 123;7. 实验题目六题目:请使用SQL语句查询"students"表中年龄大于等于18岁的记录。

答案:SELECT * FROM students WHERE age >= 18;8. 实验题目七题目:请使用SQL语句查询"students"表中记录的数量。

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

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

山东大学数据库实验四答案实验四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实验报告(四)附答案

⼤学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. 确定数据库需求:根据实验要求,确定需要实现的功能和操作。

2. 数据库设计:根据功能需求,设计数据库的表结构和关系。

3. 数据库创建:使用合适的数据库管理系统,创建相应的数据库。

4. 数据导入:将实验所需的数据导入数据库中。

5. 数据操作:根据功能需求,进行数据的增删改查等操作。

6. 数据分析:对数据库中的数据进行分析,获取所需的统计结果。

7. 结果验证:根据实验要求,验证实现的功能是否符合预期。

实验结果
通过以上步骤,完成了对国开学习网电大数据库的应用技术实验。

实验结果如下:
1. 成功创建了数据库,并按照设计的表结构进行了数据导入。

2. 实现了对数据库的增删改查等基本操作,并验证了其正确性。

3. 进行了一定的数据分析,得到了所需的统计结果。

4. 所有功能需求均得到了满足,并通过验证确保了其准确性和
完整性。

总结
本次实验通过应用数据库技术,成功完成了对国开学习网电大
数据库的操作和分析。

实验结果表明所实现的功能满足了预期,并
且数据库的设计和操作都没有出现法律上的复杂问题。

在今后的学
习和工作中,可以继续发挥数据库应用技术的优势,追求简单的策略,避免引入无法确认的内容,以独立决策为原则。

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

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

数据库原理实验报告四(有答案)南京晓庄学院《数据库原理与应用》课程实验报告实验四查询设计实验所在院(系):数学与信息技术学院班级:学号:姓名: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数据查询一、实验目的1.掌握使用Transact-SQL的SELECT语句进行基本查询的方法。

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

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

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

5.掌握SELECT语句的GROUP BY和ORDER BY子句的作业和使用方法。

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

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

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

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

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

4.了解SELECT语句的GROUP BY和ORDER BY子句的作用。

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

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

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

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

创建数据库代码1.在studentsdb数据库中,使用下列SQL语句将输出什么?(1)SELECT COUNT(*) FROM grade(2)SELECT SUBSTRING(姓名,1,2) FROM student_info(3)SELECT UPPER('kelly')(4)SELECT Replicate('kelly',3)(5)SELECT SQRT(分数) FROM grade WHERE 分数>=85(6)SELECT 2,3,POWER(2,3)(7)SELECT YEAR(GETDATE()),MONTH(GETDATE()),DAY(GETDATE())2.在studentsdb数据库中使用SELECT语句进行基本查询。

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

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

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

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

国开学习网电大数据库应用技术第四次形
考作业实验结果
实验目的
本次实验旨在通过应用数据库技术,对国开研究网电大数据库
进行操作和管理,以提升数据的存储和查询效率。

实验过程
1. 数据库连接:使用合适的数据库连接工具,连接到国开研究
网电大数据库。

2. 数据录入:根据实验要求,将指定的数据录入到数据库中,
确保数据的准确性和完整性。

3. 数据查询:使用SQL语句,对数据库中的数据进行查询操作,查找符合特定条件的数据。

4. 数据更新:根据实验要求,对数据库中的数据进行更新操作,如修改、删除等。

5. 数据备份:定期进行数据库的备份,以防止数据丢失或损坏。

实验结果
经过实验操作,以下是本次实验的结果总结:
1. 成功连接到国开研究网电大数据库,并能够正常进行数据操作和管理。

2. 数据录入工作完成,所有指定数据已成功录入到数据库中。

3. 数据查询操作正常,能够根据特定条件准确地查找到所需的数据。

4. 数据更新操作成功,根据实验要求对数据库中的数据进行了相应的修改和删除。

5. 数据备份工作按计划进行,确保了数据库数据的安全性和完整性。

实验总结
本次实验通过应用数据库技术,对国开研究网电大数据库进行了操作和管理。

通过实验,加深了对数据库的理解和应用,提高了数据的存储和查询效率。

同时,也加强了对数据备份的重视,确保了数据的安全性。

通过本次实验,我对数据库应用技术有了更深入的了解,并掌握了相关操作和管理技能。

请注意:以上实验结果仅为参考,具体实验结果可能因个人操作和环境差异而有所不同。

实验结果以实际操作为准。

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

实验4数据查询一、实验目的1.掌握使用Transact-SQL的SELECT语句进行基本查询的方法。

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

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

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

5.掌握SELECT语句的GROUP BY和ORDER BY子句的作业和使用方法。

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

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

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

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

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

4.了解SELECT语句的GROUP BY和ORDER BY子句的作用。

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

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

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

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

创建数据库代码1.在studentsdb数据库中,使用下列SQL语句将输出什么?(1)SELECT COUNT(*) FROM grade(2)SELECT SUBSTRING(姓名,1,2) FROM student_info(3)SELECT UPPER('kelly')(4)SELECT Replicate('kelly',3)(5)SELECT SQRT(分数) FROM grade WHERE 分数>=85(6)SELECT 2,3,POWER(2,3)(7)SELECT YEAR(GETDATE()),MONTH(GETDATE()),DAY(GETDATE())2.在studentsdb数据库中使用SELECT语句进行基本查询。

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

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

SELECT姓名,家庭住址FROM student_infoWHERE学号=0002(3)找出所有男同学的学号和姓名。

SELECT学号,姓名FROM student_infoWHERE性别='男'3.使用SELECT语句进行条件查询(1)在grade表中查找分数在80~90分为内的学生的学号和分数。

SELECT学号,分数FROM gradeWHERE分数BETWEEN 80 AND 90(2)在grade表中查询课程编号为0003的学生的平均分。

SELECT AVG(分数)AS平均分FROM gradeWHERE课程编号=0003(3)在grade表中查询学习各门课程的人数。

SELECT课程编号,COUNT(*)AS人数FROM gradeGROUP BY课程编号(4)将学生按出生日期由大到小排序。

SELECT学号,姓名,出生日期FROM student_infoORDER BY出生日期ASC(5)查询所有姓“张”的学生的学号和姓名。

SELECT 学号,姓名 FROM student_info WHERE 姓名 LIKE '张%'4.嵌套查询(1)在student_info表中查找与“刘卫平”性别相同的所有学生的姓名、出生日期。

SELECT 姓名,出生日期FROM student_infoWHERE 性别=(SELECT 性别FROM student_infoWHERE 姓名='刘卫平')(2)使用IN子查询查找所修课程编号为0002、0005的学生学号、姓名、性别。

SELECT 学号,姓名,性别FROM student_infoWHERE student_info.学号 IN(SELECT 学号FROM gradeWHERE 课程编号 IN ('0002', '0005'))(3)列出学号为0001的学生的分数比0002号的学生的最低分数高的课程编号和分数。

SELECT课程编号,分数FROM gradeWHERE学号='0001'AND分数>ANY(SELECT分数FROM gradeWHERE学号='0002')(4)列出学号为0001的学生的分数比0002的学生的最高成绩还要高的课程编号和分数。

SELECT课程编号,分数FROM gradeWHERE学号='0001'AND分数>ALL(SELECT分数FROM gradeWHERE学号='0002')5.多表查询(1)查询分数在80~90范围内的学生的学号、姓名、分数。

SELECT student_info.学号,姓名,分数FROM student_info,gradeWHERE student_info.学号=grade.学号 AND 分数 BETWEEN 80 AND 90(2)查询学习“C语言程序设计”课程的学生的学号、姓名、分数。

SELECT student_info.学号,姓名,分数FROM student_infoINNER JOIN grade ON student_info.学号=grade.学号INNER JOIN curriculum ON 课程名称='C语言程序设计'(3)查询所有男同学的选课情况,要求列出学号、姓名、课程名称、分数。

select student_info.学号,姓名,课程编号,分数from student_infoleft outer join grade on student_info.学号=grade.学号where性别='男'(4)查询每个学生的所选课程的最高成绩,要求列出学号、姓名、课程名称、分数。

select grade.学号,student_info.姓名,grade.课程编号,grade.分数from student_info left outer join grade on student_info.学号=grade.学号where grade.分数>=(select MAX(分数)from grade bwhere b.学号=grade.学号)(5)查询所有学生的总成绩,要求列出学号、姓名、总成绩,没有选修课程的学生的总成绩为空。

提示:使用左外连接。

select grade.学号,姓名,sum(分数)from student_info left outer join grade on student_info.学号=grade.学号group by grade.学号,姓名(6)为grade表添加数据行:学号0004、课程编号为0006、成绩为76。

查询所有课程的选修情况,要求列出课程编号、课程名称、选修人数,curriculum表中没有的课程列值为空。

提示:使用右外连接。

insert grade values('0004','0006','76')select grade.课程编号,课程名称,count(*)from grade right outer join curriculumon grade.课程编号=curriculum.课程编号group by grade.课程编号,课程名称6.使用UNION运算符将student_info表中姓“张”的学生的学号、姓名与curriculum 表的课程编号、课程名称返回在一个表中,且列名为u_编号、u_名称,如图1-8所示。

select 学号u_编号,姓名u_名称from student_info where 姓名like '张%' union select 课程编号,课程名称from curriculum图1-8 联合查询结果集7.数据更新(1)创建totalgrade表,具有数据列:学号、姓名、总成绩。

CREATE TABLE totalgrade( 学号 char(4) NOT NULL,姓名 varchar(8) NULL,总成绩 decimal(5,2) NULL )(2)使用INSERT INTO语句通过student_info表更新totalgrade表的学号、姓名列数据。

INSERT INTO totalgradeSELECT 学号,姓名,总成绩=0 FROM student_info(3)使用UPDATE语句通过grade表更新totalgrade表的中成绩列数据,使totalgrade表中每个学生的总分成绩为grade表中该学生各成绩之和。

UPDATE totalgrade SET 总成绩=(SELECT SUM(分数) FROM grade WHERE totalgrade.学号=grade.学号) FROM grade(4)删除totalgrade表中没有总成绩的学生记录。

delete from totalgrade where 总成绩 is null四、实验思考1.查询所有没有选修课程的学生信息,返回结果包括学号、姓名、性别。

2.在student_info表和grade表之间实现交叉连接。

3.查询每个学生的所选课程的成绩,并列出学号生成分组汇总(总成绩)和明细行(各课成绩)。

提示:使用SELECT语句的COMPUTE选项。

相关文档
最新文档