参考:https://blog.csdn.net/zengchaoyue/article/details/8279744
问题描述:
使用pgAdmin新建了一个表user,添加了id、name、enScore三个字段。在user表中添加了几条记录后,使用select * from user;查询没有问题,会显示user表中的所有记录。在执行select name,enScore from user;查询失败,提示“column enScore does not exist”。
仔细查看建表脚本,发现enScore加了双引号,所以修改查询语句为select name,"enScore" from user;查询成功。
CREATE TABLE test."user"
(
id integer NOT NULL,
name character varying(80) NOT NULL,
"enScore" double precision NOT NULL,
CONSTRAINT primarykey PRIMARY KEY (id)
)
WITH (
OIDS=FALSE
);
ALTER TABLE test."user"
OWNER TO test;
结论:
1)pg数据库对表名、字段名是区分大小写的,通过pgAdmin建表时正常创建,用SQL语句的时候需要加双引号,如果jdbc查询等处,记得使用转义符号。
2)pg在SQL语句中对大小写是不敏感的,
例如select id from user;与select ID from user;结果是一样的,但是select "enScore" from user 是OK的,但select "enscore" from user 是不对的。