2009-07-29 36 views
1

此問題基於this answer要理解SQL/DDL查詢中的一個句子

下列句子是什麼意思?

最後,不要使用混合大小寫 標識符。盡一切小寫, ,所以你不必引用它們。

這是否意味着我應該將諸如CREATE TABLE,USER_ID和NOT NULL之類的命令更改爲小寫? - 它不能,因爲它會違反常見的命名約定。

+1

您以驚人的速度持續「產生」問題,而不是試圖應付PostgreSQL文檔(順便說一下,這篇文章的寫作和組織很好)。 – 2009-07-29 12:40:27

+0

@Milen:文件沒有的部分是評價。我通過評估好的代碼和糟糕的代碼來學習。 - 如果我看到有些混亂,我問。我想明白,不要忽視。 – 2009-07-29 12:56:24

回答

2

不,我認爲這位先生提到使用全部小寫字母標識符,例如表,列等名稱。這應該對您使用的CREATE TABLE等命令沒有影響。

Marc

1

我不知道他爲什麼這麼說。在SQL Server中,至少,標識符的情況並不重要。也許它在其他DBMS系統中有效?

3

PostgreSQL,一個帶引號的標識符轉換爲小寫:

CREATE TABLE "MYTABLE" (id INT NOT NULL); 

CREATE TABLE "mytable" (id INT NOT NULL); 

INSERT 
INTO "MYTABLE" 
VALUES (1); 

INSERT 
INTO "mytable" 
VALUES (2); 

SELECT * 
FROM mytable; 

--- 
    2 

SELECT * 
FROM MYTABLE; 

--- 
    2 

兩個查詢將返回2,因爲它們對"mytable",不"MYTABLE"發出。

返回1(。即發出一個查詢對"MYTABLE",不"mytable"),你需要引用它:

SELECT * 
FROM "MYTABLE"; 

--- 
    1 

CREATE TABLE等等都沒有標識,他們是保留字。

您可以在任何情況下使用它們。