SQL 语法

SQL 语法 #

数据库表 #

一个数据库通常包含一个或多个表。每个表有一个名字标识(例如:“doamian”),表包含带有数据的记录(行)。

在本教程中,我们在 MariaDB 的 learnsql 数据库中创建了 domains 表,用于存储网站记录。

我们可以通过以下命令查看 “domains” 表的数据:

MariaDB [test]> show databases;
+--------------------+
| Database           |
+--------------------+
| 5gxkz              |
| information_schema |
| learnsql           |
| mysql              |
| performance_schema |
| sys                |
| test               |
+--------------------+
7 rows in set (0.001 sec)

MariaDB [test]> use learnsql;
Database changed
MariaDB [learnsql]> show tables;
+--------------------+
| Tables_in_learnsql |
+--------------------+
| domains            |
+--------------------+
1 row in set (0.001 sec)

MariaDB [learnsql]> select * from domains;
+----+-----------+------------------+------------+------------+
| ID | ICP       | DomainName       | RegDate    | EndDate    |
+----+-----------+------------------+------------+------------+
|  1 | west.cn   | aisoc.cn         | 2021/8/17  | 2022/8/17  |
|  2 | west.cn   | ado.ink          | 2020/8/22  | 2022/8/22  |
|  3 | west.cn   | nrdoc.com        | 2021/9/7   | 2022/9/7   |
|  4 | namesilo  | getos.org        | 2016/10/9  | 2022/10/9  |
|  5 | west.cn   | litiaotiao.cn    | 2021/10/9  | 2022/10/9  |
|  6 | wanwang   | dotbbq.com       | 2017/10/28 | 2022/10/28 |
|  7 | wanwang   | lyq.wiki         | 2018/12/27 | 2022/12/28 |
|  8 | namesilo  | les.moe          | 2015/12/31 | 2022/12/31 |
|  9 | namesilo  | regex.in         | 2020/1/3   | 2023/1/3   |
| 10 | west.cn   | wmts.top         | 2021/1/11  | 2023/1/11  |
| 11 | west.cn   | sharpbang.cn     | 2022/1/12  | 2023/1/12  |
| 12 | namesilo  | blbl.dev         | 2020/1/17  | 2023/1/17  |
| 13 | namesilo  | raspi.in         | 2014/2/27  | 2023/2/27  |
| 14 | namesilo  | pornie.in        | 2016/3/10  | 2023/3/10  |
| 15 | namesilo  | aosp.me          | 2016/3/17  | 2023/3/17  |
| 16 | namesilo  | bailuyuan.org    | 2017/3/23  | 2023/3/23  |
| 17 | wanwang   | linuxuc.com      | 2016/3/24  | 2023/3/24  |
| 18 | namesilo  | ustv.xyz         | 2018/3/24  | 2023/3/25  |
| 19 | wanwang   | unixetc.com      | 2017/3/30  | 2023/3/30  |
| 20 | namesilo  | ciux.org         | 2010/4/26  | 2023/4/26  |
| 21 | namesilo  | avlist.top       | 2021/6/5   | 2023/6/5   |
| 22 | google    | suopo.net        | 2020/6/17  | 2023/6/17  |
| 23 | west.cn   | vbar.xyz         | 2020/7/20  | 2023/7/20  |
| 24 | namesilo  | ltecn.com        | 2014/7/26  | 2025/7/26  |
| 25 | namesilo  | pornie.top       | 2016/3/10  | 2027/3/10  |
| 26 | west.cn   | sjcs.top         | 2017/9/5   | 2027/9/5   |
| 27 | west.cn   | imagemagick.top  | 2017/10/24 | 2027/10/24 |
| 28 | west.cn   | oppa.top         | 2015/12/29 | 2027/12/29 |
| 29 | west.cn   | kodis.top        | 2018/1/25  | 2028/1/25  |
| 30 | west.cn   | vpshz.top        | 2018/7/18  | 2028/7/18  |
| 31 | west.cn   | smdm.top         | 2018/9/10  | 2028/9/10  |
| 32 | west.cn   | commandline.top  | 2020/10/21 | 2029/10/21 |
| 33 | west.cn   | wxtx.top         | 2020/8/11  | 2030/8/11  |
| 34 | west.cn   | kjzx.top         | 2020/8/16  | 2030/8/16  |
| 35 | west.cn   | aido.cc          | 2020/9/22  | 2030/9/22  |
| 36 | west.cn   | ustv.top         | 2020/10/13 | 2030/10/13 |
| 37 | west.cn   | colorhexcode.top | 2021/1/27  | 2031/1/27  |
| 38 | west.cn   | rgbs.top         | 2021/2/25  | 2031/2/25  |
| 39 | west.cn   | autohotkey.top   | 2021/3/3   | 2031/3/3   |
| 40 | west.cn   | opensuse.top     | 2021/3/25  | 2031/3/25  |
| 41 | west.cn   | qgis.top         | 2021/8/23  | 2031/8/23  |
| 42 | west.cn   | hugotheme.top    | 2022/2/18  | 2032/2/18  |
| 43 | dnspod.cn | zjq.xyz          | 2021-08-06 | 2022-10-24 |
| 44 | dnspod.cn | alair.cn         | 2021-08-06 | 2022-12-10 |
| 45 | dnspod.cn | ymqd.net         | 2022-01-28 | 2023-03-03 |
| 46 | dnspod.cn | nasplus.cn       | 2022-01-28 | 2023-03-08 |
| 47 | dnspod.cn | manjushri.cn     | 2022-01-28 | 2023-03-11 |
| 48 | dnspod.cn | pushto.cn        | 2022-01-28 | 2023-03-12 |
| 49 | dnspod.cn | gfwlist.cn       | 2022-01-28 | 2023-03-23 |
| 50 | dnspod.cn | byhzg.cn         | 2022-01-28 | 2023-04-14 |
| 51 | west.cn   | guwendaquan.cn   | 2022/6/9   | 2023/6/9   |
| 52 | gandi.net | mua.wiki         | 2022/7/19  | 2023/7/19  |
+----+-----------+------------------+------------+------------+
52 rows in set (0.001 sec)

