美文网首页
【SQL】常见的MySQL编程题

【SQL】常见的MySQL编程题

作者: 胖三斤66 | 来源:发表于2020-01-26 16:31 被阅读0次

Q1:求出每科成绩前三的SQL语句?

问题定义与背景

求出每科成绩前三?

数据表的格式

create table `std_score`(
  `sid` int comment '学生id',
  `cid` int comment '课程id',
  `score` int comment '成绩',
  primary key(`sid`, `cid`)
)engine=INNODB;

答案与解析

答案

select * from std_score a 
where (select count(*) from std_score b where a.cid=b.cid and b.cid>a.cid) < 3 
order by cid,score desc;

解析:嵌套查询,每扫描 a 一条记录都会对比扫描 b 的全部记录。select count(*) from std_score b where a.cid=b.cid and b.cid>a.cid 则是找出比当前扫到 a 的记录的成绩更高的成绩的记录数,where(**)<3 则表示该记录数不能大于3(因为要找出前三的成绩)。

结果展示

结果展示

Q2:删除重复记录并保留一条?

解答过程

1)找出重复记录

select * from xxx_table where [判断重复的字段] in 
  (select [判断重复的字段] from xxx_table group by [判断重复的字段] having count(*) > 1);

2)删除多余记录,保留其中一条。示例中,保留的是id最小的

delete from xxx_table 
where 
  [判断重复的字段] in (select [判断重复的字段] from xxx_table group by [判断重复的字段] having count(*) > 1)
and
  id not in (select min(id) from xxx_table group by [判断重复的字段] having count(*)>1);

知识点

  • having:分组后(即group by),对每个组进行聚合。

Q4:性别反转

update person
set sex = 
  case sex
    when 'm' then 'f'
    else 'm'
  end;

Q4:找出单科成绩高于该科平均成绩的同学名单?

问题定义

问题1:只要有一科满足,该同学就应该在名单中
问题2:名单中的同学必须所有科满足条件。

数据表结构和数据

答案

相关文章

  • 【SQL】常见的MySQL编程题

    Q1:求出每科成绩前三的SQL语句? 问题定义与背景 求出每科成绩前三? 数据表的格式 答案与解析 答案 解析:嵌...

  • 0.SQL编程之目录

    SQL编程之前言为什么我选择分享SQL编程SQL编程的基础概念 SQL编程之MySQL 自定义函数 Hello w...

  • 《MySQL技术内幕:SQL编程》书摘

    MySQL技术内幕:SQL编程 姜承尧 第1章 SQL编程 >> B是由MySQL创始人之一Monty分支的一个版...

  • MySQL的SQL语句执行过程

    理解MySQL当中的SQL语句 MySQL的sql语句和我们常用的编程语句一样,都是我们输入文本,编译器编译或者解...

  • MySQL的函数认识

    理解MySQL当中的SQL语句 MySQL的sql语句和我们常用的编程语句一样,都是我们输入文本,编译器编译或者解...

  • MySQL基础之事务编程学习笔记

    MySQL基础之事务编程学习笔记 在学习《MySQL技术内幕:SQL编程》一书,并做了笔记。本博客内容是自己学了《...

  • SQL注入基础

    什么是SQL注入 拼接sql得到想要的数据或反应, 而这些sql是不常见的编程逻辑的sql. SQL语句闭合问题 ...

  • 数据库第三讲

    1.常见DBMS种类 Oracle、DB2、SQL Server、Mysql、Access 2.MySQL的服务名...

  • mysql sql编程

    mysql的sql编程一般使用在 存储过程/触发器/事件 等sql程序中。 DECLARE 变量申明 1、使用DE...

  • MySQL基础

    MySQL服务的启动和停止 MySQL服务的登陆和退出 MySQL的常见命令 MySQL的语法规范 SQL的语言分...

网友评论

      本文标题:【SQL】常见的MySQL编程题

      本文链接:https://www.haomeiwen.com/subject/slijthtx.html