这些陈述之间是否存在根本区别
"select * from users where id = 1"
OR
"SELECT* FROM users WHERE id = 1"
OR
'select * from users where id = 1'
OR
'SELECT * FROM users WHERE id = 1'
我只是想知道......我总是使用第二种方法,但有些同事必然会使用其他方法。什么是最常见的惯例?
答案 0 :(得分:8)
您有两个不同的问题:
是否对SQL关键字使用大写或小写。这是一个品味问题。文档通常使用大写,但我建议您在特定项目中同意。
如何使用您的宿主语言引用SQL。由于在SQL中使用单引号('
)引用字符串,我建议您使用双引号("
)来引用宿主语言中的SQL语句(或引用引号( """
)如果你的宿主语言是python)。 SQL确实使用双引号,但仅适用于包含特殊字符的表,列和函数的名称,这些通常可以避免使用。
在C / C ++中,有第三种引用选项。如果您的编译器支持可变参数宏(在C99中引入),则可以定义:
#define SQL(...) #__VA_ARGS__
并使用SQL(SELECT * FROM users WHERE id = 1)
之类的SQL。优点是字符串可以跨越多行,而引用的字符串必须分别引用每一行。 python中的tripple引号用于同样的目的。
答案 1 :(得分:3)
它的工作方式没有区别,但通常我把SQL关键字放在大写中,所以它会是:
SELECT * FROM users WHERE id = 1
答案 2 :(得分:1)
上述任何一种都没有根本区别。但是,官方SQL标准直到并包括最新的SQL:2008,一直使用大写字母来区分字段和运算符。
答案 3 :(得分:1)
没有
没有区别。这完全取决于你的习惯。
想问一下C ++中这些代码块之间是否存在差异:
int main() {
}
OR
int
main()
{
}
OR
int main()
{
}
无论如何,编写SQL语句最常用的方法是在UPPERCASE中编写关键字。