本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《
阿里云开发者社区用户服务协议
》和
《
阿里云开发者社区知识产权保护指引
》。如果您发现本社区中有涉嫌抄袭的内容,填写
侵权投诉表单
进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
本节书摘来自异步社区出版社《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