MySQL 基本查询、条件查询、投影查询

文章目录

    • 1. 基本查询
    • 2. 条件查询
    • 3. 投影查询
    • 练习 LeetCode 595. 大的国家
    • 练习 LeetCode 584. 寻找用户推荐人
    • 练习 LeetCode 1173. 即时食物配送 I
    • 练习 LeetCode 610. 判断三角形

学习自 廖雪峰的官方网站

1. 基本查询

SELECT * FROM <表名>

*表示所有内容
在这里插入图片描述

许多检测工具会执行一条SELECT 1; 来测试数据库连接。

2. 条件查询

SELECT * FROM <表名> WHERE <条件表达式>

条件运算按照NOT、AND、OR的优先级进行,即 NOT 最高,其次AND,最后OR
加括号 可以改变 优先级

SELECT * FROM students WHERE score >= 80;
SELECT * FROM students WHERE score >= 80 AND gender = 'M';
SELECT * FROM students WHERE score >= 80 OR gender = 'M';
SELECT * FROM students WHERE NOT class_id = 2;
SELECT * FROM students WHERE (score < 80 OR score > 90) AND gender = 'M';

3. 投影查询

结果集仅包含指定列

SELECT1,2,3 FROM <表名> WHERE <条件>
SELECT id, score, name FROM students;# 下面的 score 改了名称为 points(重命名)
SELECT id, score points, name FROM students;

练习 LeetCode 595. 大的国家

题目:

Create table If Not Exists World (name varchar(255), continent varchar(255), area int, population int, gdp int)
Truncate table World
insert into World (name, continent, area, population, gdp) values ('Afghanistan', 'Asia', '652230', '25500100', '20343000000')
insert into World (name, continent, area, population, gdp) values ('Albania', 'Europe', '28748', '2831741', '12960000000')
insert into World (name, continent, area, population, gdp) values ('Algeria', 'Africa', '2381741', '37100000', '188681000000')
insert into World (name, continent, area, population, gdp) values ('Andorra', 'Europe', '468', '78115', '3712000000')
insert into World (name, continent, area, population, gdp) values ('Angola', 'Africa', '1246700', '20609294', '100990000000')

这里有张 World 表

+-----------------+------------+------------+--------------+---------------+
| name            | continent  | area       | population   | gdp           |
+-----------------+------------+------------+--------------+---------------+
| Afghanistan     | Asia       | 652230     | 25500100     | 20343000      |
| Albania         | Europe     | 28748      | 2831741      | 12960000      |
| Algeria         | Africa     | 2381741    | 37100000     | 188681000     |
| Andorra         | Europe     | 468        | 78115        | 3712000       |
| Angola          | Africa     | 1246700    | 20609294     | 100990000     |
+-----------------+------------+------------+--------------+---------------+

如果一个国家的面积超过300万平方公里,人口超过2500万,那么这个国家就是大国家

编写一个SQL查询,输出表中所有大国家名称、人口和面积

例如,根据上表,我们应该输出:

+--------------+-------------+--------------+
| name         | population  | area         |
+--------------+-------------+--------------+
| Afghanistan  | 25500100    | 652230       |
| Algeria      | 37100000    | 2381741      |
+--------------+-------------+--------------+

来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/big-countries
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。


解题:

# Write your MySQL query statement below
SELECT name, population, area FROM World WHERE population > 25000000 OR area > 3000000;

格式无特殊要求,好像

# Write your MySQL query statement below
SELECT name, population, area 
FROM World 
WHERE population > 25000000 
OR area > 3000000;

217 ms

练习 LeetCode 584. 寻找用户推荐人

给定表 customer ,里面保存了所有客户信息和他们的推荐人。

+------+------+-----------+
| id   | name | referee_id|
+------+------+-----------+
|    1 | Will |      NULL |
|    2 | Jane |      NULL |
|    3 | Alex |         2 |
|    4 | Bill |      NULL |
|    5 | Zack |         1 |
|    6 | Mark |         2 |
+------+------+-----------+

写一个查询语句,返回一个编号列表,列表中编号的推荐人的编号都 不是 2。

