数据库 CURD测试题【简单】

文章目录

    • 1.组合两个表
      • 基本信息
      • 要求
      • 答案
    • 2.第二高的薪水
      • 基本信息
      • 要求
      • 答案
    • 3.查找重复的电子邮箱
      • 基本信息
      • 要求
      • 答案
    • 4.超过经理收入的员工
      • 基本信息
      • 要求
      • 答案:
    • 5.超过5名学生的课
      • 信息:
      • 要求
      • 答案
    • 6.有趣的电影
      • 信息
      • 要求
      • 答案
    • 7.交换工资(updeta,条件判断)
      • 基本信息
      • 要求
      • 答案
    • 8从不订购的客户
      • 信息
      • 要求
      • 答案
        • 使用的not in
        • 使用的not exists
    • 9.上升的温度(mysql函数to_days)
        • 信息
        • 要求
        • 答案
    • 10.删除重复的邮箱
        • 信息
        • 要求
        • 答案
    • 11.员工奖金(null的应用)
        • 信息
        • 要求
    • 12.查找订单最多的用户

1.组合两个表

基本信息

表1: Person

列名类型
PersonIdint
FirstNamevarchar
LastNamevarchar
  • PersonId 是上表主键
    表2: Address
列名类型
AddressIdint
PersonIdint
Cityvarchar
Statevarchar
  • AddressId 是上表主键

要求

编写一个 SQL 查询,满足条件:无论 person 是否有地址信息,都需要基于上述两表提供 person 的以下信息:

FirstName, LastName, City, State

答案

select Person.FirstName,Person.LastName,Address.City,Address.State  
from Person left join Address on  Person.PersonId = Address.PersonId;

2.第二高的薪水

基本信息

编写一个 SQL 查询,获取 Employee 表中第二高的薪水(Salary) 。

IdSalary
1100
2200
3300

要求

例如上述 Employee 表,SQL查询应该返回 200 作为第二高的薪水。如果不存在第二高的薪水,那么查询应返回 null。

SecondHighestSalary
200

答案

select (select DISTINCT  Salary from Employee ORDER BY Salary DESC limit 1 offset 1
) as SecondHighestSalary;

3.查找重复的电子邮箱

基本信息

编写一个 SQL 查询,查找 Person 表中所有重复的电子邮箱。

示例:

IdEmail
1a@b.com
2c@d.com
3a@b.com

要求

根据以上输入,你的查询应返回以下结果:

Email
a@b.com

说明:所有电子邮箱都是小写字母。

答案

select Email from Person group by Email having count(Email)>1;

4.超过经理收入的员工

基本信息

Employee 表包含所有员工,他们的经理也属于员工。每个员工都有一个 Id,此外还有一列对应员工的经理的 Id。

IdNameSalaryManagerId
1Joe700003
2Henry800004
3Sam60000NULL
4Max90000NULL

要求

给定 Employee 表,编写一个 SQL 查询,该查询可以获取收入超过他们经理的员工的姓名。在上面的表格中,Joe 是唯一一个收入超过他的经理的员工。

Employee
Joe

答案:

Select e1.Name as Employee 
from Employee e1 join Employee e2  on e1.ManagerId = e2.Id and e1.Salary > e2.Salary

5.超过5名学生的课

信息:

有一个courses 表 ,有: student (学生) 和 class (课程)。

请列出所有超过或等于5名学生的课。

例如,表:

studentclass
AMath
BEnglish
CMath
DBiology
EMath
FComputer
GMath
HMath
IMath

要求

应该输出:

class
Math
  • Note:
    学生在每个课中不应被重复计算。

答案

select class
from courses
group by class
having count(DISTINCT student) >= 5;

6.有趣的电影

信息

某城市开了一家新的电影院,吸引了很多人过来看电影。该电影院特别注意用户体验,专门有个 LED显示板做电影推荐,上面公布着影评和相关电影描述。

作为该电影院的信息部主管,您需要编写一个 SQL查询,找出所有影片描述为非 boring (不无聊) 的并且 id 为奇数 的影片,结果请按等级 rating 排列。

例如,下表 cinema:

idmoviedescriptionrating
1Wargreat 3D8.9
2Sciencefiction8.5
3irishboring6.2
4Ice songFantacy8.6
5House cardInteresting9.1

要求

对于上面的例子,则正确的输出是为:

idmoviedescriptionrating
5House cardInteresting9.1
1Wargreat 3D8.9

答案

select id,movie, description, rating
from cinema
where description  !='boring' and id %2=1
order by rating desc;

7.交换工资(updeta,条件判断)

基本信息

给定一个 salary 表,如下所示,有 m = 男性 和 f = 女性 的值。交换所有的 f 和 m 值(例如,将所有 f 值更改为 m,反之亦然)。要求只使用一个更新(Update)语句,并且没有中间的临时表。

注意,您必只能写一个 Update 语句,请不要编写任何 Select 语句。

例如:

idnamesexsalary
1Am2500
2Bf1500
3Cm5500
4Df500

要求

运行你所编写的更新语句之后,将会得到以下表:

