主题
  • 默认模式
  • 浅蓝色模式
  • 淡绿色模式
  • 深夜模式

SQL 语法

SQL 于 1986 年被美国国家标准协会(ANSI)确立为标准,并于 1987 年成为国际标准化组织(ISO)的标准。

SQL 语句清晰直观,就像普通英语一样,但同样有着严格的语法规范。由一系列关键字标识符表达式构成,并以分号(;)结束。

✅ 从网站表中检索网址 'www.kaicz.com' 的网站信息,以下是对应的 SQL 语句:

SELECT name, url, alexa FROM website WHERE url = 'www.kaicz.com';

✅ 为了提高可读性,可以将上面的 SQL 语句格式化,语句如下:

SELECT name, url, alexa
FROM website
WHERE url = 'www.kaicz.com';

SQL 语句以分号进行显式终止,此举会将语句提交给数据库服务器执行。尽管并非所有数据库系统都强制依赖分号,但在语句末尾使用它仍被广泛推荐为最佳实践。

SQL 语法结构图


SQL 是否区分大小写

SQL 的关键字和命令是 “不区分大小写” 的,但数据库、表名、列名等标识符是否区分大小写取决于操作系统和数据库系统的配置。

1. 关键字通常不区分大小写

✅ 这意味着以下所有语句在绝大多数数据库系统中都是等效的:

sql
复制
SELECT * FROM website WHERE url = 'www.kaicz.com';
select * from website where url = 'www.kaicz.com';
Select * From website Where url = 'www.kaicz.com';
SeLeCt * FrOm website WhErE url = 'www.kaicz.com';

上述四条 SQL 语句在功能上是等价的,均用于从网站表中检索出网址为www.kaicz.com的网站信息。

提示:建议以大写形式编写 SQL 关键字,以使其与SQL语句中的其他文本区分开来,以便更好地理解。

2. 标识符取决于数据库系统和操作系统

数据库名、表名、列名、索引名等称为标识符,它们是否区分大小写取决于具体的数据库管理系统(DBMS)和其底层的操作系统。

✅ 以下是一些常见数据库系统和操作系统的大小写敏感性对照表:

系统/数据库 大小写敏感性 说明
Linux/Unix 系统 区分大小写 底层文件系统(如 ext4)本身对大小写敏感
Windows/macOS 系统 不区分大小写 底层文件系统(如 NTFS 和 APFS)默认对大小写不敏感
MySQL 取决于配置 取决于服务器和数据库的配置(字符集和校对规则 collation)
SQL Server 取决于配置 默认不区分大小写,但可以在安装时进行配置
PostgreSQL 默认区分大小写 使用双引号创建的表名区分大小写,不使用双引号则转换为小写

3. 数据取决于列的校对规则

存储在列中的实际数据(值)是否区分大小写,完全取决于该列或数据库设置的校对规则(Collation)。

✅ 例如,在 WHERE 子句中进行字符串比较时:

sql
复制
-- 如果列的校对规则是 'ci' (Case Insensitive)
SELECT * FROM website WHERE url = 'WWW.KAICZ.COM';
-- 这条语句可能会匹配到 'WWW.KAICZ.COM', 'www.kaicz.com', 'www.KAICZ.com' 等所有大小写变体。

-- 如果列的校对规则是 'cs' (Case Sensitive) 或 'bin' (Binary)
SELECT * FROM website WHERE url = 'WWW.KAICZ.COM';
-- 这条语句只会精确匹配 'WWW.KAICZ.COM',而不会匹配 'www.kaicz.com'。

因此,标识符和数据是否区分大小写则取决于具体的数据库系统、操作系统以及列的校对规则。


SQL 注释

注释是数据库引擎在执行时会忽略的文本段落,常用于为 SQL 语句提供解释或关键提示,以提高代码的可读性和可维护性。

✅ SQL 支持单行和多行注释。要编写单行注释,请使用两个连续的连字符(--)作为开始行。例如:

sql
复制
--检索网址为 'www.kaicz.com' 的网站信息
SELECT * FROM website WHERE url = 'www.kaicz.com';

✅ 如需编写多行注释,应在注释起始处添加 /*,在注释结束处添加 */,具体格式如下所示:

sql
复制
/* 检索网址为 'www.kaicz.com'
名称为 '开创者教程' 的网站信息 */
SELECT * FROM website WHERE url = 'www.kaicz.com' AND name = '开创者教程';


评论区 0
发表评论
教程介绍
SQL 是一种专门用来与数据库沟通、管理和操作关系型数据库的标准化编程语言。
3 章节
4 阅读
0 评论
教程目录