笔试题-sql语句
今天遇到了不熟练(不会)的查询题目
- 回来自己又做了一下,如下
建表语句
-- 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)的学生。
查询有科目分数小于 60 的, 然后 not in 即可
select name from score where sno not in
(select s.sno from score s where s.score < 60) GROUP BY snonot 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.snohaving 筛选
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语句的更多相关文章
- SQLServer 常见SQL笔试题之语句操作题详解
SqlServer 常见SQL笔试题之语句操作题详解 by:授客 QQ:1033553122 测试数据库 CREATE DATABASE handWriting ON PRIMARY ( name = ...
- 009 面试题 SQL语句各部分的执行顺序
SQL语句各部分的执行顺序 select distinct...from t1 (left/right) join t2 on t1.xx=t2.xx where t1.xx=? and t2.xx= ...
- 几个SQL语句笔试题
1.表A和表B具有完全相同的结构,查出表A中有但表B中没有的数据: create table A( id int , name ), password ) ); create table B( id ...
- 笔试题: 数据库 已看1 一些关键的sql语句练习 和选择题 有用 sql语句练习 挺好
一. 选择题 1.SQL语言是( C )语言. A.层次数据库 B.网络数据库 C.关系数据库 D.非数据库 redis 是 3.如果在where子句中有两个条件要同时满足,应该用哪个 ...
- 面试题 | 数据库笔试题集合·之·SQL语句(2)
第2章 SQL 语句 2.1 选择2.1.1 DELETE FROM S WHERE 年龄>60 语句的功能是( A ) A.从 S 表中彻底删除年龄大于 60 岁的记录B.S 表中年龄大于 6 ...
- 数据库笔试题(经典select语句的用法)【转载】
原文地址:数据库笔试题(经典select语句的用法)作者:lily 问题描述: 为管理岗位业务培训信息,建立3个表: S (S#,SN,SD,SA) S#,SN,SD,SA 分别代表学号.学员姓名.所 ...
- [SQL]数据分析SQL笔试题
SQL笔试题 1.请简单写出left join和join的用法区别(可举例说明): 2.求出订单表(order表)中每个客户(custid)的最近一次购买日期(要求:按custid降序排列,trans ...
- sql语句 面试题
ql语句 面试题 自动编号 学号 姓名 课程编号 课程名称 分数 1 2005001 张三 0001 数学 69 2 2005002 李四 ...
- sql笔试题
笔试题1: 1.select * from tablex where name = "张*" order by age 默认升序 select * from table ...
随机推荐
- VS2010/MFC编程入门之四十一(文档、视图和框架:分割窗口)
上一节中鸡啄米讲了文档.视图和框架结构中各对象之间的关系,本节主要讲讲在MFC中如何分割窗口. 分割窗口概述 分割窗口,顾名思义,就是将一个窗口分割成多个窗格,在每个窗格中都包含有视图,或 ...
- zw版【转发·台湾nvp系列Delphi例程】HALCON ZoomImageFactor2
zw版[转发·台湾nvp系列Delphi例程]HALCON ZoomImageFactor2 procedure TForm1.Button1Click(Sender: TObject);var op ...
- 公司里面用的iTextSharp(教程)---关于PDF的属性设置
下面介绍下怎么添加属性,代码如下: protected void Button1_Click(object sender, EventArgs e) { Document doc = new Do ...
- mybatis打印sql日志配置
<settings> <!-- 打印查询语句 --> <setting name="logImpl" value="STDOUT_LOGGI ...
- pandas练习(二)------ 数据过滤与排序
数据过滤与排序------探索2012欧洲杯数据 相关数据见(github) 步骤1 - 导入pandas库 import pandas as pd 步骤2 - 数据集 path2 = ". ...
- jstat命令查看tomcat进程提示进程没找到(PID not found
今天遇到了一个小问题,我想用jstat命令查看tomcat进程(PID=24493)的内存使用情况,命令如下:jstat -gc 24493. 然后就报错了,错误提示信息为 24493 not fou ...
- MD5验签同一字符串得到不同的MD5签名值可能问题之一
public static String md555(String plainText) throws UnsupportedEncodingException { byte[] secretByte ...
- javascript 中function(){},new function(),new Function(),Function 摘录
函数是JavaScript中很重要的一个语言元素,并且提供了一个function关键字和内置对象Function,下面是其可能的用法和它们之间的关系. function使用方式 var foo01 = ...
- git和github的简单配合使用
1.安装git,TortoiseGit. 2.用帐号A登陆github,建立一个版本仓库test1.用默认值创建就可以了. 3.在本机用TortoiseGit克隆仓库test1.直接选https开头的 ...
- 20145318《网络对抗》注入shellcode及Return-to-libc
20145318<网络对抗>注入shellcode及Return-to-libc 注入shellcode 知识点 注入shellcodeShellcode实际是一段代码(也可以是填充数据) ...