摘要:在本教程中,我们将介绍 SQL 语法,它有助于您了解 SQL 语句的详细信息。
SQL 是一种声明式语言,因此,它的语法读起来像自然语言。SQL 语句以描述动作的动词开头,例如 SELECT、INSERT、UPDATE 或 DELETE。动词后面是主语和谓语。
谓语指定可以评估为真、假或未知的条件。
请看以下 SQL 语句
SELECT
first_name
FROM
employees
WHERE
YEAR(hire_date) = 2000;
Code language: SQL (Structured Query Language) (sql)
如您所见,它读起来像一个普通句子。
获取 2000 年聘用的员工的名字。在 SQL 语句中,SELECT first_name
、FROM employees
和 WHERE 都是子句。有些子句是必需的,例如 SELECT
和 FROM
子句,而另一些子句是可选的,例如 WHERE
子句。

由于 SQL 是专门为非技术人员设计的,因此它非常简单易懂。要编写 SQL 语句,您只需要说出您想要什么,而不是像 PHP、Java 和 C++ 这样的其他命令式语言那样说出您想要如何做。
SQL 是一种用户友好语言,因为它主要面向执行临时查询和生成报告的用户。
如今,SQL 被数据分析师、数据科学家、开发人员和数据库管理员等专业技术人员使用。
SQL 命令
SQL 由许多命令组成。每个 SQL 命令通常以分号 (;) 结尾。例如,以下是两个不同的 SQL 命令,它们以分号 (;) 分隔。
SELECT
first_name, last_name
FROM
employees;
DELETE FROM employees
WHERE
hire_date < '1990-01-01';
Code language: SQL (Structured Query Language) (sql)
SQL 使用分号 (;) 来标记命令的结束。
每个命令都由可以为文本、关键字、标识符或表达式的标记组成。标记由空格、制表符或换行符分隔。
文本
文本是显式值,也称为常量。SQL 提供三种类型的文本:字符串、数字和二进制。
字符串文本包含一个或多个用单引号引起来的大小写字母或数字字符,例如
'John'
'1990-01-01'
'50'
Code language: SQL (Structured Query Language) (sql)
50 是一个数字。然而,如果您用单引号将其引起来,例如 '50'
,SQL 会将其视为字符串文本。
通常情况下,SQL 区分字符串文本中的大小写,因此值 'John'
与 'JOHN'
不同。
数字文本为整数、小数或科学计数法,例如
200
-5
6.0221415E23
Code language: SQL (Structured Query Language) (sql)
SQL 使用符号 x'0000'
表示二进制值,其中每一位都是十六进制值,例如
x'01'
x'0f0ff'
Code language: SQL (Structured Query Language) (sql)
关键字
SQL 有许多具有特殊含义的关键字,例如 SELECT、INSERT、UPDATE、DELETE 和 DROP。这些关键字是保留字,因此,您不能将它们用作表、列、索引、视图、存储过程、触发器或其他数据库对象的名称。
标识符
标识符表示数据库中的特定对象,如表、列、索引等。SQL 对于关键字和标识符不区分大小写。
以下语句是等价的。
Select * From employees;
SELECT * FROM EMPLOYEES;
select * from employees;
SELECT * FROM employees;
Code language: SQL (Structured Query Language) (sql)
为了使 SQL 命令更具可读性和清晰性,我们在整个教程中都将使用大写 SQL 关键字和小写标识符。
注释
要记录 SQL 语句,请使用 SQL 注释。在解析带注释的 SQL 语句时,数据库引擎会忽略注释中的字符。
用两个连续连字符(--
)指示注释,这会让你可以注释余下的行。 请参见以下示例。
SELECT
employee_id, salary
FROM
employees
WHERE
salary < 3000;-- employees with low salary
Code language: SQL (Structured Query Language) (sql)
这是一条 SQL 注释。
-- employees with low salary
Code language: SQL (Structured Query Language) (sql)
若要记录跨越多行的代码,可以使用如下语句中显示的多行 C 风格符号 (/**/
)
/* increase 5% for employees whose salary is less than 3,000 */
UPDATE employees
SET
salary = salary * 1.05
WHERE
salary < 3000;
Code language: SQL (Structured Query Language) (sql)
在本教程中,我们向你介绍了 SQL 语法,它可以帮助你了解 SQL 语句的每个组成部分。
若要更有效地学习 SQL 语言,你需要有一个合适的 示例数据库 进行练习。在下一教程中,我们将向你介绍一个简单的 SQL 数据库。