当前位置: 首页 > 面试题库 >

SQL语句中的反引号和方括号有什么区别?

凌和颂
2023-03-14
问题内容

我以为还会有另一个问题,但我找不到。在使用PHP的MySQL中,我通常用反引号封装字段名,以掩盖任何保留的名称或字符。但是,我的一位同事指出,这也可以使用方括号来实现。排除反引号与SQL
Server不兼容的事实(显然),有什么区别?我应该使用哪个?

SELECT `username` FROM `users`
SELECT [username] FROM [users]

问题答案:

SQL Server / T-SQL使用方括号(以及MS Access),而MySQL使用反引号。

据我所知,可以在文档中露面,或在测试中使用,方括号是
不是 有效的MySQL。因此,如果需要在SQL
Server中将关键字作为表名括起来,请使用[],而在MySQL中请使用反引号,或在ANSI_QUOTES启用时使用双引号。

从文档中:

标识符引号是反引号(“`”):

mysql> SELECT * FROM `select` WHERE `select`.id > 100;

如果启用了ANSI_QUOTES SQL模式,则也可以在双引号中引起标识符的引用:

mysql> CREATE TABLE "test" (col INT);
ERROR 1064: You have an error in your SQL syntax...
mysql> SET sql_mode='ANSI_QUOTES';
mysql> CREATE TABLE "test" (col INT);
Query OK, 0 rows affected (0.00 sec)


 类似资料:
  • 这里我理解哈希(#)符号将定义为本地模板变量,但是前面的星号是什么意思呢?还有,有必要吗? 下面是使用括号的示例: 我有点理解周围的括号将它绑定到HTML属性/Angular指令。这是否意味着它们是Angular计算表达式的指针?就像是Angular 1中的的等价物? 我猜真正的问题是,这些符号在Angular 2中有特殊的含义吗,知道何时使用每一个的最简单的方法是什么?谢谢!!

  • 问题内容: SQL中的单引号和双引号有什么区别? 问题答案: 单引号用于指示SQL中字符串的开头和结尾。在SQL中通常不使用双引号,但每个数据库的双引号可能会有所不同。 坚持使用单引号。 无论如何,这是主要用途。您可以为列别名使用单引号- 您希望在应用程序代码中引用的列名可以是数据库中实际未调用的列名。例如:的可读性更高,因此您可以使用以下两种方式之一: 两者都可以在Oracle,SQL Serv

  • 问题内容: 不知道这是否是Mozilla特定的JS语法,但是我经常发现以这种方式声明变量,例如,在附加SDK docs中: 并在各种Chrome Javascript中(使用代替的语句), 我发现这很令人困惑,但即使在MDN上,我也找不到有关这两种语法的任何文档。 问题答案: 它们都是JavaScript 1.7的功能。第一个是block-level variables: : 允许您声明变量,将其

  • 问题内容: 在codeigniter手册中写道: $ this-> db-> select()接受可选的第二个参数。如果将其设置为FALSE,则CodeIgniter不会尝试使用反引号保护您的字段或表名。如果您需要复合选择语句,这将很有用。 我从CI应用程序之一中获得以下代码。 Q1。反引号`和单引号’有什么区别? Q2。我可以在上述查询中使用IF语句吗? Q3。这是什么意思? 问题答案: 在My

  • 我正在阅读关于if的bash示例,但有些示例是用单方括号编写的: 其他带双方括号: 有什么区别?

  • 问题内容: 我对以下代码行的语法感到困惑: 数据框对象由2列(“大脑”和“身体”)组成 当我打印x_values时,我得到这样的东西: 就dataframe对象的属性和方法而言,我知道pandas文档,但双括号语法使我感到困惑。 问题答案: 考虑一下: 来源DF: 选择一列-生成Pandas.Series: 选择DataFrame的子集-结果为DataFrame: 结论: 第二种方法允许我们从Da