对于上面的示例数据,结果为:

+------+
| name |
+------+
| Will |
| Jane |
| Bill |
| Zack |
+------+

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/find-customer-referee
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。


解题:

# Write your MySQL query statement below
select name from customer
where referee_id not in (2) or referee_id is null
# Write your MySQL query statement below
select name from customer
where referee_id != 2 or referee_id is null
# Write your MySQL query statement below
select name from customer
where referee_id <> 2 or referee_id is null

练习 LeetCode 1173. 即时食物配送 I

配送表: Delivery

+-----------------------------+---------+
| Column Name                 | Type    |
+-----------------------------+---------+
| delivery_id                 | int     |
| customer_id                 | int     |
| order_date                  | date    |
| customer_pref_delivery_date | date    |
+-----------------------------+---------+

delivery_id 是表的主键。
该表保存着顾客的食物配送信息,顾客在某个日期下了订单,并指定了一个期望的配送日期(和下单日期相同或者在那之后)。

如果顾客期望的配送日期和下单日期相同,则该订单称为 「即时订单」,否则称为「计划订单」。

写一条 SQL 查询语句获取即时订单所占的比例, 保留两位小数。

查询结果如下所示:

Delivery 表:
+-------------+-------------+------------+-----------------------------+
| delivery_id | customer_id | order_date | customer_pref_delivery_date |
+-------------+-------------+------------+-----------------------------+
| 1           | 1           | 2019-08-01 | 2019-08-02                  |
| 2           | 5           | 2019-08-02 | 2019-08-02                  |
| 3           | 1           | 2019-08-11 | 2019-08-11                  |
| 4           | 3           | 2019-08-24 | 2019-08-26                  |
| 5           | 4           | 2019-08-21 | 2019-08-22                  |
| 6           | 2           | 2019-08-11 | 2019-08-13                  |
+-------------+-------------+------------+-----------------------------+Result 表:
+----------------------+
| immediate_percentage |
+----------------------+
| 33.33                |
+----------------------+
23 号订单为即时订单,其他的为计划订单。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/immediate-food-delivery-i
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。


解题:

# Write your MySQL query statement below
select 
round((sum(order_date = customer_pref_delivery_date)/count(*)*100), 2)
immediate_percentage from Delivery

avg 函数返回占比

# Write your MySQL query statement below
select 
round((avg(order_date = customer_pref_delivery_date)*100), 2)
immediate_percentage from Delivery

练习 LeetCode 610. 判断三角形

一个小学生 Tim 的作业是判断三条线段是否能形成一个三角形。

然而,这个作业非常繁重,因为有几百组线段需要判断。

假设表 triangle 保存了所有三条线段的三元组 x, y, z ,
你能帮 Tim 写一个查询语句,来判断每个三元组是否可以组成一个三角形吗?

| x  | y  | z  |
|----|----|----|
| 13 | 15 | 30 |
| 10 | 20 | 15 |

对于如上样例数据,你的查询语句应该返回如下结果:

| x  | y  | z  | triangle |
|----|----|----|----------|
| 13 | 15 | 30 | No       |
| 10 | 20 | 15 | Yes      |

来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/triangle-judgement
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。


解题:

# Write your MySQL query statement below
select x, y, z, case when x+y > z and x+z > y and y+z > x then 'Yes'else 'No'end as triangle
from triangle

or

# Write your MySQL query statement below
select *, if(x+y>z and x+z>y and y+z>x, 'Yes', 'No') as triangle
from triangle

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

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

相关文章

解决mysql导出scv文件乱码、蹿行的问题

工作原因&#xff0c;常常不能实现完全的线上化&#xff08;即&#xff0c;所有数据都在线上完成&#xff0c;不需要导入导出&#xff09;&#xff0c;而导出Excel常常比修炼成仙还慢&#xff0c;因此&#xff0c;我们将数据库文件导出到本地使用的时候&#xff0c;常常使用的方…

MySQL 排序、分页查询、聚合查询

