在 MySQL 查询中使用反引号 (`) 的好处?

Sat*_*dey 33 mysql select

在 MySQL 中,我们可以创建带有或不带有反引号 ( `) 符号的查询。例子:

  1. SELECT * FROM TEST;
  2. SELECT * FROM `TEST`;

两者都在 mysql-console 中工作正常。

它们之间有什么技术区别吗?

`与简单查询相比,使用 ( )有什么好处吗?

Wor*_*DBA 39

它们被称为带引号的标识符,它们告诉解析器将它们之间的文本作为文字字符串处理。当您有包含关键字或空格的列或表时,它们很有用。例如,以下将不起作用:

CREATE TABLE my table (id INT);
Run Code Online (Sandbox Code Playgroud)

但以下将:

CREATE TABLE `my table` (id INT);
Run Code Online (Sandbox Code Playgroud)

此外,以下内容会出错,因为COUNTis 是保留关键字:

SELECT count FROM some_table
Run Code Online (Sandbox Code Playgroud)

但以下内容将被正确解析:

SELECT `count` FROM some_table
Run Code Online (Sandbox Code Playgroud)

我希望这可以帮助你。


Fra*_*ens 28

如果你想在对象标识符周围使用一些东西,至少使用标准的双引号:"

这适用于 MySQL、PostgreSQL、SQL Server、Oracle 等。对于 MySQL,您可能需要SQL 模式 ansi_quotes,具体取决于默认配置:

SET sql_mode = 'ANSI_QUOTES';
Run Code Online (Sandbox Code Playgroud)

反引号 ` 仅在 MySQL 中使用,您将学习一种在任何其他品牌的 DBMS 中都不起作用的 SQL。


Rob*_*ley 6

这意味着您可以在表名中包含空格。当然不是特别吸引人。与 SQL Server 的 [] 相同。