Heim  >  Artikel  >  Datenbank  >  Warum müssen wir Backticks in MySQL-Anweisungen hinzufügen?

Warum müssen wir Backticks in MySQL-Anweisungen hinzufügen?

大家讲道理
大家讲道理Original
2017-04-16 14:31:582873Durchsuche

In der MySQL-Anweisung stoßen wir manchmal auf Backticks (``). Zuerst wusste ich nicht, was das bedeutet.


Select * from `member` order by posts desc limit 0,10;


Es dient zur Unterscheidung der reservierten Wörter von MYSQL mit gewöhnlichen Zeichen eingeleitet.

Zum Beispiel: SELECT `select` FROM `test` WHERE select='Field value'

In der Testtabelle , Wenn keine Backticks verwendet werden, betrachtet MYSQL select als reserviertes Wort und verursacht einen Fehler. Daher müssen Backticks hinzugefügt werden, um zu unterscheiden.

Anführungszeichen werden im Allgemeinen in Feldwerten verwendet, wenn der Feldwert ein Zeichen oder eine Zeichenfolge, Fügen Sie dann Anführungszeichen hinzu, wie zum Beispiel: select='field value'

Tabellen, die ohne Backticks erstellt wurden, können kein MYSQL enthalten Reservierte Wörter, sonst tritt ein Fehler auf

Backtick `, das Symbol links von der Zahl 1.

Reservierte Wörter können nicht in Tabellennamen verwendet werden , z. B. desc. Zur Unterscheidung müssen Backticks hinzugefügt werden, bei der Verwendung von Tabellennamen können Backticks jedoch ignoriert werden.

Create Table Desc hat einen Fehler gemeldet

Create Table „Desc“ war erfolgreich

Create Table `test `Erfolgreich

Drop-Table-Test erfolgreich

Reservierte Wörter können nicht für Feldnamen verwendet werden, wie z. B. desc Zu diesem Zeitpunkt müssen Backticks hinzugefügt werden, und Backticks müssen auch hinzugefügt werden, wenn Einfügen usw. verwendet wird.

Tabelle „test“(`desc` varchar(255)) erstellen erfolgreich

in test(desc)-Werte einfügen('fxf') ) fehlgeschlagen

Einfügen in Test(`desc`)-Werte('fxf') erfolgreich

Allgemeine reservierte MySQL-Wörter


Seien Sie bei der Verwendung von MySQL unbedingt vorsichtig , verwenden Sie seine reservierten Wörter nicht als Tabellennamen oder Spaltennamen, da sonst unerklärliche Fehler auftreten.

Gestern habe ich eine Tabelle mit einer Spalte namens „Intervall“ (Zeitintervall) erstellt. Infolgedessen konnte ich feststellen, dass das Intervall reserviert ist Wort von MySQL.

Wenn in Zukunft ähnliche Fehler auftreten, sollten Sie zunächst darüber nachdenken, ob sie durch Tabellennamen- oder Spaltennamenkonflikte verursacht werden.

Ich habe im Internet eine Liste reservierter MySQL-Wörter nur als Referenz gefunden.

ADD ALLE ÄNDERUNG
ANALYSE UND AS
ASC ASENSITIVE VOR
ZWISCHEN BIGINT BINÄR
BLOB BEIDE VON
CALL CASCADE CASE
CHANGE CHAR CHARAKTER
PRÜFEN SORTIEREN Spalte
BEDINGUNG VERBINDUNG BESCHRÄNKEN
WEITER KONVERTIEREN ERSTELLEN
KREUZ AKTUELL_DATUM AKTUELLE_ZEIT
AKTUELLER_ZEITSTAMP CURRENT_USER CURSOR
DATABASE DATABASES DAY_HOUR
DAY_MICROSECOND DAY_MINUTE DAY_SECOND
DEC DECIMAL DECLARE
STANDARD VERZÖGERT LÖSCHEN
DESC BESCHREIBEN DETERMINISTISCH
DISTINCT DISTINCTROW p
DOUBLE DROP DUAL
EACH ELSE ELSEIF
ENCLOSED ESCAPED EXISTS
EXIT EXPLAIN FALSE
FETCH FLOAT FLOAT4
FLOAT8 FÜR KRAFT
FOREIGN FROM VOLLTEXT
GOTO GRANT GROUP
HAVING HIGH_PRIORITY HOUR_MICROSECOND
HOUR_MINUTE HOUR_SECOND IF
IGNORIEREN IN INDEX
INDATEI INNER INOUT
UNEMPFINDLICH INSERT INT
INT1 INT2 INT3
INT4 INT8 INTEGER
INTERVALL INTO IS
ITERATE JOIN SCHLÜSSEL
SCHLÜSSEL KILL LABEL
FÜHREND VERLASSEN LINKS
LIKE LIMIT LINEAR
LINES LOAD LOCALTIME
LOCALTIMESTAMP LOCK LONG
LONGBLOB LONGTEXT LOOP
LOW_PRIORITY MATCH MEDIUMBLOB
MEDIUMINT MEDIUMTEXT MIDDLEINT
MINUTE_MICROSECOND MINUTE_SECOND MOD
ÄNDERUNGEN NATÜRLICH NICHT
NO_WRITE_TO_BINLOG NULL NUMERIC
EIN OPTIMIEREN OPTION
OPTIONAL ODER BESTELLUNG
OUT ÄUSSER OUTFILE
PRÄZISION PRIMÄR VERFAHREN
PURGE RAID0 RANGE
READ READS REAL
REFERENZEN REGEXP RELEASE
UMBENENNEN WIEDERHOLEN ERSETZEN
ERFORDERN EINSCHRÄNKEN RÜCKGABE
WIDERRUFEN RECHT RLIKE
SCHEMA SCHEMAS SECOND_MICROSECOND
SELECT SENSITIVE SEPARATOR
SET SHOW SMALLINT
SPATIAL SPEZIFISCH SQL
SQLEXCEPTION SQLSTATE SQLWARNING
SQL_BIG_RESULT SQL_CALC_FOUND_ROWS SQL_SMALL_RESULT
SSL STARTING STRAIGHT_JOIN
TABELLE BEENDET DANN
TINYBLOB TINYINT TINYTEXT
TO TRAILING TRIGGER
WAHR UNDO UNION
EINZIGARTIG UNLOCK UNSIGNED
UPDATE NUTZUNG USE
USING UTC_DATE UTC_TIME
UTC_TIMESTAMP VALUES VARBINARY
VARCHAR VARCHARACTER VARYING
WHEN WHERE WHILE
MIT WRITE X509
XOR YEAR_MONTH ZEROFILL

注:MySQL允许部分关键字用做未引起来的识别符,因为许多人以前曾使用过它们.如:AKTION、BIT、DATE、ENUM、NO、TEXT、TIME、TIMESTAMP


所以为了安全起见可以在表名和字段名上都加上``.

Das obige ist der detaillierte Inhalt vonWarum müssen wir Backticks in MySQL-Anweisungen hinzufügen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn