今天遇到了不熟练(不会)的查询题目

  • 回来自己又做了一下,如下

建表语句


-- Table structure for score
-- ----------------------------
DROP TABLE IF EXISTS score;
CREATE TABLE score (
id int(11) DEFAULT NULL,
sno int(11) DEFAULT NULL,
name varchar(255) DEFAULT NULL,
subject varchar(255) DEFAULT NULL,
score varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


-- Records of score
-- ----------------------------
INSERT INTO score VALUES ('1', '201201', '小明', 'math', '90');
INSERT INTO score VALUES ('2', '201202', '小李', 'math', '99');
INSERT INTO score VALUES ('3', '201203', '小红', 'math', '43');
INSERT INTO score VALUES ('4', '201201', '小明', 'en', '66');
INSERT INTO score VALUES ('5', '201202', '小李', 'en', '56');
INSERT INTO score VALUES ('6', '201203', '小红', 'en', '88');
INSERT INTO score VALUES ('7', '201201', '小明', 'computer', '99');
INSERT INTO score VALUES ('8', '201202', '小李', 'computer', '65');
INSERT INTO score VALUES ('9', '201203', '小红', 'computer', '67');
INSERT INTO score VALUES ('11', '201204', '小白', 'sss', '99');
INSERT INTO score VALUES ('11111', '201203', '小红', 'computer', '67');

  • 题目1:找到所有分数都及格(>=60)的学生。

    1. 查询有科目分数小于 60 的, 然后 not in 即可
      select name from score where sno not in
      (select s.sno from score s where s.score < 60) GROUP BY sno

    2. not exists 写法
      select name from score s1 where not exists
      (select 1 from score s where s.score < 60 and s1.sno = s.sno) GROUP BY s1.sno

    3. having 筛选
      select * from score s GROUP BY s.sno having min(s.score) >= 60

  • 题目2:表中有冗余记录,如何删除?如下图:

分析:找到该数据对应的id,根据id删除!

select s.id from score s group by s.sno,s.name,s.subject,s.score -- 此结果不包含需要删除的id
本以为是:delete from score where id not in (select s.id from score s group by s.sno,s.name,s.subject,s.score )

  • 结果毫不犹豫的抛出错误:
  • 查明原因,mysql认为delete/update 跟 子句里面select到的不能是一张表

  • 做出改进(表起别名,按照需要删掉新插入的或者后插入的)

delete from score where id not in (select id from (select min(id) id from score s group by sno,name,subject,score )t)

笔试题-sql语句的更多相关文章

  1. SQLServer 常见SQL笔试题之语句操作题详解

    SqlServer 常见SQL笔试题之语句操作题详解 by:授客 QQ:1033553122 测试数据库 CREATE DATABASE handWriting ON PRIMARY ( name = ...

  2. 009 面试题 SQL语句各部分的执行顺序

    SQL语句各部分的执行顺序 select distinct...from t1 (left/right) join t2 on t1.xx=t2.xx where t1.xx=? and t2.xx= ...

  3. 几个SQL语句笔试题

    1.表A和表B具有完全相同的结构,查出表A中有但表B中没有的数据: create table A( id int , name ), password ) ); create table B( id ...

  4. 笔试题: 数据库 已看1 一些关键的sql语句练习 和选择题 有用 sql语句练习 挺好

    一.     选择题 1.SQL语言是( C )语言. A.层次数据库 B.网络数据库 C.关系数据库 D.非数据库     redis 是 3.如果在where子句中有两个条件要同时满足,应该用哪个 ...

  5. 面试题 | 数据库笔试题集合·之·SQL语句(2)

    第2章 SQL 语句 2.1 选择2.1.1 DELETE FROM S WHERE 年龄>60 语句的功能是( A ) A.从 S 表中彻底删除年龄大于 60 岁的记录B.S 表中年龄大于 6 ...

  6. 数据库笔试题(经典select语句的用法)【转载】

    原文地址:数据库笔试题(经典select语句的用法)作者:lily 问题描述: 为管理岗位业务培训信息,建立3个表: S (S#,SN,SD,SA) S#,SN,SD,SA 分别代表学号.学员姓名.所 ...

  7. [SQL]数据分析SQL笔试题

    SQL笔试题 1.请简单写出left join和join的用法区别(可举例说明): 2.求出订单表(order表)中每个客户(custid)的最近一次购买日期(要求:按custid降序排列,trans ...

  8. sql语句 面试题

    ql语句 面试题   自动编号   学号   姓名 课程编号 课程名称 分数 1        2005001  张三  0001      数学    69 2        2005002  李四 ...

  9. sql笔试题

    笔试题1: 1.select * from tablex where name = "张*" order by age  默认升序      select * from table ...

随机推荐

  1. VS2010/MFC编程入门之四十一(文档、视图和框架:分割窗口)

    上一节中鸡啄米讲了文档.视图和框架结构中各对象之间的关系,本节主要讲讲在MFC中如何分割窗口. 分割窗口概述       分割窗口,顾名思义,就是将一个窗口分割成多个窗格,在每个窗格中都包含有视图,或 ...

  2. zw版【转发·台湾nvp系列Delphi例程】HALCON ZoomImageFactor2

    zw版[转发·台湾nvp系列Delphi例程]HALCON ZoomImageFactor2 procedure TForm1.Button1Click(Sender: TObject);var op ...

  3. 公司里面用的iTextSharp(教程)---关于PDF的属性设置

    下面介绍下怎么添加属性,代码如下: protected void Button1_Click(object sender, EventArgs e) {   Document doc = new Do ...

  4. mybatis打印sql日志配置

    <settings> <!-- 打印查询语句 --> <setting name="logImpl" value="STDOUT_LOGGI ...

  5. pandas练习(二)------ 数据过滤与排序

    数据过滤与排序------探索2012欧洲杯数据 相关数据见(github) 步骤1 - 导入pandas库 import pandas as pd 步骤2 - 数据集 path2 = ". ...

  6. jstat命令查看tomcat进程提示进程没找到(PID not found

    今天遇到了一个小问题,我想用jstat命令查看tomcat进程(PID=24493)的内存使用情况,命令如下:jstat -gc 24493. 然后就报错了,错误提示信息为 24493 not fou ...

  7. MD5验签同一字符串得到不同的MD5签名值可能问题之一

    public static String md555(String plainText) throws UnsupportedEncodingException { byte[] secretByte ...

  8. javascript 中function(){},new function(),new Function(),Function 摘录

    函数是JavaScript中很重要的一个语言元素,并且提供了一个function关键字和内置对象Function,下面是其可能的用法和它们之间的关系. function使用方式 var foo01 = ...

  9. git和github的简单配合使用

    1.安装git,TortoiseGit. 2.用帐号A登陆github,建立一个版本仓库test1.用默认值创建就可以了. 3.在本机用TortoiseGit克隆仓库test1.直接选https开头的 ...

  10. 20145318《网络对抗》注入shellcode及Return-to-libc

    20145318<网络对抗>注入shellcode及Return-to-libc 注入shellcode 知识点 注入shellcodeShellcode实际是一段代码(也可以是填充数据) ...