双引号与大小写
带引号:
CREATE TABLE public."Table1" ( id integer NOT NULL GENERATED ALWAYS AS IDENTITY ( INCREMENT 1 START 1 MINVALUE 1 MAXVALUE 2147483647 CACHE 1 ) ) TABLESPACE pg_default;
不带引号:
CREATE TABLE public.Table1 ( id integer NOT NULL GENERATED ALWAYS AS IDENTITY ( INCREMENT 1 START 1 MINVALUE 1 MAXVALUE 2147483647 CACHE 1 ) ) TABLESPACE pg_default;
上述 2 条创建表的语句,一个带引号,一个不带引号,这 2 条语句执行后,数据库中有了 2 张表,表名分别为:Table1、table1。
字段类似。查询语句也是类似。也就是说 PostgreSQL 的表名、字段名是大小敏感的。
当使用双引号时,原样存储、查询。这是 PostgreSQL 推荐的。
当不使用双引号时,转换成小写存储、查询。
单引号
单引号,和其他一样,就是代表的字符串。
那单引号内嵌双引号,这个双引号中的字符串,是否代表字段呢?比如:'abc"def"',是否会解析为:abc 这个字符串加上 def 这个字段的值呢?不会,它整个都是字符串。
能使用中括号吗?
在 SQL Server 中,当使用保留字对表、字段命名时,需要用中括号框起来,而且不是保留字,也可以框起来。PostgreSQL 是不能这样用的。