iis服务器助手广告
返回顶部
首页 > 资讯 > 数据库 >MySQL数据库习题
  • 812
分享到

MySQL数据库习题

mysql数据库 2023-09-04 12:09:49 812人浏览 八月长安
摘要

前言 大家好,分享一些Mysql练习题,都是自己整理的考试例题附有答案,可用作巩固知识点,也可以用来考前复习。 一、创建数据库 1.创建一个叫做Mytest 的数据库,在该库中建立以下5张表,表之间的

前言

大家好,分享一些Mysql练习题,都是自己整理的考试例题附有答案,可用作巩固知识点,也可以用来考前复习。

一、创建数据库

1.创建一个叫做Mytest 的数据库,在该库中建立以下5张表,表之间的关系及字段如图所示:

在这里插入图片描述
创建数据库:

create database Mytest;

创建teacher表:

create table teacher(id smallint(4) not null primary key,name varchar(20));

创建class表

create table class(id smallint(6) not null primary key,name varchar(50));

创建course表

create table course(id smallint(3) not null primary key,name varchar(100), teacher_id smallint(6) not null,foreign key(teacher_id) references teacher(id));

创建student表

create table student(id smallint(6) not null primary key,name varchar(20),gender char(2),class_id smallint(6) not null,foreign key(class_id) references class(id));

创建score表

create table score(id int(11),student_id smallint(6) not null,course_id smallint(3) not null,mark tinyint(4),foreign key(student_id) references student(id),foreign key(course_id) references course(id),primary key(student_id,course_id));

2.插入下图数据

在这里插入图片描述
有两种方式插入数据(演示两表):

1.单行插入

例:插入class表数据

insert into class values(1,"软件工程1班");insert into class values(2,"计算机科学技术1班");insert into class values(3,"网络工程1班");

2,。批量插入

例:插入teacher表数据

insert into teacher values(1,"老虎"),(2,"小马"),(3,"大牛");

二、操作数据库

1.查询所有的课程的名称以及对应的任课老师姓名;

select course.name,teacher.namefrom course inner join teacheron course.teacher_id = teacher.id;

2.查询学习课程"数据结构"比课程"java语言"成绩低的学生的学号;

select shuju.student_id from(select score.student_id,course.name,score.mark from score inner join course on score.course_id=course.id where course.name="数据结构") as shujuinner JOIN(select score.student_id,course.name,score.mark from score inner join course on score.course_id=course.id where course.name="java语言") as javaon shuju.student_id=java.student_idwhere shuju .mark<java.mark;

3 查询平均成绩大于65分的同学的id和平均成绩(保留两位小数);

select student_id,round(avg(mark),2) as grade from scoregroup by student_id having grade>65;

4. 查询平均成绩大于65分的同学的姓名和平均成绩(保留两位小数);

select student.name,round(avg(mark),2) as grade from scoreinner joinstudentonscore.student_id=student.idgroup by student_id having grade>65;

5. 查询所有同学的姓名、选课数、总成绩;

select student.name,count(score.course_id) as "选课数",sum(score.mark) as "总成绩" from score inner join student on score.student_id=student.idgroup by student_id;

6. 查询没学过"大牛"老师课的同学的姓名;

select name from student where id not in(select id from score where course_id in(3,3));

7. 查询学过"大牛"老师所教的全部课程的同学的姓名;

select student.name from score inner join student on score.student_id=student.id where score.course_id in(select course.id from course inner join teacheron course.teacher_id=teacher.id where teacher.name="大牛")group by score.student_id;

8. 查询有课程成绩小于60分的同学的姓名;

select name from student where id in(select student_id from score where mark<60 group by student_id);

9. 查询选修了全部课程的学生姓名;

select name from student where id in(select student_id from score group by student_id having count(1)=(select count(1) from course));

10. 查询至少有一门课程与"小草"同学所学课程相同的同学姓名;

select name as"姓名" from student where id in(select student_id from score where course_id in(select course_id from score inner join student on score.student_id=student.id where student.name="小草")group by student_id)and name!="小草";

11. 查询至少有一门课程和"小草"同学所学课程不相同的同学姓名;

select name as "姓名" from student where id in(select student_id from score where course_id in(select course_id from score inner join student on score.student_id!=student.id where student.name="小草")group by student_id)and name!="小草";