文章目录1. 排序2. 分页查询3. 聚合查询3.1 分组聚合 GROUP BY练习 LeetCode 176. 第二高的薪水练习 LeetCode 177. 第N高的薪水练习 LeetCode 182. 查找重复的电子邮箱练习 LeetCode 620. 有趣的电影练习 LeetCode 183. 从不订购的客户练习 LeetCode 596. 超过5名学生的课练习…

解决mysql导数据时,格式不对、导入慢、丢数据的问题

如果希望一劳永逸的解决慢的问题&#xff0c;不妨把你的mysql升级到mysql8.0吧&#xff0c;mysql8.0默认的字符集已经从latin1改为utf8mb4&#xff0c;因此现在UTF8的速度要快得多&#xff0c;在特定查询时速度提高了1800&#xff05;&#xff01; mysql8.0 安装教程但是如果时…

MySQL 多表查询、连接查询(内连接、外连接)

文章目录1. 多表查询2. 连接查询练习 LeetCode 175. 组合两个表练习 LeetCode 181. 超过经理收入的员工练习 LeetCode 1378. 使用唯一标识码替换员工ID练习 LeetCode 1068. 产品销售分析 I练习 LeetCode 1069. 产品销售分析 II练习 LeetCode 1303. 求团队人数练习 LeetCode 135…

mysql行列转置-图文详解

我们想跑一个数据&#xff0c;格式如下图&#xff1a;但是我们一般的mysql语句跑出来的数据却是下面这样&#xff0c;不但不方便查看&#xff0c;在数据量比较大的时候&#xff0c;我们需要每个地区都转置粘贴一遍&#xff0c;耗时耗力还容易出错&#xff0c;下面提供一个方法&…

MySQL 增加、更新、删除

文章目录1. 增加 INSERT2. 更新 UPDATE3. 删除 DELETE练习 LeetCode 196. 删除重复的电子邮箱练习 LeetCode 627. 交换工资学习自 廖雪峰的官方网站 1. 增加 INSERT 添加一条记录 INSERT INTO <表名> (字段1, 字段2, ...) VALUES (值1, 值2, ...);INSERT INTO student…

mysql去重取最大值,逻辑类似oracle的over(partition by)函数

像下表一样的数据&#xff0c;有重复的合同号&#xff0c;但是我只想保留同一合同号中回款金额最大的那一行&#xff0c;也就是图中红框里的数据。oracle方法&#xff1a;在oracle中&#xff0c;我们可以简单地用over(partition by)函数处理&#xff08;代码示例如下&#xff0…

mysql一图秒懂秒清晰 - join连接 ,left join左连接 ,right join右连接 ,inner join内连接

前言&#xff1a;zuo表和you表短短五行涵盖了数据中所有可能遇见的情况&#xff1a; 1.左表有重复值&#xff08;合同号1134&#xff09;&#xff1b; 2.右表有重复值&#xff08;合同号1133&#xff09;&#xff1b; 3.左表存在右表没有的合同号&#xff08;合同号1188&#x…

LeetCode 910. 最小差值 II(贪心)

1. 题目 给定一个整数数组 A&#xff0c;对于每个整数 A[i]&#xff0c;我们可以选择 x -K 或是 x K&#xff0c;并将 x 加到 A[i] 中。 在此过程之后&#xff0c;我们得到一些数组 B。 返回 B 的最大值和 B 的最小值之间可能存在的最小差值。 示例 1&#xff1a; 输入&a…

行业分析-实战价值方法

都是工作中总结的方法&#xff0c;可能理论基础不是那么高大上&#xff0c;但是非常有实战价值。 1.行业研究维度 2.行业景气度 3.行业间关系(敏感性计算) 4.行业成长性

mysql 8.0.11-Windows (x86, 64-bit)下载地址与安装教程

1.下载安装包 Windows (x86, 64-bit), ZIP Archive官网下载安装包 点击链接&#xff0c;进入如下页面---点击Download下载---解压到目录&#xff08;例如E:\program\mysql-8.0.11-winx64&#xff09;2.添加配置文件my.ini 在目录E:\program\mysql-8.0.11-winx64下&#xff1a; …

