MySQL面试试题与答案
本次试题设计两个表:student、exam
student表
exam表
一、写一条SQL语句,按学号排序输出数学成绩
SELECT s.sno sno,score
FROM exam e,student s
WHERE e.`subject` = '数学' AND e.name = s.name
GROUP BY s.sno
二、写一条SQL语句,按学号排序,输出:学号,姓名,总分,平均分
SELECT sno,s.`name`,SUM(score) ss,AVG(score) gg
FROM exam e,student s
WHERE e.`name` = s.`name`
GROUP BY `name`
ORDER BY ss
三、写一条SQL语句,查询出数学考试成绩最高的学生学号和姓名
SELECT sno,exam.name name,score
FROM exam,student
WHERE (exam.`subject` = '数学') AND (exam.name = student.name)
ORDER BY exam.score DESC
LIMIT 0,1;
四、写一条SQL语句,查询出每门课都大于80分的学生姓名
方法一:ALL()函数
思路:查找出每个人所有科目是否都大于80
SELECT DISTINCT NAME
FROM exam a
WHERE 80 < ALL(SELECT score
FROM exam e
WHERE e.name = a.name );
方法二:not exists 字段
思路:排除掉存在学科分数低于80的学生,剩下的就是所有学科分数都大于80的学生
SELECT DISTINCT NAME
FROM exam a
WHERE NOT EXISTS (SELECT name
FROM exam e
WHERE e.name = a.name AND e.score < 80 );
方法三:not in 字段
思路:同上
SELECT DISTINCT NAME
FROM exam
WHERE NAME NOT IN (SELECT NAME
FROM exam
WHERE score<=80)
方法四:having 字段
思路:过滤出学科中最低分数大于80的学生
SELECT name
FROM exam
GROUP BY name
HAVING min(score) > 80
五、张三退学后,请写相关的SQL语句,注意严谨
DELETE
FROM exam
WHERE name = '张三';
DELETE
FROM student
WHERE name = '张三';
DELETE exam,student
FROM exam
LEFT JOIN student
ON exam.name = student.name
WHERE exam.name = '张三' ;
六、你会对该表哪些字段做索引
id - 唯一索引
七、这两个表的设计,有哪些可以改进的地方
student表中sno字段可以改成‘studentID’,更语义化,
exam表中取消name字段及该列数据,改用student中sno学号字段代替,更易于检索
MySQL面试试题与答案的更多相关文章
- mysql面试题及答案,mysql最新面试题,mysql面试题大全汇总
mysql最新面试题及答案汇总 Mysql 的存储引擎,myisam和innodb的区别.mysql最新面试题 答: 1.MyISAM 是非事务的存储引擎,适合用于频繁查询的应用.表锁,不会出现死锁, ...
- MySQL面试题和答案
Mysql 的存储引擎,myisam和innodb的区别. 答: 1.MyISAM 是非事务的存储引擎,适合用于频繁查询的应用.表锁,不会出现死锁,适合小数据,小并发. 2.innodb是支持事务的存 ...
- MySQL面试题及答案整理,史上最全!
原文链接:https://juejin.im/post/5d351303f265da1bd30596f9 前言 本文主要受众为开发人员,所以不涉及到MySQL的服务部署等操作,且内容较多,大家准备好耐 ...
- 最全MySQL面试题和答案
Mysql 的存储引擎,myisam和innodb的区别. 答: 1.MyISAM 是非事务的存储引擎,适合用于频繁查询的应用.表锁,不会出现死锁,适合小数据,小并发. 2.innodb是支持事务的存 ...
- 数据库入门级面试题(带答案) 数据库简单面试题(带答案) MySQL面试题带答案
数据库入门[mysql] 1.假设要按照分页(每页显示10条)的形式获取test表中的数据,在MySql数据库中,以下哪条语句是取第2页中的数据?(单选) (难度A) A.select * f ...
- 2018最新Web前端经典面试试题及答案
javascript: JavaScript中如何检测一个变量是一个String类型?请写出函数实现 typeof(obj) === "string" typeof obj === ...
- 2019最新Web前端经典面试试题(含答案)
1,阐述清楚浮动的几种方式(常见问题)(1)父级div定义 height原理:父级div手动定义height,就解决了父级div无法自动获取到高度的问题. 优点:简单.代码少.容易掌握 缺点:只适合高 ...
- php经典面试题与答案(转先锋教程网)
php经典面试题与答案 时间:2016-02-29 16:06:23来源:网络 导读:php经典面试题与答案,包括腾讯php面试题.百度php面试题.新浪php面试题等 php面试题及答案 1,禁 ...
- 去BAT面试完的Mysql面试题总结(55道,带完整答案)
1.一张表里面有ID自增主键,当insert了17条记录之后,删除了第15,16,17条记录,再把mysql重启,再insert一条记录,这条记录的ID是18还是15 ? 2.mysql的技术特点是什 ...
随机推荐
- 免app下载笔趣阁小说
第一次更新:发现一个问题,就是有时候网页排版有问题的话容易下载到多余章节,如下图所示: 网站抽风多了一个正文一栏,这样的话就会重复下载1603--1703章节. 解决办法: 于是在写入内容前加了一个章 ...
- SQL语句删除和添加外键、主键的方法
--删除外键 语法:alter table 表名 drop constraint 外键约束名 如: alter table Stu_PkFk_Sc drop constraint FK_s alter ...
- Mysql安装本地数据库
1.下载解压:https://dev.mysql.com/downloads/mysql/ 2.配置环境变量path: D:\workPrograms\mysql-8.0.16-winx64\bin ...
- centos7 yum安装nginx
1.添加源,centos7默认可能没有nginx源 sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release ...
- ie8的input的placeholder不显示的解决bug
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...
- 2015沈阳站-Meeting 最短路
http://acm.hdu.edu.cn/showproblem.php?pid=5521 题目大意:A,B两个人分别在1和n区.给出区之间有联系的图以及到达所需时间.求两个人见面最短时间以及在哪个 ...
- Actifio中的Group和Consistency Group
多个应用程序具有相同的保护需求时可以使用应用程序组: Groups用于简化管理,将策略应用于组内的应用程序. 组中的每个应用程序的备份映像单独执行装载,克隆和还原操作. Consistency Gro ...
- 网络请求 selenium
网络请求 selenium 部分流程: 第一:爬虫引擎生成requests请求,送往scheduler调度模块,进入等待队列,等待调度.第二:scheduler模块开始调度这些requests,出队, ...
- MySQL Hardware--NUMA与MySQL
MUMA架构 在单实例的MySQL服务器上,通过会为MySQL的Buffer Pool分配50%至70%甚至更高的内存,让MySQL 服务会尽可能多地占用系统资源.在基于NUMA系统中,内存被分配到各 ...
- nginx ssl 配置
user www www; worker_processes auto; error_log /home/wwwlogs/nginx_error.log crit; pid /usr/local/ng ...