12. 查询各科成绩最高和最低的分:以如下形式显示:课程id,最高分,最低分;

select course_id as "课程id",max(mark) as "最高分",min(mark) as "最低分" from score group by course_id;

13. 查询只选修了一门课程的学生的学号和姓名;

select student_id as"学生学号",student.name as"学生姓名" from scoreinner join student on score.student_id=student.idgroup by student_id having count(course_id)=1;

14. 查询每门课程的平均成绩,结果按平均成绩升序排列,平均成绩相同时,按课程id降序排列。

select course.name as"课程名称",avg(mark) as"平均成绩" from scoreinner join course on score.course_id=course.idgroup by course_idorder by avg(mark) asc,course_id desc;

15. 按平均成绩倒序显示所有学生的"数据库原理"、“java语言”、"C语言"三门的课程成绩,按如下形式显示: 学生id、数据库原理、java语言、C语言、课程数、平均分;(高级应用较难)

  1. 先查询单一学生的数据库原理课程分数
select mark as"分数" from score left join course on score.course_id = course.idwhere course.name = "数据库原理" and score.student_id=1;
  1. 将上面查询的结果作为列字段使用,得到最终结果
select student_id as"学生学号",(select mark from score left join course on score.course_id = course.id where course.name = "数据库原理"and score.student_id=sc.student_id) as "数据库原理",(select mark from score left join course on score.course_id = course.id where course.name = "java语言" and score.student_id=sc.student_id) as "java语言",(select mark from score left join course on score.course_id = course.id where course.name = "C语言" and score.student_id=sc.student_id) as "C语言",count(course_id) as "课程数",avg(mark) as "平均分"from score as scgroup by student_id order by avg(mark) desc;

来源地址:https://blog.csdn.net/m0_59420288/article/details/128180217

您可能感兴趣的文档:

--结束END--

本文标题: MySQL数据库习题