Excel - 添加趋势线,显示趋势线公式 - 进行行业投融资曲线拟合

1.准备数据 本次是以人工智能行业为例&#xff0c;数据范围是2012年4月到2017年11月的&#xff0c;这是去年的时候采集的&#xff0c;这次就直接拿来用了&#xff0c;不影响曲线拟合的操作过程。但是想使用最新的数据的话&#xff0c;你也可以像我一样用火车头采集器采集最新的…

windows电脑快捷键大全 - 高手总是很酷的

1. WindowsL键&#xff0c;直接锁屏&#xff0c;这样就不用担心电脑的资料外泄了 2. 一般人会先找到“我的电脑”&#xff0c;然后点击打开&#xff0c;而高手总是很酷的&#xff0c; WindowsE键&#xff0c;直接打开电脑的资源管理器 3. 直接按下 WindowsD键&#xff0c…

Linux常用工具小结:(2) Mysql的rpm安装和编译安装

Mysql的rpm安装 1&#xff0c; 下载。 这里下载http://dev.mysql.com/downloads/mirror.php?id402502。 2&#xff0c; 安装。 下载到本地解压&#xff1a; tar -xvf MySQL-5.5.12-1.rhel5.x86_64.tar 安装以下rpm rpm -ivh MySQL-devel-5.5.12-1.rhel5.x86_64.rpm rpm -ivh M…

Power BI 的 最佳搭档 Excel(基础数据分析)

Powerbi和Excel l Power BI 和 Excel 本节将向你介绍将 Excel 工作薄导入 Power BI 是多么简单&#xff0c;并演示 Power BI 和 Excel 如何展现最佳搭档气质。 以下主题将指导你使用简单的表格将 Excel 工作薄上传到 Power BI。 然后你将了解如何上传使用 Excel 更高级的 B…

降维方法 -简直太全- 附Python代码(Random Forest、Factor Analysis、corr、PCA、ICA、IOSMA

为什么要降维&#xff1f; 建模初期&#xff0c;我们往往只有几个指标&#xff0c;这个时候不太涉及到降维&#xff0c;但是一个月后你就发现&#xff0c;模型的指标越来越多&#xff0c;从原有的五六个指标一步一步变成 100 个指标。100 个很多吗&#xff1f;不多&#xff01…

CYQ.DBImport 数据库反向工程及批量导数据库工具 V2.0 发布[增加批量导出数据库脚本及数据库设计文档]...

上次发布的&#xff1a;CYQ.DBImport V1.0的相关介绍&#xff1a;CYQ.DBImport 数据库反向工程及批量导数据库工具 V1.0 本次发布的V2.0 版本&#xff0c;准备突击海外&#xff0c;下面为相关的介绍。 一&#xff1a;新版本2.0的新增功能介绍 1&#xff1a;修正GUID的脚本错误2…

Power BI 如何获取数据做可视化

获 取 数 据 l 获取数据 Power BI Desktop 可连接到种类广泛的多种数据源&#xff0c;包括本地数据库、Excel 工作表和云服务等。 它可帮助清理数据和设置数据格式&#xff0c;以使数据更为有用&#xff0c;包括拆分和重命名列、更改数据类型和处理日期。还可创建列之间的关…

Power BI 将商业智能数据转换为数据理解

l 研究数据 在本部分中你要了解各种知识&#xff0c;并且积极的互动和进行 Power BI 共享在这一部分至关重要。 Power BI 服务简介 Power BI 服务是 Power BI Desktop 的自然扩展&#xff0c;其功能包括上传报表、创建仪表板&#xff0c;以及使用自然语言对数据进行提问。该服…

LeetCode 554. 砖墙(map计数)

1. 题目 你的面前有一堵方形的、由多行砖块组成的砖墙。 这些砖块高度相同但是宽度不同。你现在要画一条自顶向下的、穿过最少砖块的垂线。 砖墙由行的列表表示。 每一行都是一个代表从左至右每块砖的宽度的整数列表。 如果你画的线只是从砖块的边缘经过&#xff0c;就不算穿…