idnamesexsalary
1Af2500
2Bm1500
3Cf5500
4Dm500

答案

UPDATE salary 
SET sex=IF(sex='f','m','f');

8从不订购的客户

信息

某网站包含两个表,Customers 表和 Orders 表。编写一个 SQL 查询,找出所有从不订购任何东西的客户。

Customers 表:

IdName
1Joe
2Henry
3Sam
4Max

Orders 表:

IdCustomerId
13
21

要求

例如给定上述表格,你的查询应返回:

Customers
Henry
Max

答案

使用的not in

select Name as Customers
from Customers
where Customers.Id not in (select Customers.Id from Orders where Customers.Id = Orders.CustomerId);

使用的not exists

select Name as Customers
from Customers
where  not exists (select * from Orders where Customers.Id = Orders.CustomerId);

9.上升的温度(mysql函数to_days)

信息

给定一个 Weather 表,编写一个 SQL 查询,来查找与之前(昨天的)日期相比温度更高的所有日期的 Id。

Id(INT)RecordDate(DATE)Temperature(INT)
12015-01-0110
22015-01-0225
32015-01-0320
42015-01-0430

例如,根据上述给定的 Weather 表格,返回如下 Id:

要求

Id
2
4

答案

select w1.Id 
from weather as w1,weather as w2
where w1.Temperature > w2.Temperature and to_days(w1.RecordDate)-to_days(w2.RecordDate)=1;

10.删除重复的邮箱

信息

编写一个 SQL 查询,来删除 Person 表中所有重复的电子邮箱,重复的邮箱里只保留 Id 最小 的那个。

IdEmail
1john@example.com
2bob@example.com
3john@example.com
  • Id 是这个表的主键。

要求

例如,在运行你的查询语句之后,上面的 Person 表应返回以下几行:

IdEmail
1john@example.com
2bob@example.com

答案

delete p1
from Person p1, Person p2
where p1.Id>p2.Id and p1.Email = p2.Email;

11.员工奖金(null的应用)

信息

select all employee’s name and bonus whose bonus is < 1000.

Table:Employee

empIdnamesupervisorsalary
1John31000
2Dan32000
3Bradnull4000
4Thomas34000

empId is the primary key column for this table.
Table: Bonus

empIdbonus
2500
42000
  • empId is the primary key column for this table.

要求

Example ouput:

namebonus
Johnnull
Dan500
Bradnull

选出所有奖金<1000元的雇员姓名及奖金数额

答案:

select name, bonus
from Employee e left join Bonus b
on e.empId = b.empId
where bonus < 1000 or bonus is null

12.查找订单最多的用户

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/273848.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JAVA学习资料整理

今天偶然间发现之前一个群里发过的一篇关于JAVA学习资料的东西。本着服务大众的精神&#xff0c;搬来了博客园&#xff1a; 《JAVA编程思想》第四版&#xff08;英文原版&#xff09;下载地址&#xff1a;http://115.com/file/e7fzi0fm《JAVA开发实战经典》下载地址&#xff1a…

mysql快速了解

文章目录数据库了解&#xff1a;快速操作&#xff1a;安装mysql启动,关闭,重启mysql服务连接mysql的root用户创建数据库删除数据库选择数据库mysql 数据类型MySQL 创建数据表MySQL 删除数据表MySQL 插入数据MySQL 查询数据MySQL WHERE 子句BINARY 关键字MySQL UPDATE 更新批量更…

javascript编程风格(粗略笔记)

1、空格 紧凑型&#xff1a;    project.MyClass function(arg1, arg2){  松散型&#xff1a;    for( i 0; i < length; i ){ 2、代码行长度  最多80个字符 3、命名: 采用驼峰式方法命名(开始的第一个单词小写&#xff0c;之后的所有单词首字母大写)  var …

数据结构 面试题

文章目录1.数组1.1 寻找数组中第二小的元素1.2 找到数组中第一个不重复出现的整数1.3合并两个有序数组1.4 重新排列数组中的正值和负值2.栈2.1 前缀表达式&#xff0c;中缀表达式&#xff0c;后缀表达式2.1.1 中缀表达式转化为后缀表达式2.1.2 中缀表达式转化为前缀表达式2.2使…

WPF之无法触发KeyDown或者KeyUp键盘事件

有时候我们可能在Panel(StackPanel、Canvas、Grid)上或者是在一些默认不支持Focus的控件上添加了KeyDown或者KeyUp&#xff0c;可是残酷的现实告诉我们&#xff0c;这是无法触发的&#xff0c;怎么办呢&#xff0c;很简单&#xff0c;只需一句代码。 private void MouseLeftBut…

宣布在日本地区正式发布 Windows Azure

&#xfeff;&#xfeff;昨天&#xff0c;我与 Microsoft 日本的集团副总裁 Yasuyuki Higuchi 一同站在台上&#xff0c;宣布在两个新地区正式发布 Windows Azure&#xff1a;日本东部和日本西部。能够亲自见证 Microsoft 对日本市场的持续承诺&#xff0c;对我来说是莫大的荣…

