2010-07-21 104 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的列,则需要反引号以避免语法错误。一些程序员(以及任何自动查询构建过程)都会使用反引号来保证安全。

相关问题