2010-07-21 25 views
3

CREATE TABLE countiesid INT(11)NOT NULL的auto_increment, county TINYTEXT NOT NULL, PRIMARY KEY(id) )TYPE = MyISAM數據;什麼時候應該在mySQL中使用``或''?

-- 
INSERT INTO `counties` VALUES (1, 'Alachua County'); 

我在這裏看到了一些模式。 人們使用``圍繞字段名稱並使用''來包圍值。 這是真的嗎?

或者這樣做的主要原因是因爲我們可以將代碼放在文本文件中並導入到數據庫中。

謝謝

回答

3

是的,你使用反引號[`]包圍現場,表和數據庫名稱。除非在字段/表名中使用空格,或者在SQL中具有特殊含義的單詞(例如:from,where),否則不需要它。

單引號[']用於包圍字符串。

+0

非常感謝你 – a2011 2010-07-21 03:34:27

2

使用``環繞字段名稱是特定於MySQL afaik;如果你希望你的SQL是可移植的,你可能想避免它。 table.column或schema.table.column表示法通常工作得很好,除非您在表名/列名中填入空格這樣做很愚蠢。

使用table.column也使得更難以迷路,如果你正在尋找一個大型的dtd與大量的表和列。

+0

非常感謝你 – a2011 2010-07-21 03:48:14

2

''對於字符串是相當普遍的 - 它適用於幾乎所有的編程語言,它在MySQL中對於字符串值是絕對必需的。 (你有時會看到'1',它可以工作,但是單引號是不必要的,實際上MySQL引擎可以處理整數值的工作更多。)

表和字段名稱的反引號是可選的。如果你沒有使用任何保留的關鍵字,它們是不必要的。但是,如果您錯誤地指定了一個類似select的列,則需要反引號以避免語法錯誤。一些程序員(以及任何自動查詢構建過程)都會使用反引號來保證安全。

相關問題