运行cmd状态下MySQL导入导出.sql文件

MySQL导入导出.sql文件步骤如下&#xff1a; 一.MySQL的命令行模式的设置&#xff1a; 桌面->我的电脑->属性->环境变量->新建-> PATH“&#xff1b;path\mysql\bin;”其中path为MySQL的安装路径。 二.简单的介绍一下命令行进入MySQL的方法&#xff1a; 1.C:\&g…

python中的collections

文章目录deque(双向列表)defaultdict(为不存在的key设置默认值)OrderedDictOrderedDict可以实现一个FIFO&#xff08;先进先出&#xff09;的dict&#xff0c;Counter参考collections是Python内建的一个集合模块&#xff0c;提供了许多有用的集合类。deque(双向列表) 使用list…

mysql 面试点

文章目录mysql 运算符1.mysql运算符中的 !和Not的区别&#xff1f;CRUD1.条件判断的用法2. not exits 和not in 的区别3. case when语句mysql函数1.to_days()连接1.什么时候选择右连接&#xff0c;什么时候选择左连接&#xff1f;mysql 运算符 1.mysql运算符中的 !和Not的区别…

[Windows Phone] 实作不同的地图显示模式

[Windows Phone] 实作不同的地图显示模式 原文:[Windows Phone] 实作不同的地图显示模式前言 本文章主要示范如何让地图有不同的模式产生&#xff0c;例如平面图、地形图、鸟瞰图、鸟瞰图含街道等。 这部分主要是调整 Map.CartographicMode 属性&#xff0c;其中 MapCartograph…

数据库 CURD测试题【中等】

文章目录1.换座位&#xff08;交换相邻的id&#xff09;基本信息要求答案[case when]2.分数排名(分组&#xff0c;排序)基本信息要求答案3.连续出现的数字(连接)信息要求答案4.第N高的薪水(函数)信息要求答案5.各个部门工资最高的员工(分组&#xff0c;连接)信息要求答案6.统计…

[STemWin教程入门篇]第一期:emWin介绍

特别说明&#xff1a;原创教程&#xff0c;未经许可禁止转载&#xff0c;教程采用回复可见的形式&#xff0c;谢谢大家的支持。 armfly-x2,x3,v2,v3,v5开发板裸机和带系统的emWin工程已经全部建立&#xff0c;链接如下&#xff1a; http://bbs.armfly.com/read.php?tid1830 SE…

python 栈【测试题】

文章目录1.删除最外层的括号信息要求答案2.棒球比赛信息示例答案3. 用栈实现队列要求说明:答案4.用队列模拟栈描述注意答案5.下一个更大的元素&#xff08;未解&#xff09;信息&#xff1a;示例&#xff1a;注意:答案&#xff1a;6.删除字符串中的所有相邻重复项信息示例&…

python从socket做个websocket的聊天室server

下面的是server端&#xff1a;把IP改成自己的局域网IP&#xff1a; #coding:utf8 import socket,select import SocketServer import hashlib,base64,time from pprint import pprint#author:lijim def f(key):skey"258EAFA5-E914-47DA-95CA-C5AB0DC85B11"sha1hashli…

python进阶(第三章1) 字典

文章目录3.1 泛映射类型什么是可散列的数据类型&#xff08;键的要求&#xff09;字典的构造方法3.2 字典推导(dictcomp)3.3 常见的映射方法用setdefault处理找不到的键3.4 映射的弹性键查询3.4.1 defaultdict:处理找不到的键的一个选择注意&#xff1a;defaultdict与dict实例化…

python基础 list和tuple

文章目录一、list1、len()函数可以获得list元素的个数2、索引从0开始3、末尾追加 append(xx)4、也可以把元素插入到指定的位置&#xff0c;比如索引号为1的位置(insert)5、末尾删除pop() &#xff0c;并且返回该值6、要删除指定位置的元素&#xff0c;用pop(i)方法&#xff0c;…

HDU 2818 Building Block

题目连接 http://acm.hdu.edu.cn/showproblem.php?pid2818 题意:给定N个blocks&#xff0c;分在N个堆里&#xff0c;然后又P个操作&#xff0c;每次将x所在的堆放在y所在的堆上&#xff0c;或者询问x的下面有几个blocks 做法&#xff1a;带权并查集 因为要查询x的下面有多少bl…

百度社会化分享组件使用问题

今天下午玩了玩百度的社会化分享sdk,我是在这下载的sdk http://developer.baidu.com/frontia/sdk 谁知道这个下载链接是没更新的,还是1.0版本的,是尼玛13年初的版本 捣鼓了半天各种bug 然后去百度官网重新找http://developer.baidu.com/wiki/index.php?titledocs/frontia/res…

python基础 dict和set

文章目录dictset4.用集合为列表去重5.集合的增 add,update6.集合的删 discard,remove,pop,clear7 集合运算7.1 子集(<或者issubset()方法)7.2并集(|或者union()方法)7.3 交集(&或者intersection())7.4 差集(-或者difference()方法)7.5 对称集(^或者symmetric_difference…