Was ist der Unterschied zwischen einfachen und doppelten Anführungszeichen in SQL?
Einfache Anführungszeichen geben den Anfang und das Ende einer Zeichenfolge in SQL an. Doppelte Anführungszeichen werden in SQL im Allgemeinen nicht verwendet, dies kann jedoch von Datenbank zu Datenbank variieren.
Halten Sie sich an einfache Anführungszeichen.
Das ist sowieso die Hauptverwendung. Sie können einfache Anführungszeichen für einen Spaltenalias verwenden. Dabei soll der Spaltenname, auf den Sie in Ihrem Anwendungscode verweisen, nicht der Name der Spalte in der Datenbank entsprechen. Zum Beispiel: PRODUCT.id
wäre besser lesbar als product_id
, also verwenden Sie eine der folgenden Methoden:
SELECT PRODUCT.id AS product_id
SELECT PRODUCT.id 'product_id'
Entweder funktioniert es in Oracle, SQL Server, MySQL ... aber ich weiß, dass einige gesagt haben, dass die TOAD IDE bei Verwendung des Ansatzes in einfachen Anführungszeichen etwas Kummer zu bereiten scheint.
Sie müssen einfache Anführungszeichen verwenden, wenn der Spaltenalias beispielsweise ein Leerzeichen enthält. Es product id
wird jedoch nicht empfohlen, dass ein Spaltenalias mehr als ein Wort enthält.
SELECT * FROM USERS 'Users'
funktioniert nicht in SQL Server,SELECT * FROM USERS "Users"
funktioniert aber .SELECT PRODUCT.id 'product_id'
wird nicht in Oracle arbeiten. Einfache Anführungszeichen gelten nur für Zeichenliterale. Sie können nicht für Bezeichner in (Standard-) SQL verwendet werden (obwohl einige DBMS den SQL-Standard bei Anführungszeichen in Anführungszeichen einfach ignorieren)Eine einfache Regel für uns, um uns daran zu erinnern, was in welchem Fall zu verwenden ist:
In MySQL und MariaDB, die ` ist (Graviszeichen) Symbol das gleiche wie das „ Symbol. Sie können verwenden “ , wenn Ihr
SQL_MODE
istANSI_QUOTES
aktiviert.quelle
Einfache Anführungszeichen begrenzen eine Zeichenfolgenkonstante oder eine Datums- / Zeitkonstante.
Doppelte Anführungszeichen begrenzen Bezeichner für z. B. Tabellennamen oder Spaltennamen. Dies ist im Allgemeinen nur erforderlich, wenn Ihr Bezeichner nicht den Regeln für einfache Bezeichner entspricht.
Siehe auch:
Sie können MySQL dazu bringen, doppelte Anführungszeichen gemäß dem ANSI-Standard zu verwenden:
Sie können Microsoft SQL Server dazu bringen, doppelte Anführungszeichen gemäß dem ANSI-Standard zu verwenden:
quelle
In ANSI SQL zitieren doppelte Anführungszeichen Objektnamen (z. B. Tabellen), die es ihnen ermöglichen, Zeichen zu enthalten, die ansonsten nicht zulässig sind, oder mit reservierten Wörtern identisch zu sein (Vermeiden Sie dies wirklich).
Einfache Anführungszeichen stehen für Zeichenfolgen.
MySQL kennt den Standard jedoch nicht (es sei denn, sein SQL_MODE wird geändert) und ermöglicht die austauschbare Verwendung für Zeichenfolgen.
Darüber hinaus verwenden Sybase und Microsoft auch eckige Klammern für die Angabe von Bezeichnern.
Es ist also ein bisschen herstellerspezifisch.
Andere Datenbanken wie Postgres und IBM halten sich tatsächlich an den Ansi-Standard :)
quelle
Ich benutze diese Mnemonik:
Dies ist nicht 100% korrekt gemäß den Spezifikationen, aber diese Mnemonik hilft mir (Mensch).
quelle
Der Unterschied liegt in ihrer Verwendung. Die einfachen Anführungszeichen werden meistens verwendet, um auf eine Zeichenfolge in WHERE, HAVING und auch in einigen integrierten SQL-Funktionen wie CONCAT, STRPOS, POSITION usw. zu verweisen.
Wenn Sie einen Alias verwenden möchten, zwischen dem Platz ist, können Sie doppelte Anführungszeichen verwenden, um auf diesen Alias zu verweisen.
Beispielsweise
Hier ist eine Unterabfrage aus einer Auftragstabelle mit account_id als Fremdschlüssel, die ich aggregiere, um zu wissen, wie viele Bestellungen jedes Konto aufgegeben hat. Hier habe ich einer Spalte aus Gründen des Zwecks einen zufälligen Namen als "Anzahl" gegeben.
Schreiben wir nun eine äußere Abfrage, um die Zeilen anzuzeigen, in denen "count of" größer als 20 ist.
Sie können den gleichen Fall auch auf allgemeine Tabellenausdrücke anwenden.
quelle