「SQL」2. SQL格式规范、基本命令与范例
简述:这里只记录SQL的部分基本指令,包括SELECT FROM,WHERE,GROUP BY,ORDER BY。
1 SQL要点
1.1 注释
SQL语句中的单行注释使用--,多行注释采用 /*…*/
1.2 代码规范
1.3 执行顺序
SQL 语句有一个让大部分人都感到困惑的特性,就是:SQL 语句的执行顺序跟其语句的语法顺序并不一致。SQL 语句的语法顺序是:
SELECT[DISTINCT]FROMWHEREGROUP BYHAVINGUNIONORDER BY
为了方便理解,上面并没有把所有的 SQL 语法结构都列出来,但是已经足以说明 SQL 语句的语法顺序和其执行顺序完全不一样,就以上述语句为例,其执行顺序为:
FROMWHEREGROUP BYHAVINGSELECTDISTINCTUNIONORDER BY
摘自:十步完全理解 SQL
2 查询语句 SELECT FROM
2.1 语句解释
从表中选择数据
1 | SELECT |
2.2 查重语句
1 | SELECT |
2.3 前 N 个语句
1 | SELECT |
2.4 CASE…END 判断语句
1 | CASE |
3 筛选语句 WHERE
3.1 语法
1 | SELECT |
属性名不要求相同。
3.2 运算符/通配符/操作符
| operator | 描述 |
|---|---|
| = | 等于 |
| <> | 不等于 |
| > | 大于 |
| < | 小于 |
| >= | 大于等于 |
| <= | 小于等于 |
| BETWEEN | 在某个范围内 |
| LIKE | 搜索某种模式 |
4 分组语句 GROUP BY
4.1 语句解释
GROUP BY语句根据一个或多个列对结果集进行分组。
1 | SELECT |
属性名不要求相同。
4.2 HAVING子句
在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与合计函数一起使用。
示例:
1 | SELECT |
5 排序语句 ORDER BY
ORDER BY语句用于根据指定的列对结果集进行排序。默认按照升序,添加DESC关键字可改成降序。
5.1 正序、逆序
SQL默认按照升序(ASC),添加DESC关键字可改成降序。
6 简单实操
6.1 查找重复的电子邮箱(难度:简单)
- 创建表,表名
accounts,再添加records。Yeah,这就成了。1
2
3
4
5
6
7
8CREATE TABLE email (
ID INT NOT NULL PRIMARY KEY,
Email VARCHAR(255)
);
INSERT INTO email VALUES('1','a@b.com');
INSERT INTO email VALUES('2','c@d.com');
INSERT INTO email VALUES('3','a@b.com');

- 查重 查找结果:
1
2
3
4
5
6
7
8SELECT
Email
FROM
accounts
GROUP BY
Email
HAVING
COUNT(Email)>1;

6.2 查找大国
- 建表,表名
world,再添加records。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18CREATE TABLE World (
name VARCHAR(50) NOT NULL,
continent VARCHAR(50) NOT NULL,
area INT NOT NULL,
population INT NOT NULL,
gdp INT NOT NULL
);
INSERT INTO World
VALUES('Afghanistan','Asia',652230,25500100,20343000);
INSERT INTO World
VALUES('Albania','Europe',28748,2831741,12960000);
INSERT INTO World
VALUES('Algeria','Africa',2381741,37100000,188681000);
INSERT INTO World
VALUES('Andorra','Europe',468,78115,3712000);
INSERT INTO World
VALUES('Angola','Africa',1246700,20609294,100990000); - 查找大国(条件:国家的面积超过300万平方公里,或者(人口超过2500万并且
gdp超过2000万))Here we go!1
2
3
4
5
6SELECT
name, population, area
FROM
world
WHERE
area > 3000000 OR (population > 25000000 and GDP > 20000000);

7系列
以上!
「SQL」2. SQL格式规范、基本命令与范例