MySQL任务2

一、基础知识

1. SQL是什么?MySQL是什么?

SQL代表结构化查询语言(Structured Query Language)。SQL是用于访问数据库的标准化语言。
MySQL是一个数据库管理系统,也是一个关系数据库。它是由Oracle支持的开源软件。

2. 查询语句 SELECT FROM

语句解释

SELECT 之后是逗号分隔列或星号(*)的列表,表示要返回所有列。
FROM指定要查询数据的表或视图。

去重语句

前N个语句

LIMIT 数量

CASE…END判断语句

3. 筛选语句 WHERE

语句解释

子句允许根据指定的过滤表达式或条件来指定要选择的行。

运算符/通配符/操作符

= 等于
!= 或 <> 不等于
< 小于 >大于
<= 小于等于 >=大于等于

4. 分组语句 GROUP BY

聚集函数

AVG() 计算一组值的平均值
COUNT() 返回表中的行数
SUM()返回一组值的总和
MAX()返回一组值中的最大值
MIN()返回一组值中的最小值

语句解释

GROUP BY子句通过列或表达式的值将一组行分组为一个小分组的汇总行记录。

HAVING子句

HAVING子句通常与GROUP BY子句一起使用,以根据指定的条件过滤分组。如果省略GROUP BY子句,则HAVING子句的行为与WHERE子句类似。

5. 排序语句 ORDER BY

语句解释

指定用于排序的列的列表。

正序、逆序

ASC表示升序,DESC表示降序,如果不明确指明ASC或DESC,会按照升序对结果集进行排序

升序

SELECT * FROM customers ORDER BY contactLastname;

降序

SELECT * FROM customers ORDER BY contactLastname DESC;

6. 函数

时间函数

curdate()函数 - 返回当前日期。
datediff()函数 - 计算两个DATE值之间的天数。
day()函数 - 获取指定日期月份的天(日)。
date_add()函数 - 将时间值添加到日期值。
date_sub()函数 - 从日期值中减去时间值。
date_format()函数 - 根据指定的日期格式格式化日期值。
dayname()函数 - 获取指定日期的工作日的名称。
dayofweek()函数 - 返回日期的工作日索引。
extract()函数 - 提取日期的一部分。
now()函数 - 返回当前日期和时间。
month()函数 - 返回一个表示指定日期的月份的整数。
str_to_date()函数 - 将字符串转换为基于指定格式的日期和时间值。
sysdate()函数 - 返回当前日期。
timediff()函数 - 计算两个TIME或DATETIME值之间的差值。
timestampdiff()函数 - 计算两个DATE或DATETIME值之间的差值。
week()函数 - 返回一个日期的星期数值。
weekday()函数 - 返回一个日期表示为工作日/星期几的索引。
year()函数 - 返回日期值的年份部分。

数值函数

avg()函数 - 计算一组值或表达式的平均值。
count()函数 - 计算表中的行数。instr()函数 - 返回子字符串在字符串中第一次出现的位置。
sum()函数 - 计算一组值或表达式的总和。
min()函数 - 在一组值中找到最小值。
max()函数 - 在一组值中找到最大值。

字符串函数

concat()函数 - 将两个或多个字符串组合成一个字符串。
length()函数&char_length()函数 - 以字节和字符获取字符串的长度。
left()函数 - 获取指定长度的字符串的左边部分。
replace()函数 - 搜索并替换字符串中的子字符串。
substring()函数 - 从具有特定长度的位置开始提取一个子字符串。
trim()函数 - 从字符串中删除不需要的字符。
find_in_set()函数 - 在逗号分隔的字符串列表中找到一个字符串。
format()函数 - 格式化具有特定区域设置的数字,舍入到小数位数。

二、项目一 查找重复的电子邮箱(难度:简单)

创建 email表,并插入如下三行数据

±—±--------+

| Id | Email |

±—±--------+

| 1 | a@b.com |

| 2 | c@d.com |

| 3 | a@b.com |

±—±--------+

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

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

±--------+

| Email |

±--------+

| a@b.com |

±--------+

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

在这里插入图片描述
在这里插入图片描述

项目二:查找大国(难度:简单)

创建如下 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万并且gdp超过2000万),那么这
编写一个SQL查询,输出表中所有大国家的名称、人口和面积。
例如,根据上表,我们应该输出:
±-------------±------------±-------------+
| name | population | area |
±-------------±------------±-------------+
| Afghanistan | 25500100 | 652230 |
| Algeria | 37100000 | 2381741 |
±-------------±------------±-------------+

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值