表名和字段

  • 1.学生表
  • Student(s_id,s_name,s_birth,s_sex) –学生编号,学生姓名, 出生年月,学生性别
  • 2.课程表
  • Course(c_id,c_name,t_id) – –课程编号, 课程名称, 教师编号
  • 3.教师表
  • Teacher(t_id,t_name) –教师编号,教师姓名
  • 4.成绩表
  • Score(s_id,c_id,s_score) –学生编号,课程编号,分数

建库建表:

创建数据库:

drop database if exists stu;
create database stu;

创建学生表:

create table student(s_id int(10) not null auto_increment comment '学生编号',s_name varchar(10) not null comment '学生姓名',s_birth varchar(20) not null comment '出生日期',s_sex varchar(2) not null comment '性别',primary key(s_id)
) engine=innodb  default charset=utf8;

创建课程表:

create table student(s_id int(10) not null auto_increment comment '学生编号',s_name varchar(10) not null comment '学生姓名',s_birth varchar(20) not null comment '出生日期',s_sex varchar(2) not null comment '性别',primary key(s_id)
) engine=innodb  default charset=utf8;

创建课程表:

create table course(c_id int(10) not null auto_increment comment '课程编号',c_name varchar(10) not null comment '课程名称',t_id int(10) not null comment '任课老师',primary key(c_id)) engine=innodb default charset=utf8;

创建教师表:

create table teacher(t_id int(10) not null auto_increment comment '教师编号',t_name varchar(10) not null comment '教师姓名',primary key(t_id)
) engine=innodb default charset=utf8;

成绩表:

create table score(s_id int(10) not null auto_increment comment '成绩编号',c_id int(10) not null comment '课程编号',s_score int(3) not null comment '学生分数',primary key(s_id,c_id)
) engine=innodb default charset=utf8;

测试数据:

插入学生表测试数据 (学生编号,学生姓名,出生日期,性别):

insert into Student values(1, '赵雷' , '1990-01-01' , '男');
insert into Student values(2, '钱电' , '1990-12-21' , '男');
insert into Student values(3, '孙风' , '1990-05-20' , '男');
insert into Student values(4, '李云' , '1990-08-06' , '男');
insert into Student values(5, '周梅' , '1991-12-01' , '女');
insert into Student values(6, '吴兰' , '1992-03-01' , '女');
insert into Student values(7, '郑竹' , '1989-07-01' , '女');
insert into Student values(8, '王菊' , '1990-01-20' , '女');

课程表测试数据        (课程编号,课程名,任课教师编号):

insert into Course values(1, '语文' , 2);
insert into Course values(2, '数学' , 1);
insert into Course values(3, '英语' , 3);

教师表测试数据        (教师编号,教师名):

insert into Teacher values(1 , '张三');
insert into Teacher values(2 , '李四');
insert into Teacher values(3 , '王五');

成绩表测试数据    (成绩编号,课程编号,成绩)

insert into Score values(1 , 1 , 80);
insert into Score values(1 , 2 , 90);
insert into Score values(1 , 3 , 99);
insert into Score values(2 , 1 , 70);
insert into Score values(2 , 2 , 60);
insert into Score values(2 , 3 , 80);
insert into Score values(3 , 1 , 80);
insert into Score values(3 , 2 , 80);
insert into Score values(3 , 3 , 80);
insert into Score values(4 , 1 , 50);
insert into Score values(4 , 2 , 30);
insert into Score values(4 , 3 , 20);
insert into Score values(5 , 1 , 76);
insert into Score values(5 , 2 , 87);
insert into Score values(6 , 1 , 31);
insert into Score values(6 , 3 , 34);
insert into Score values(7 , 2 , 89);
insert into Score values(7 , 3 , 98);

练习题、sql语句、执行结果:

--1.查询语文成绩比数学成绩高的学生的信息以及课程分数

select a.* , b.s_score as chinese , c.s_score as math from
student a
join score b on b.c_id = 1 and a.s_id = b.s_id
left join score c on  c.c_id = 2 and a.s_id = c.s_id where b.s_score > c.s_score;

运行结果:

--2.查询语文成绩比数学成绩低的学生的信息以及课程分数

select a.* , b.s_score as chinese , c.s_score as math from
student a
join score b on b.c_id = 1 and a.s_id = b.s_id
left join score c on c.c_id = 2 and a.s_id = c.s_id
where b.s_score < c.s_score; 

运行结果:

--3.查询平均成绩大于等于60分的同学的学生编号和学生姓名和平均成绩

select b.s_id , b.s_name,round(avg(a.s_score),1) as avg_score
from student b
join score a on b.s_id = a.s_id
group by b.s_id,b.s_name having round(avg(a.s_score),1)>=60;

运行结果:

--4.查询平均成绩小于60分的同学编号和学生姓名和平均成绩(包括有成绩和没有成绩的)

select b.s_id,b.s_name,round(avg(a.s_score)) as avg_score
from student b
left join score a on b.s_id = a.s_id
group by b.s_id,b.s_name having round(avg(a.s_score),2)<60
union
select a.s_id,a.s_name,0 as avg_score
from student a
where a.s_id not in (select distinct s_id from score);  

