Maison > Article > base de données > Pourquoi devons-nous ajouter des backticks dans les instructions MySQL ?
Dans la déclaration MySQL, on rencontre parfois souvent des backticks (`` Au début, je ne savais pas ce que ça signifiait.
Select * from `member` order by posts desc limit 0,10;
Il s'agit de distinguer les mots réservés de MYSQL introduit avec des personnages ordinaires.
Par exemple : SELECT `select` FROM `test` WHERE select='Field value'
Dans la table de test, il y a un champ de sélection. Si aucun backticks n'est utilisé, MYSQL considérera select comme un mot réservé et provoquera une erreur. Par conséquent, si a un mot réservé MYSQL comme champ, des backticks doivent être ajoutés pour distinguer .
Les guillemets sont généralement utilisés dans les valeurs de champ, si la valeur du champ est un caractère ou une chaîne, Ajoutez ensuite des guillemets , tels que : select='field value'
Les tables construites sans backticks ne peuvent pas contenir MYSQL Mots réservés, sinon une erreur se produit
Backtick `, le symbole à gauche du chiffre 1.
Les mots réservés ne peuvent pas être utilisés dans les noms de table , tels que desc. Des backticks doivent être ajoutés pour les distinguer, mais les backticks peuvent être ignorés lors de l'utilisation de noms de table.
créer une table desc a signalé une erreur
créer une table `desc` a réussi
créer une table `test `Réussi
test de suppression de table réussi
Les mots réservés ne peuvent pas être utilisés pour les noms de champs, tels que desc , à ce stade, des backticks doivent être ajoutés, et des backticks doivent également être ajoutés lors de l'utilisation de l'insertion, etc.
créer la table `test`(`desc` varchar(255)) a réussi
insérer dans test(desc) valeurs('fxf' ) a échoué
insérer dans test(`desc`) valeurs('fxf') a réussi
Mots réservés courants dans MySQL
Soyez prudent lorsque vous utilisez MySQL , n'utilisez pas ses mots réservés comme noms de table ou de colonne, sinon des erreurs inexplicables se produiront.
Hier, j'ai créé une table avec une colonne nommée intervalle (intervalle de temps). Par conséquent, les données n'ont pas pu être insérées. Enfin, j'ai découvert que l'intervalle est réservé. mot de MySQL.
Si des erreurs similaires se produisent à l'avenir, vous devez d'abord vous demander si elles sont causées par des conflits de noms de table ou de noms de colonnes.
J'ai trouvé une liste de mots réservés MySQL sur Internet à titre de référence uniquement.
AJOUTER | TOUS | ALTER |
ANALYSER | ET | COMME |
ASC | ASENSIBLE | AVANT |
ENTRE | BIGINT | BINAIRE |
BLOB | LES DEUX | PAR |
APPEL | CASCADE | CAS |
CHANGEMENT | CHAR | CARACTÈRE |
VÉRIFIER | ASSEMBLER | COLONNE |
ÉTAT | CONNEXION | CONTRAINTE |
CONTINUER | CONVERTIR | CRÉER |
CROSS | CURRENT_DATE | CURRENT_TIME |
CURRENT_TIMESTAMP | CURRENT_USER | CURSEUR |
BASE DE DONNÉES | BASES DE DONNÉES | DAY_HOUR |
DAY_MICROSECOND | DAY_MINUTE | DAY_SECOND |
DEC | DECIMAL | DÉCLARE |
DÉFAUT | RETARDÉ | SUPPRIMER |
DESC | DÉCRIRE | DÉTERMINISTE |
DISTINCT | DISTINCTROW | p |
DOUBLE | DROP | DOUBLE |
CHAC | AUTRE | ELSESI |
FERMÉ | ÉCHAPPÉ | EXISTE |
SORTIE | EXPLIQUER | FAUX |
FETCH | FLOAT | FLOAT4 |
FLOAT8 | POUR | FORCE |
ÉTRANGER | DE | TEXTE COMPLET |
GOTO | subvention | GROUPE |
AVANT | HIGH_PRIORITY | HOUR_MICROSECOND |
HOUR_MINUTE | HOUR_SECOND | IF |
IGNORER | IN | INDEX |
INFILE | INTÉRIEUR | INOUT |
INSENSIBLE | INSERT | INT |
INT1 | INT2 | INT3 |
INT4 | INT8 | INTEGER |
INTERVALLE | INTO | EST |
ITERATE | JOIN | CLÉ |
CLÉS | TUER | ÉTIQUETTE |
EN DIRECT | PARTIR | GAUCHE |
COMME | LIMITE | LINÉAIRE |
LIGNES | CHARGER | LOCALTIME |
LOCALTIMESTAMP | VERROUILLAGE | LONG |
LONGBLOB | LONGTEXT | LOOP |
LOW_PRIORITY | MATCH | MEDIUMBLOB |
MEDIUMINT | MEDIUMTEXT | MIDDLEINT |
MINUTE_MICROSECOND | MINUTE_SECOND | MOD |
MODIFIE | NATUREL | PAS |
NO_WRITE_TO_BINLOG | NULL | NUMERIC |
ON | OPTIMISER | OPTION |
OPTIONNELLEMENT | OU | COMMANDE |
OUT | EXTÉRIEUR | OUTFILE |
PRÉCISION | PRIMAIRE | PROCÉDURE |
PURGE | RAID0 | GAMME |
LECTURE | LECTURES | REAL |
REFERENCES | REGEXP | RELEASE |
RENAME | REPEAT | REMPLACER |
EXIGER | RESTRICTER | RETOUR |
REVOQUE | DROITE | RLIKE |
SCHEMA | SCHEMAS | SECOND_MICROSECONDE |
SELECT | SENSIBLE | SEPARATEUR |
SET | AFFICHER | SMALLINT |
SPATIAL | SPÉCIFIQUE | SQL |
SQLEXCEPTION | SQLSTATE | SQLWARNING |
SQL_BIG_RESULT | SQL_CALC_FOUND_ROWS | SQL_SMALL_RESULT |
SSL | STARTING | STRAIGHT_JOIN |
TABLE | TERMINÉE | PUIS |
TINYBLOB | TINYINT | TINYTEXT |
TO | TRAILING | TRIGGER |
VRAI | ANNULER | UNION |
UNIQUE | DÉVERROUILLER | NON SIGNÉ |
MISE À JOUR | UTILISATION | UTILISATION |
UTILISATION | UTC_DATE | UTC_TIME |
UTC_TIMESTAMP | VALUES | VARBINARY |
VARCHAR | VARCHARACTER | VARIANT |
QUAND | OÙ | PENDANT |
AVEC | ÉCRIRE | X509 |
XOR | ANNÉE_MOIS | ZEROFILL |
注:MySQL允许部分关键字用做未引起来的识别符,因为许多人以前曾使用过它们。如:ACTION、BIT、DATE、ENUM、NO、TEXT、TIME、TIMESTAMP
所以为了安全起见可以在表名和字段名上都加上``。
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!