2010-05-25 3 views

Antwort

11

Für MySQL verwenden Sie Häkchen `.

Zum Beispiel:

SELECT `column`, `column2` FROM `table` 
15

für MS SQL verwenden [und]

SELECT [COLUMN], [COLUMN 2] FROM [TABLE] 
+1

Sie Leerzeichen in Spaltennamen mit MS SQL haben kann!?! –

+2

können Sie! Ich würde es aber nicht tun. – JMP

+1

Ja, Sie können Leerzeichen oder reservierte Wörter als Entitätsnamen in MSSQL haben. Sie müssen nur [] sie. – BoltBait

64

Die SQL-99-Standard specifies dass doppelte Anführungszeichen (") verwendet werden Kennungen abgrenzen

. Oracle, PostgreSQL, MySQL, MSSQL und SQlite unterstützen alle "als Trennzeichen für den Bezeichner (obwohl sie nicht alle" als "Standard" verwenden - zum Beispiel müssen Sie MySQL in 012 ausführenund SQL-Server unterstützt wird, nur wenn QUOTED_IDENTIFIERON ist.)

49

Nach SQLite,

  • 'foo' ist eine SQL-Zeichenfolge
  • "foo" wird eine SQL-Kennung (Spalte/table/etc)
  • [foo] ist ein Bezeichner in MS SQL
  • `foo` ist ein Bezeichner in MySQL

Für qualifizierte Namen, die Syntax ist: "t"."foo" oder [t].[foo] usw.

MySQL unterstützt den Standard "foo", wenn die ANSI_QUOTES Option aktiviert ist.

+3

Beachten Sie, dass SQLite '' foo' 'als Bezeichner interpretiert werden kann, wenn der Kontext keine Zeichenfolge zulässt, und '" foo "' als Zeichenfolge interpretiert wird, wenn der Kontext dort keine Kennung zulässt ist eine Anmerkung, dass dieses Verhalten in zukünftigen Versionen möglicherweise entfernt wird. – thomasrutter

+0

Also, wie machst du "t". *? – Loenix

+1

@thomasrutter Ja, ich wurde total von diesem Verhalten gebissen ... Versuchte 'WHERE" nonexistent_column "= 0' zu benutzen und sqlite führte es einfach so aus, als ob meine' 'nonexistent_column'' eine Zeichenkette wäre. Wenn Sie den Namen vollständig als "my_table" qualifizieren, führt "nonexistent_column" 'dazu, dass sich sqlite strenger verhält. – Rufflewind

1

Für DBASE/DBF Verwendung [ und ]

SELECT [DATE], [TIME], [ANY_OTHER_TO_BE_ESCAPED_COLUMN] FROM [TABLE] 
Verwandte Themen