SQL中单引号和双引号的区别是什么?
当前回答
要记住两件事:
单个Qutoes('):字符串或文本
select * from employees where room_name = 'RobinCapRed';
其中RobinCapRed是一个字符串或文本。
双引号("):列名或表名
select "first_name" from "employees";
where first_Name是员工表的列名
其他回答
要记住两件事:
单个Qutoes('):字符串或文本
select * from employees where room_name = 'RobinCapRed';
其中RobinCapRed是一个字符串或文本。
双引号("):列名或表名
select "first_name" from "employees";
where first_Name是员工表的列名
区别在于它们的用法。单引号主要用于WHERE、HAVING和一些内置SQL函数(如CONCAT、STRPOS、POSITION等)中引用字符串。
当你想使用一个中间有空格的别名时,你可以使用双引号来引用这个别名。
例如
(select account_id,count(*) "count of" from orders group by 1)sub
下面是来自订单表的子查询,其中account_id作为外键,我正在聚合以了解每个帐户下了多少订单。在这里,为了方便起见,我给一列取了任意随机名称“count of”。
现在让我们编写一个外部查询来显示“count of”大于20的行。
select "count of" from
(select account_id,count(*) "count of" from orders group by 1)sub where "count of" >20;
您也可以将相同的情况应用于公共表表达式。
我用这个助记符:
单引号是用于字符串的(一件事) 双引号用于表名和列名(两件事)
根据说明书,这不是100%正确的,但这个助记符帮助了我(人类)。
一个简单的规则让我们记住在什么情况下使用什么:
[S]单引号用于[S]字符串字面量(日期字面量也是字符串); [D]双引号是数据库标识符;
例子:
INSERT INTO "USERS" ("LOGIN", "PASSWORD", "DT_BIRTH") VALUES ('EDUARDO', '12345678', '1980-09-06');
在MySQL和MariaDB中,'(反标记)符号与"符号相同。注意,当SQL_MODE启用了ANSI_QUOTES时,不能使用“”作为文本字符串。
单引号分隔字符串常量或日期/时间常量。
双引号分隔标识符,例如表名或列名。这通常只在标识符不符合简单标识符规则时才有必要。
参见:
不同的数据库使用不同的名称引用吗?
你可以让MySQL使用ANSI标准的双引号:
SET GLOBAL SQL_MODE=ANSI_QUOTES
你可以让Microsoft SQL Server使用ANSI标准的双引号:
SET QUOTED_IDENTIFIER ON
推荐文章
- django test app error -在创建测试数据库时出现错误:创建数据库的权限被拒绝
- 在Android SQLite中处理日期的最佳方法
- 如何在MySQL表中移动列?
- 在SQL Server中查找重复的行
- 从DateTime中提取小时(SQL Server 2005)
- LEFT OUTER JOIN如何返回比左表中存在的记录更多的记录?
- 如何用SQL语句计算百分比
- Postgres唯一约束与索引
- SQL Server动态PIVOT查询?
- MySQL对重复键更新在一个查询中插入多行
- JavaScript中的转义引号
- 使用{merge: true}设置的Firestore与更新之间的差异
- 向现有表添加主键
- mysql_connect():[2002]没有这样的文件或目录(试图通过unix:///tmp/mysql.sock连接)在
- 使用电子邮件地址为主键?