SQL基本语句及语法

本文将针对SQL的基本语法进行总结。

SQL语言分类

数据查询语言DQL

select、from、where

数据操作语言DML

insert、update、delete

数据定义语言DDL

create

数据控制语言

grant、rollback、commit

语法

基本语句及语法

select

功能

用于从表中选取数据,返回结果被存储在一个表中。

基本语法
1
SELECT 列名称 FROM 表名称
实例
1
SELECT Birthday,Name FROM person

“Persons” 表:

Id Name Birthday City
1 Duan 19960108 Taiyuan
2 Zhang 19950712 Beijing
3 C 19960805 Beijing

结果:

Birthday Name
19960108 Duan
19950712 Zhang
19960805 Wang

join

基本功能

SQL join 用于根据两个或多个表中的列之间的关系,从这些表中查询数据。

实例

1 LeetCode 1378 使用唯一标识码替换员工ID

点击显/隐内容
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
Employees 表:
+---------------+---------+
| Column Name | Type |
+---------------+---------+
| id | int |
| name | varchar |
+---------------+---------+
id 是这张表的主键。
这张表的每一行分别代表了某公司其中一位员工的名字和 ID 。

EmployeeUNI 表:
+---------------+---------+
| Column Name | Type |
+---------------+---------+
| id | int |
| unique_id | int |
+---------------+---------+
(id, unique_id) 是这张表的主键。
这张表的每一行包含了该公司某位员工的 ID 和他的唯一标识码(unique ID)。

写一段SQL查询来展示每位用户的 唯一标识码(unique ID );如果某位员工没有唯一标识码,使用 null 填充即可。

EmployeeUNI table:
+-----------+----------+
| unique_id | name |
+-----------+----------+
| null | Alice |
| null | Bob |
| 2 | Meir |
| 3 | Winston |
| 1 | Jonathan |
+-----------+----------+

Alice and Bob 没有唯一标识码, 因此我们使用 null 替代。
Meir 的唯一标识码是 2 。
Winston 的唯一标识码是 3 。
Jonathan 唯一标识码是 1 。

代码如下:

1
2
3
4
select EmployeeUNI.unique_id, Employees.name 
from Employees
left join EmployeeUNI #这一句代表即使Employees中某个员工在EmployeeUNI中没有匹配,依然返回Employees中所有行
on EmployeeUNI.id = Employees.id

on & where

基本功能

条件过滤语句,用于筛选符合特定条件的数据,on和where在筛选条件上存在差异,具体如下:

  • on条件触发于结果表生成时,不管on中条件是否为真,一定会返回左侧表中的记录(left join)
    • where条件触发于结果表生成后,对结果表中条件进行过滤,不符合where的会被过滤掉。

参考文献

0%