关于面试总结6-SQL经典面试题

前言

用一条SQL 语句查询xuesheng表每门课都大于80 分的学生姓名,这个是面试考sql的一个非常经典的面试题

having和not in

查询 xuesheng表每门课都大于80 分的学生姓名

name kecheng score
张三 语文 81
张三 数学 73
李四 语文 86
李四 数学 90
王五 数学 89
王五 语文 88
王五 英语 96

解决办法一: having

如果不考虑学生的课程少录入情况(比如张三只有2个课程,王五有3个课程)

SELECT name FROM xuesheng GROUP BY name HAVING MIN(score)> 80

如果考虑学生的课程数大于等于3的情况

SELECT name FROM xuesheng GROUP BY name HAVING MIN(score)> 80 AND COUNT(kecheng)>=3

解决办法二:not in

可以用反向思维,先查询出表里面有小于80分的name,然后用not in去除掉

SELECT DISTINCT name FROM xuesheng WHERE name NOT IN    (SELECT DISTINCT name    FROM xuesheng    WHERE score <=80);

删除

学生表xueshengbiao 如下:自动编号 学号 姓名 课程编号 课程名称 分数

autoid id name kcid kcname score
1 2005001 张三 0001 数学 69
2 2005002 李四 0001 数学 89
3 2005001 张三 0001 数学 69

删除除了自动编号不同, 其他都相同的学生冗余信息

DELETE t1 FROM xueshengbiao t1, xueshengbiao t2 WHERE t1.id = t2.id and t1.name = t2.name and t1.kcid = t2.kcid and t1.kcname = t2.kcname and t1.score = t2.score and t1.autoid < t2.autoid

如果只是查询出自动编号不同, 其他都相同的学生冗余信息,可以用group by

SELECT * from xueshengbiao t1 WHERE t1.autoid NOT IN    (SELECT MIN(autoid) as autoid FROM xueshengbiao    GROUP BY id, name, kcid, kcname, score)

模糊查询%

表名:student ,用sql查询出“张”姓学生中平均成绩大于75分的学生信息;

name kecheng score
张青 语文 72
张华 英语 81
王华 数学 72
张青 物理 67
李立 化学 98
张青 化学 76

select * from student where name in (select name from student where name like '张%' group by name having avg(score) > 75);

SQL 通配符

在 SQL 中,通配符与 SQL LIKE 操作符一起使用。SQL 通配符用于搜索表中的数据。在 SQL 中,可使用以下通配符:

通配符 描述
% 替代 0 个或多个字符
_ 替代一个字符
[charlist] 字符列中的任何单一字符
[^charlist]或[!charlist] 不在字符列中的任何单一字符

MySQL 中使用 REGEXP 或 NOT REGEXP 运算符 (或 RLIKE 和 NOT RLIKE) 来操作正则表达式

找出姓张和姓李的同学, 用rlike实现匹配多个

-- 找出姓张和姓李的 select * from xuesheng where name in (select name from xuesheng where name rlike '[张李]' group by name having avg(score) > 75);

也可以用 REGEXP,结合正则匹配

select * from xuesheng where name in (select name from xuesheng where name REGEXP '^[张李]' group by name having avg(score) > 75);

《Python3接口自动化第7期》12月8号开学

(0)

相关推荐

  • 正则表达式在MySQL5.7和MySQL8.0中的用法以及区别(一)

    各位客官姥爷好,欢迎回来.我们上节给出了MySQL数据库的安装教程,我们上节给的是5.7版本的安装教程,鉴于有部分企业已经使用8.0版本的MySQL,那么下面我将对比着学习正则表达式在这两个版本中的差 ...

  • 求职指南【2】-备战算法工程师面试,你需要掌握这些经典面试题

    AI研习图书馆,发现不一样的精彩世界 算法 面试 机器学习算法工程师面试知识点总结二 一.前言 金九银十,就业旺季马上就要到了,互联网公司的秋招如火如荼的进行着.机器学习类岗位依然非常热门且高薪,但想 ...

  • 关于面试总结7-linux经典面试题

    前言 现在做测试的出去面试,都会被问到linux,不会几个linux指令都不好意思说自己是做测试的了,本篇收集了几个被问的频率较高的linux面试题 常用指令 1.说出10个linux常用的指令 ls ...

  • 挂掉面试官系列(25匹马经典面试题的完整分析)

    今天为大家分享一道非常经典的面试题,和马有关.无论是校招,还是社招,在各大公司都出现过,我也曾经问过别人. 话不多说,直接看题. 01 25匹马的经典问题 25匹马的问题:有一个赛场上共有25匹马,赛 ...

  • 115道Java经典面试题(面中率高、全)

    Java是一个支持并发.基于类和面向对象的计算机编程语言.下面列出了面向对象软件开发的优点: 代码开发模块化,更易维护和修改. 代码复用. 增强代码的可靠性和灵活性. 增加代码的可理解性. 面向对象编 ...

  • 150 道Python经典面试题,做对80%,Offer任你挑

    金三银四是求职者的黄金月,提前掌握一些经典的面试题,就会大大提升面试的成功率,本文对Python面试中经常出现的一些典型问题进行了整理,并给出相应的参考答案. 现将内容罗列于此,可直达文末免费下载. ...

  • 关于面试总结8-http协议相关面试题

    前言 在PC浏览器的地址栏输入一串URL,然后按Enter键这个页面渲染出来,这个过程中都发生了什么事?这个是很多面试官喜欢问的一个问题 如果测试只是停留在表面上点点点,不知道背后的逻辑,是无法发现隐 ...

  • 关于面试总结9-接口测试面试题

    前言 接口测试最近几年被炒的火热了,越来越多的测试同行意识到接口测试的重要性.接口测试为什么会如此重要呢? 主要是平常的功能点点点,大家水平都一样,是个人都能点,面试时候如果问你平常在公司怎么测试的, ...

  • 关于面试总结12-接口自动化面试题

    前言 前面总结了一篇关于接口测试的常规面试题,现在接口自动化测试用的比较多,也是被很多公司看好.那么想做接口自动化测试需要具备哪些能力呢? 也就是面试的过程中,面试官会考哪些问题,知道你是不是真的做过 ...

  • 经典面试题:有序矩阵的快速查找

    算法核心不在于框架用得有多熟练,更多在于逻辑和思维方式,很多情况都需要变换间接建模.本文将通过一个经典的面试题来描述思维过程,引导最终问题建模. 01 金三银四 最近招聘市场各路神仙出没,小K也打算去 ...