sql >> Databasteknik >  >> RDS >> Mysql

Använder olika databaser olika namncitat?

Denna användning av citattecken kallas avgränsade identifierare. Det är en viktig del av SQL eftersom du annars inte kan använda identifierare (t.ex. tabellnamn och kolumnnamn) som:

  • Inkludera blanksteg:"mitt bord"
  • Inkludera specialtecken och skiljetecken:"my-table"
  • Inkludera internationella tecken:"私のテーブル"
  • Är skiftlägeskänsliga:"MyTable"
  • Matcha SQL-sökord:"tabell"

Standard-SQL-språket använder dubbla citattecken för avgränsade identifierare:

SELECT * FROM "my table";

MySQL använder bakåtcitat som standard. MySQL kan använda vanliga dubbla citattecken:

SELECT * FROM `my table`;
SET SQL_MODE=ANSI_QUOTES;
SELECT * FROM "my table";

Microsoft SQL Server och Sybase använder parenteser som standard. De kan båda använda vanliga dubbla citattecken på detta sätt:

SELECT * FROM [my table];
SET QUOTED_IDENTIFIER ON;
SELECT * FROM "my table";

InterBase och Firebird måste ställa in SQL-dialekten till 3 för att stödja avgränsade identifierare.

De flesta andra märken av databas använder dubbla citattecken korrekt.



  1. Använda ODBC-data i RapidMiner

  2. Kan någon förklara vad MERGE-satsen verkligen gör i Oracle?

  3. Upptäck om ett värde innehåller minst en numerisk siffra i SQLite

  4. SQL Server-exekveringsplan — vad är det och hur hjälper det med prestandaproblem?