SQL中的单引号和双引号有什么区别?

SQL中单引号和双引号之间的区别是什么?

单引号用于指示SQL中string的开始和结束。 双引号通常在SQL中不使用,但可以因数据库而异。

坚持使用单引号。

无论如何,这是主要的用途。 您可以对列别名使用单引号 – 您希望在应用程序代码中引用的列名称不是列在数据库中实际调用的名称。 例如: PRODUCT.id作为product_id可读性更好,因此您可以使用以下任一选项:

  • SELECT PRODUCT.id AS product_id
  • SELECT PRODUCT.id 'product_id'

可以在Oracle,SQL Server,MySQL …中使用,但是我知道有些人说TOAD IDE似乎在使用单引号的方法时会带来一些麻烦。

当列别名包含空格字符(如product id ,必须使用单引号,但不build议将列别名设置为多个单词。

单引号分隔string常量或date/时间常量。

双引号分隔例如表名或列名的标识符。 这通常只在您的标识符不符合简单标识符的规则时才有必要。

也可以看看:

  • 不同的数据库使用不同的名称报价?

你可以使MySQL按照ANSI标准使用双引号:

 SET GLOBAL SQL_MODE=ANSI_QUOTES 

您可以使Microsoft SQL Server按照ANSI标准使用双引号:

 SET QUOTED_IDENTIFIER ON 

在ANSI SQL中,双引号引用对象名称(例如表格),允许它们包含不允许的字符,或者与保留字(避免这种情况)相同。

单引号是用于string。

但是,MySQL不理会这个标准(除非它的SQL_MODE被改变了),并且允许它们在string中互换使用。

而且,Sybase和Microsoft也使用方括号来标识引用。

所以这是一个供应商特定的。

其他数据库,如Postgres和IBM,实际上坚持的是ANSI标准:)

  • [ S ]单引号是为了[ S ]的敲打; [ D ]双引号是[ D ]数据库标识符;
  • 符号与符号相同”,您可以使用启用ANSI_QUOTES

我使用这个助记符:

  • 单引号是string(一件事)
  • 双引号是表名和列名(两件事)

根据规格,这不是100%正确的,但这个助记符帮助我(人类)。