Sqlite-在Python中使用反引号(`)或双引号(“)
我在Stack Overflow中看到了一个与Android有关的类似问题,但是我想知道是否应该使用反引号(`)或双引号(“)-使用Python-
选择表名或rowid或您拥有什么。
我试过单引号-这样select 'rowid', * from 'tbl' order by
'rowid'
。单引号在某些情况下有效,但并非全部。我学会了使用双引号或反引号,而我在查看时SQLite Database
Browser
发现它使用了反引号。
我真的很想在Python中用双引号引起来,因为我来自Java,因此很自然cursor.execute("select 'rowid',* from
'table';")
,而且反引号也很容易(双引号需要反斜杠,并使查询看起来很漂亮)。有点混乱)。但是,我只是想确保反引号是可移植的(Windows,Linux,Os
x等所有版本)。
-
SQL标准说,字符串必须使用
'single quotes'
,并且标识符(例如表名和列名)在加引号时必须使用"double quotes"
。为了与MySQL兼容,SQLite还允许对标识符使用单引号,对字符串使用双引号,但仅在上下文使含义明确时才使用。(在中
SELECT 'rowid' ...
,允许使用字符串,因此可以得到字符串。)如果可能,请始终使用标准SQL引号。为了与MySQL兼容,SQLite还允许
backticks
使用标识符。为了与Microsft数据库兼容,SQLite还允许
[brackets]
使用标识符。(这适用于所有SQLite版本。)