本文链接: https://www.lsjlt.com/news/393519.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MySQL数据库习题
    前言 大家好,分享一些MySQL练习题,都是自己整理的考试例题附有答案,可用作巩固知识点,也可以用来考前复习。 一、创建数据库 1.创建一个叫做Mytest 的数据库,在该库中建立以下5张表,表之间的...
    99+
    2023-09-04
    mysql 数据库
  • MySQL数据库学习
    目录 从管理员cmd页面打开数据库 创建一个用户 数据库的基本操作 数据完整性 完整性约束管理 表的基本操作 判断关键字 聚合函数 多表连接查询 嵌套查询 联合查询 事务 锁 索引 视图 存储过程 函数(与存储过程类似) 光标 触发器   ...
    99+
    2023-10-19
    数据库 mysql 学习 java
  • 数据库之MySQL数据操作练习
    目录 练习内容 worker表要求 创建的表的表结构 表中的数据内容 对数据的操作 1.显示所有职工的基本信息 2.查询所有职工所属部门的部门号,不显示重复的部门号 3.求出所有职工的人数 4.列出最高工和最低工资 5.列出职工的平均工资...
    99+
    2023-09-20
    数据库 mysql
  • 数据分析| Pandas200道练习题,使用Pandas连接MySQL数据库
    文章目录 使用Pandas连接数据库编码环境依赖包read_sql_query()的使用read_sql_table()的使用read_sql() 函数的使用to_sql()写入数据库的操作删...
    99+
    2023-09-06
    数据库 数据分析 pandas
  • 数据库中10道日常练习题
    这篇文章给大家分享的是有关数据库中10道日常练习题的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1、下列四项中,不属于数据库系统的特点的是( )正确答案: C 数据结构化数据由DBMS统一管理和控制数据冗余度大数...
    99+
    2023-06-20
  • 数据库第三章习题_完整版
    数据库系统与概念 (6th) 第三章习题 文章目录 数据库系统与概念 (6th) 第三章习题实践习题1. 使用大学模式,用SQL写出如下查询。2. 假设给你一个关系grade_points( ...
    99+
    2023-09-20
    数据库 mysql sql
  • mysql数据库字符集学习总结
    MYSQL数据库字符集包括字符集(CHARACTER)和校对规则(COLLATION)两个概念。MYSQL 支持的字符集和校对规则可以通过命令showcharacter set;查看。和字符集有关的变量my...
    99+
    2024-04-02
  • MySQL学习之数据库备份详解
    目录1.DB,DBMS,SQL2.数据库的特点3.SQL分类4.mysql两种启动关闭方式5.mysql的登录方式()6.SQL语言规范7.navicat常用快捷键8.数据库的备份和...
    99+
    2024-04-02
  • 重新学习MySQL数据库开篇:数据库的前世今生
    本文内容出自刘欣的“码农翻身”公众号,强烈推荐刘欣大大的文章。...
    99+
    2024-04-02
  • 如何mysql 数据库1024问题
    如何mysql 数据库1024问题,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。max_allowed_packet会重置为1...
    99+
    2024-04-02
  • 【MySQL 】MySQL 创建数据库, MySQL 删除数据库,MySQL 选择数据库
    作者简介: 辭七七,目前大一,正在学习C/C++,Java,Python等 作者主页: 七七的个人主页 文章收录专栏: 七七的闲谈 欢迎大家点赞 👍 收藏 ⭐ 加关注哦!💖💖 ...
    99+
    2023-08-24
    数据库 mysql 后端 开发语言 jvm
  • 数据库日常练习题之在数据库中存储的是什么
    这篇文章主要介绍数据库日常练习题之在数据库中存储的是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1、在数据库中存储的是( )正确答案: C 数据数据模型数据及数据之间的联系信息题解:数据库中存储的不仅是数据,还...
    99+
    2023-06-20
  • Mysql 常见函数、information_schema元数据库、查询、练习
    常见的运算符 MySQL 提供了一些运算符号,可以在SQL 语句中使用,比如需要对SQL 语句中的某个值,或者某个字段做运算操作的时候,就可以使用这些运算符。 比较运算符 运算符含义=字段等于固定的值...
    99+
    2023-10-28
    数据库 mysql android
  • go-zero学习 第四章 数据库操作(MySQL)
    go-zero学习 第四章 数据库操作(MySQL) 1 目录结构说明2 相关命令2.1 生成sqlx代码命令2.2 生成sqlc代码命令 3 sqlx3.1 sqlx代码讲解3.2 新增...
    99+
    2023-10-23
    golang
  • 数据库怎么学习
    学习数据库的方法学习Access数据库,了解数据库的基础概念。学习如何建数据库。学习sql语句的运用。做一些实例进行深度学习。学习SQLserver,掌握关系型数据库的基本操作。学习Oracle、DB2等大型数据库的知识。...
    99+
    2024-04-02
  • 如何学习数据库
    学习数据库的方法从Access数据库入手,了解数据库的基础概念。自己动手建库。学习sql语句的运用。做一些实例进行深度学习。接着学习SQLserver掌握关系型数据库的基本操作。学习大型数据库的知识。最后需要再掌握Oracle、DB2等大型...
    99+
    2024-04-02
  • 关于SpringBoot mysql数据库时区问题
    寻找原因 后端开发中常见的几个时区设置 第一个设置点配置文件 spring.jackson.time-zone 第二个设置点 高版本SpringBoot版本 mysql-connec...
    99+
    2024-04-02
  • 解决mysql数据库数据迁移达梦数据乱码问题
    受到领导的嘱托,接手了一个java项目,要进行重构,同时了项目的整体建设要满足信创的要求。 那么首先就要满足两点: 1,使用国产数据库达梦8替换mysql数据库 2,使用金蝶中间件替...
    99+
    2024-04-02
  • 关于mysql数据库连接编码问题
    前几天使用springboot做一个数据库查询功能,发现使用中文就无法查到数据,经过测试SQL语句是没有问题的,但是就是查询不到数据,一直显示为null。 后来,我灵机一动尝试了一下查询参数改为英文,显示出查询结果是正常...
    99+
    2023-04-14
    mysql数据库 mysql编码
  • mysql跨数据库join问题怎么解决
    在MySQL中,跨数据库进行JOIN操作可以通过在JOIN查询中指定数据库名和表名的方式来实现。具体方法如下: 1.使用完全限定表名...
    99+
    2024-04-22
    mysql
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作