1. 前置概念
SQL: 结构化查询语言(Structured Query Language),简称SQL。
MySQL: MySQL是一个关系型数据库管理系统,是目前最流行的关系型数据库管理系统之一。具有开源、速度快等优点。
SQL注释:分为单行注释和多行注释,如下:
单行注释:
#单行注释
select * from TableA;
-- MySQL单行注释方法二
select * from TableA
多行注释:
/*
此处为注释....
*/
select * from TableA;
SQL代码规范:见链接。
2.SQL语句
- 查询语句
SELECT FROM
Todo:语句解释 去重语句 前N个语句 CASE...END判断语句
- 筛选语句
WHERE
Todo: 语句解释 运算符/通配符/操作符
- 分组语句
GROUP BY
Todo: 聚集函数 语句解释 HAVING子句
- 排序语句
ORDER BY
Todo: 语句解释 正序、逆序
- 函数
Todo: 时间函数 数值函数 字符串函数
3.实例
作业一:
作业一:查找重复的电子邮箱
创建 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 |
+--------------+-------------+--------------+
查询语句及结果如图: