《SQL初学者指南(第2版)》——2.5 带有空格的列名

简介:

本节书摘来自异步社区出版社《SQL初学者指南(第2版)》一书中的第2章,第2.6节,作者:【美】Larry Rockoff,更多章节内容可以访问云栖社区“异步社区”公众号查看。

2.5 带有空格的列名

如果列的名称中有空格,该怎么办?例如,假设LastName列的列名用的是Last Name(两个单词间插入了一个空格)。显然,下面这条语句是无效的:

SELECT
Last Name
FROM Customers
AI 代码解读

因为Last和Name不是列名,所以这条语句被认为是无效的。况且,即使Last和Name是正确的列名,它们之间也需要用逗号隔开。解决方案就是,用特殊的字符把所有包含空格的列名括起来。根据你所使用的数据库,这里所采用的字符也不同。对于Microsoft SQL Server,使用的字符是方括号,正确的语法如下所示:

SELECT
[Last Name]
FROM Customers
AI 代码解读

关于语法,还有另外一点要注意,就像关键字不区分大小写一样,表名和列名也不区分大小写。例如,前面的示例等同于:

select
[last name]
from customers
AI 代码解读

为了清晰起见,在本书中,我们会把所有的关键字全部用大写形式印刷,把表名和列名以首字母大写的形式印刷,但是请注意,并不是一定要这么做。

数据库的差异:
 

MySQL和Oracle 在MySQL中,用重音符(')把包含空格的列名括起来。语法如下所示: SELECT Last Name FROM Customers; 在Oracle中,用双引号把带有空格的列名括起来。语法如下所示: SELECT "Last Name" FROM Customers; 此外,与Microsoft SQL Server和MySQL不同的是,在Oracle中,用双引号括起来的列名是区分大小写的。这就意味着,上述的语句不能等同于: SELECT "LAST NAME" FROM Customers;

目录
打赏
0
0
0
0
1819
分享
相关文章
|
11月前
|
20、绕过去除and、or、union select、空格的sql注入
20、绕过去除and、or、union select、空格的sql注入
194 0
mysql中执行 sql 语句报语法错误引出的代码空格问题
根据报错提示 sql 语法错误,错误状态码 1064,网上很多人说是使用了 mysql 保留关键字,没用反单引号``包起来,或者普通字符串使用了反单引号这些...反正大部分都是说引号这块出了问题,但一遍遍地检查确实又都没发现问题
20、绕过去除and、or、union select、空格的sql注入
20、绕过去除and、or、union select、空格的sql注入
277 0
20、绕过去除and、or、union select、空格的sql注入
SQL去除数据库表中tab、空格、回车符等特殊字符的解决方法
原文:SQL去除数据库表中tab、空格、回车符等特殊字符的解决方法 按照ASCII码, SELECT char(64) 例如64 对应 @,则 SELECT REPLACE('abc@qq.
3913 0
MS SQL SERVER搜索某个表的主键所在的列名
原文:MS SQL SERVER搜索某个表的主键所在的列名   SELECT SYSCOLUMNS.name  FROM SYSCOLUMNS,SYSOBJECTS,SYSINDEXES,SYSINDEXKEYS   WHERE SYSCOLUMNS.
1085 0
sql中替换空格怎么也替换不掉
需要以文本格式显示结果 查看 发现有空格及换行 执行 select replace([编号],' ','|') from  t_bidding_card where id=369 解决
788 0

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等