运行结果:

-- 5、查询所有同学的学生编号、学生姓名、选课总数、所有课程的总成绩

select a.s_id,a.s_name,count(b.c_id) as sum_course,sum(b.s_score) as sum_score
from student a
left join score b on a.s_id = b.s_id
group by a.s_id,a.s_name;

运行结果:

MYSQL笔试题(考试题)附带答案相关推荐

  1. MySQL笔试题练习及答案(一)

    第一题 题目描述 查找最晚入职员工的所有信息,为了减轻入门难度,目前所有的数据里员工入职的日期都不是同一天(sqlite里面的注释为–,mysql为comment) CREATE TABLE empl ...

  2. 软件测试常见笔试题(附带答案)—初级篇01

    软件测试笔试题 一.选择题 1.对计算机软件和硬件资源进行管理和控制的软件是(D) A.文件管理程序 B.输入输出管理程序 C.命令出来程序 D.操作系统 2.在没有需求文档和产品说明书的情况下只有哪 ...

  3. 中级软件测试笔试题100精讲_软件测试常见笔试题(附带答案)—初级篇01

    软件测试笔试题 一.选择题 1.对计算机软件和硬件资源进行管理和控制的软件是(D) A.文件管理程序 B.输入输出管理程序 C.命令出来程序 D.操作系统 2.在没有需求文档和产品说明书的情况下只有哪 ...

  4. MySQL笔试题(附答案)

    一.简答题 1.简述你们公司使用的MySQL版本,并说明具体小版本及GA时间? 5.6.38 5.7.20 2017-9-13 2.请介绍你熟悉的数据库的种类和代表产品名称? NoSQL:Redis ...

  5. 初级测试工程师面试笔试题(附带答案)

    1.编写测试用例有哪几种方法? 答:大刚法.等价类.边界值.因果图.场景法.正交法.错误推断法.正则表达式 2.测试的六条基本法则是什么? 答:功能.可靠性.易用性.效率.可维护性.可移植性 3.软件 ...

  6. 软件测试工程师笔试题(附带答案)

    软件测试题目 一. 判断题 (每题2分,20) 1.软件测试就是为了验证软件功能实现的是否正确,是否完成既定目标的活动,所以软件测试在软件工程的后期才开始具体的工作. (初级) ( × ) 2.发现错 ...

  7. mysql笔试题15道

    (93条消息) mysql笔试题18道_bubbleJessica的博客-CSDN博客 19.列出最低薪资大于1500的各种工作及从事此工作的全部雇员人数 SELECT JOB,COUNT(*) FR ...

  8. php如何对 mysql 中text类型拆分存入一个数组_PHP、Mysql笔试题

    PHP&MySQL 笔试题 一.选择题 1. php代表什么意思?() A.Hypertext Preprocessor(超文本预处理器) B.Hyperlink Preprocessor(超 ...

  9. 常见的php笔试题(附答案)搜集整理

    转载链接:http://www.yaojinbu.com/p/139.html 常见的php笔试题(附答案)搜集整理 1.在PHP中,当前脚本的名称(不包括路径和查询字符串)记录在哪个预定义变量中?而 ...

  10. 东软 c语言笔试题,C语言笔试题及参考答案-东软集团(最新整理)

    <C语言笔试题及参考答案-东软集团(最新整理)>由会员分享,可在线阅读,更多相关<C语言笔试题及参考答案-东软集团(最新整理)(7页珍藏版)>请在人人文库网上搜索. 1.C 语 ...

最新文章

  1. 网络分析概述之网络基础简介
  2. 用C语言解“求整数段和”题
  3. matlab下删除文件或文件夹
  4. 动态新增元素的js无效的解决方法
  5. wxWidgets:你好,世界
  6. 转载:ASP.NET中JSON的序列化和反序列化
  7. PE文件结构详解(二)可执行文件头
  8. linux 指定范围内查找文件,Linux Find命令查找指定时间范围内的文件的例子
  9. centos6.0的gnome桌面的一个大bug
  10. 关于background的一些知识
  11. 进程间通信方式有哪些?
  12. KUKA WorkVisual 编程教学
  13. 如何看出一个程序员的技术能力和水平?
  14. 给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的数字可以无限制重复被
  15. RouterOS 自动拨号直至获得指定IP段IP的脚本
  16. C/C++学习笔记——C基础:C语言概述
  17. iOS adhoc 版本App 如何制作安装
  18. 数据湖和数据仓库区别介绍
  19. AMBA总线—APB总线协议详解
  20. 微信跳转外部浏览器下载

热门文章

  1. SVPWM空间矢量脉冲宽度调制技术控制电机
  2. 如何做华为云服务器迁移?
  3. png格式图片 转 icns格式图标
  4. 如何注册Line账号?-Line账号/Line广告/Line好友
  5. Frenetic Python实验(一)
  6. 软件测试颗粒度,测试用例之度——系列之颗粒度(上)
  7. 为什么LINUX不需要碎片整理(Why Linux Doesn’t Need Defragmenting)
  8. 【万字拆解】ChatGPT各项能力的起源
  9. windows中常见后门持久化方法总结
  10. Windows下RabbitMQ安装及配置