#学习内容#
- 导入示例数据库,
- SQL是什么?MySQL是什么?
SQL是结构化查询语言,可从数据库中读写数据。
MySQL是一种数据库管理系统(DBMS),可支持SQL语句执行。 - 查询语句 SELECT FROM
语句解释:从表中检索列
去重语句:SELECT DISTINCT 列名 FROM 表名
前N个语句:LIMIT N
CASE…END判断语句:用于计算条件列表并返回多个可能结果表达式之一 - 筛选语句 WHERE
语句解释:只检索在指定搜索条件下的数据
运算符/通配符/操作符:= > BETWEEN等运算符判断大小包含关系/ LIKE、%、_ / AND交、OR并、IN范围、NOT否定 - 分组语句 GROUP BY
聚集函数:对某些行运行的函数,计算并返回一个值,如AVG、COUNT、SUM、MAX、MIN等
语句解释:GROUP BY按列名排序并分组数据,对每个组进行聚集
HAVING子句:过滤分组 - 排序语句 ORDER BY
语句解释:根据列名对输出进行排序
正序、逆序:默认或ASC正序(升序);DESC逆序(降序) - 函数
时间函数:YEAR、DATE、TIME、DATETIME、TIMESTAMP等
数值函数:ABS、COS、EXP、SQRT等
字符串函数:文本处理函数,如LEFT、RIGHT、LOWER、UPPER、LENGTH、LTRIM、RTRIM、SOUNDEX等
https://www.yiibai.com/mysql/data-types.htmlhttps://www.yiibai.com/mysql/date.html - SQL注释
#这是一条注释
/* … */ 这是多行注释 - SQL代码规范
对关键字大写,对列名和表名小写,使代码更易读。
[SQL编程格式的优化建议] https://zhuanlan.zhihu.com/p/27466166 [SQL Style Guide] https://www.,dsqlstyle.guide/
作业
项目一:查找重复的电子邮箱(难度:简单)
创建 email表,并插入如下三行数据
±—±--------+
| Id | Email |
±—±--------+
| 1 | a@b.com |
| 2 | c@d.com |
| 3 | a@b.com |
±—±--------+
编写一个 SQL 查询,查找 Email 表中所有重复的电子邮箱。
根据以上输入,你的查询应返回以下结果:
±--------+
| Email |
±--------+
| a@b.com |
±--------+
说明:所有电子邮箱都是小写字母。
Answer:
SQL语句:
项目二:查找大国(难度:简单)
创建如下 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 |
±-------------±------------±-------------+
Answer:
SQL语句: