相关文章推荐
旅行中的红茶  ·  SQL Server ...·  2 周前    · 
打盹的课本  ·  getObject 方法 ...·  2 周前    · 
阳光的弓箭  ·  pymysql ...·  1 周前    · 
坏坏的丝瓜  ·  "Android AudioTrack ...·  6 月前    · 
善良的荔枝  ·  JQuery中$.each ...·  1 年前    · 
追风的水煮鱼  ·  Android获取WIFI 的ssid ...·  1 年前    · 
本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《 阿里云开发者社区用户服务协议 》和 《 阿里云开发者社区知识产权保护指引 》。如果您发现本社区中有涉嫌抄袭的内容,填写 侵权投诉表单 进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

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

2.5 带有空格的列名

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

SELECT
Last Name
FROM Customers

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

SELECT
[Last Name]
FROM Customers

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

select
[last name]
from customers

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

数据库的差异:
 

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

2016-9-7 14:46:32 org.apache.catalina.core.StandardWrapperValve invoke 严重: Servlet.service() for servlet springMVC threw exception java.sql.SQLSyntaxErrorException: ORA-00904: "交易成功": 标识符无效at or hu灬yanke