<p>SQLite可能是唯一使用良好的DBMS,它支持<a href="https://www.sqlite.org/lang_keywords.html" rel="nofollow noreferrer">multiple forms of escaping</a>空格、符号/字符和关键字:</p>
<p><strong>双引号(ANSI标准,由Oracle/DB2/Postgres/Teradata使用)</em></p>
<pre><code>cur.execute('''
CREATE TABLE "GuVY1" (
"id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE,
"Ertrag" INTEGER,
"Betriebskosten" INTEGER,
"Bruttobetriebsgewinn" INTEGER,
"Betriebsausgaben" INTEGER,
"Forschung und Entwicklung" INTEGER,
"Vertriebs- und Verwaltungskosten" INTEGER,
"Personalkosten" INTEGER,
"Abschreibung und Abgrenzungen" INTEGER,
"Sonstige Betriebskosten" INTEGER,
"Geschäftsaufwand" INTEGER,
"Betriebseinnahmen vor Zinsen und Steuern" INTEGER,
"Neutrale Erträge" INTEGER,
"Gewinn vor Einkommenssteuer" INTEGER,
"Steueraufwand" INTEGER,
"Nettogewinn für weitere Geschäftstätigkeit" INTEGER,
"Nettogewinn" INTEGER,
"Nettogewinn verfügbar für Aktionäre" INTEGER
)
''')
</code></pre>
<p><strong>Backticks</strong><em>(用于MySQL/MariaDB兼容性)</em></p>
<pre><code>cur.execute('''
CREATE TABLE `GuVY1` (
`id` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE,
`Ertrag` INTEGER,
`Betriebskosten` INTEGER,
`Bruttobetriebsgewinn` INTEGER,
`Betriebsausgaben` INTEGER,
`Forschung und Entwicklung` INTEGER,
`Vertriebs- und Verwaltungskosten` INTEGER,
`Personalkosten` INTEGER,
`Abschreibung und Abgrenzungen` INTEGER,
`Sonstige Betriebskosten` INTEGER,
`Geschäftsaufwand` INTEGER,
`Betriebseinnahmen vor Zinsen und Steuern` INTEGER,
`Neutrale Erträge` INTEGER,
`Gewinn vor Einkommenssteuer` INTEGER,
`Steueraufwand` INTEGER,
`Nettogewinn für weitere Geschäftstätigkeit` INTEGER,
`Nettogewinn` INTEGER,
`Nettogewinn verfügbar für Aktionäre` INTEGER
)
''')
</code></pre>
<p><strong>方括号</strong><em>(用于SQL Server/MS访问兼容性)</em></p>
<pre><code>cur.execute('''
CREATE TABLE [GuVY1] (
[id] INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE,
[Ertrag] INTEGER,
[Betriebskosten] INTEGER,
[Bruttobetriebsgewinn] INTEGER,
[Betriebsausgaben] INTEGER,
[Forschung und Entwicklung] INTEGER,
[Vertriebs- und Verwaltungskosten] INTEGER,
[Personalkosten] INTEGER,
[Abschreibung und Abgrenzungen] INTEGER,
[Sonstige Betriebskosten] INTEGER,
[Geschäftsaufwand] INTEGER,
[Betriebseinnahmen vor Zinsen und Steuern] INTEGER,
[Neutrale Erträge] INTEGER,
[Gewinn vor Einkommenssteuer] INTEGER,
[Steueraufwand] INTEGER,
[Nettogewinn für weitere Geschäftstätigkeit] INTEGER,
[Nettogewinn] INTEGER,
[Nettogewinn verfügbar für Aktionäre] INTEGER
)
''')
</code></pre>
<hr/>
<p>尽管如此,如上所述,请考虑使用字母数字字符(不是以数字开头)命名表/列标识符,并将下划线作为唯一符号,避免使用DBMS的关键字/保留字。这包括避免各种语言使用重音字符。这样做,你就避免了任何上述逃逸的需要。你知道吗</p>
<pre><code>cur.execute('''
CREATE TABLE GuVY1 (
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE,
Ertrag INTEGER,
Betriebskosten INTEGER,
Bruttobetriebsgewinn INTEGER,
Betriebsausgaben INTEGER,
Forschung_und_Entwicklung INTEGER,
Vertriebs_und_Verwaltungskosten INTEGER,
Personalkosten INTEGER,
Abschreibung_und_Abgrenzungen INTEGER,
Sonstige_Betriebskosten INTEGER,
Geschäftsaufwand INTEGER,
Betriebseinnahmen_vor_Zinsen_und_Steuern INTEGER,
Neutrale_Ertrage INTEGER,
Gewinn_vor_Einkommenssteuer INTEGER,
Steueraufwand INTEGER,
Nettogewinn_fur_weitere_Geschaftstatigkeit INTEGER,
Nettogewinn INTEGER,
Nettogewinn_verfugbar_fur_Aktionare INTEGER
)
''')
</code></pre>