MariaDB [learnsql]>

解析

  • show databases; 显示所有数据库。
  • use learnsql; 使用learnsql数据库。
  • show tables; 显示所有表。
  • select * from domains; 读取数据表的信息。
  • 上面的表包含52条记录(每一条对应一个域名信息)和5个列(ID、ICP、DomainName、RegDate 和EndDate)。

SQL 语句 #

您需要在数据库上执行的大部分工作都由 SQL 语句完成。

下面的 SQL 语句从 “domains” 表中选取所有记录:

SELECT * FROM domains;

在本教程中,我们将为您讲解各种不同的 SQL 语句。

请记住…

SQL 对大小写不敏感:SELECT 与 select 是相同的。

SQL 语句后面的分号? #

某些数据库系统要求在每条 SQL 语句的末端使用分号。

分号是在数据库系统中分隔每条 SQL 语句的标准方法,这样就可以在对服务器的相同请求中执行一条以上的 SQL 语句。

在本教程中,我们将在每条 SQL 语句的末端使用分号。

一些最重要的 SQL 命令 #

  • SELECT - 从数据库中提取数据
  • UPDATE - 更新数据库中的数据
  • DELETE - 从数据库中删除数据
  • INSERT INTO - 向数据库中插入新数据
  • CREATE DATABASE - 创建新数据库
  • ALTER DATABASE - 修改数据库
  • CREATE TABLE - 创建新表
  • ALTER TABLE - 变更(改变)数据库表
  • DROP TABLE - 删除表
  • CREATE INDEX - 创建索引(搜索键)
  • DROP INDEX - 删除索引