每当我们创建表时,只需在任何数据库系统中指定为
CREATE TABLE table_name
。当我们在postgre中创建表时,我们使用CREATE TABLE "tabl_name"
。在postgreSql中使用双引号" "
创建表是否有区别?CREATE TABLE table_name
。当我们在postgre中创建表时,我们使用CREATE TABLE "tabl_name"
。在postgreSql中使用双引号" "
创建表是否有区别?CREATE TABLE TestTable...
这意味着可以使用以下所有内容来引用该表:
TESTTABLE、testtable、TesTTabLe
而如果在创建语句中使用引号:
CREATE TABLE "TestTable"...
那么只能使用“TestTable”来引用此表,其他名称将无法使用。如果您只使用小写字母,那么与SQL标准相反,它不会有任何区别。
如果您使用任何没有引号的大写字母,它将被转换为小写字母。
如果您使用任何带引号的大写字母,它将不会被转换,并且您必须始终使用它来访问此表格(或列或任何其他标识符)。
最好不要在标识符中使用引号。
实际上有一些不同之处。
双引号告诉解析器所包含的内容是一个区分大小写的标识符,要按字面意义读取。
这导致了许多不同之处。您可以做以下事情:
CREATE TABLE "table" ( ... );
但不是
CREATE TABLE table (...);
它不仅区分大小写(PostgreSQL将未加引号的标识符折叠为小写),而且可以包含其他被禁止的关键字。
这意味着之后您必须使用类似以下的内容:
SELECT * FROM "table"
但你做不到
SELECT * FROM table
CREATE TABLE "Foo"...
时使用了“Foo”,那么没有引号的 FOO 将无法匹配表名 - 因此SELECT * FROM FOO
将无法工作。 - DB5FOO
将在尝试匹配Foo
之前变成foo
,并且没有任何有用的结果。 - mu is too short