標籤:body time inf arch asc msu cape warning start
在MySQL語句中我們有時候經常會遇到反引號(``),剛開始的時候不知道什麼意思,他是什麼作用呢?
Select * from `member` order by posts desc limit 0,10;
它是為了區分MYSQL的保留字與一般字元而引入的符號。舉個例子:SELECT `select` FROM `test` WHERE select=‘欄位值‘在test表中,有個select欄位,如果不用反引號,MYSQL將把select視為保留字而導致出錯,所以,有MYSQL保留字作為欄位的,必須加上反引號來區分。 引號一般用在欄位的值,如果欄位值是字元或字串,則要加引號,如:select=‘欄位值‘ 不加反引號建的表不能包含MYSQL保留字,否則出錯 反引號`,數字1左邊的符號。保留字不能用於表名,比如desc,此時需要加入反引號來區別,但使用表名時可忽略反引號。create table desc報錯create table `desc`成功create table `test`成功drop table test成功保留字不能用於欄位名,比如desc,此時也需要加入反引號,並且insert等使用時也要加上反引號。create table `test`(`desc` varchar(255))成功insert into test(desc) values(‘fxf‘)失敗insert into test(`desc`) values(‘fxf‘)成功
mysql常見的保留字使用mysql時一定要注意,不要使用它的保留字作為表名或者列名,否則會出現莫名其妙的錯誤。昨天建了一個表,其中一列名為interval(時間間隔),結果資料死都插不進去,最後才發現原來interval是mysql的保留字。以後出現類似的錯誤要先想想是不是因為表名或列名衝突造成的啊。從網上找了一個mysql的保留字列表,僅供參考。
| ADD |
ALL |
ALTER |
| ANALYZE |
AND |
AS |
| ASC |
ASENSITIVE |
BEFORE |
| BETWEEN |
BIGINT |
BINARY |
| BLOB |
BOTH |
BY |
| CALL |
CASCADE |
CASE |
| CHANGE |
CHAR |
CHARACTER |
| CHECK |
COLLATE |
COLUMN |
| CONDITION |
CONNECTION |
CONSTRAINT |
| CONTINUE |
CONVERT |
CREATE |
| CROSS |
CURRENT_DATE |
CURRENT_TIME |
| CURRENT_TIMESTAMP |
CURRENT_USER |
CURSOR |
| DATABASE |
DATABASES |
DAY_HOUR |
| DAY_MICROSECOND |
DAY_MINUTE |
DAY_SECOND |
| DEC |
DECIMAL |
DECLARE |
| DEFAULT |
DELAYED |
DELETE |
| DESC |
DESCRIBE |
DETERMINISTIC |
| DISTINCT |
DISTINCTROW |
DIV |
| DOUBLE |
DROP |
DUAL |
| EACH |
ELSE |
ELSEIF |
| ENCLOSED |
ESCAPED |
EXISTS |
| EXIT |
EXPLAIN |
FALSE |
| FETCH |
FLOAT |
FLOAT4 |
| FLOAT8 |
FOR |
FORCE |
| FOREIGN |
FROM |
FULLTEXT |
| GOTO |
GRANT |
GROUP |
| HAVING |
HIGH_PRIORITY |
HOUR_MICROSECOND |
| HOUR_MINUTE |
HOUR_SECOND |
IF |
| IGNORE |
IN |
INDEX |
| INFILE |
INNER |
INOUT |
| INSENSITIVE |
INSERT |
INT |
| INT1 |
INT2 |
INT3 |
| INT4 |
INT8 |
INTEGER |
| INTERVAL |
INTO |
IS |
| ITERATE |
JOIN |
KEY |
| KEYS |
KILL |
LABEL |
| LEADING |
LEAVE |
LEFT |
| LIKE |
LIMIT |
LINEAR |
| LINES |
LOAD |
LOCALTIME |
| LOCALTIMESTAMP |
LOCK |
LONG |
| LONGBLOB |
LONGTEXT |
LOOP |
| LOW_PRIORITY |
MATCH |
MEDIUMBLOB |
| MEDIUMINT |
MEDIUMTEXT |
MIDDLEINT |
| MINUTE_MICROSECOND |
MINUTE_SECOND |
MOD |
| MODIFIES |
NATURAL |
NOT |
| NO_WRITE_TO_BINLOG |
NULL |
NUMERIC |
| ON |
OPTIMIZE |
OPTION |
| OPTIONALLY |
OR |
ORDER |
| OUT |
OUTER |
OUTFILE |
| PRECISION |
PRIMARY |
PROCEDURE |
| PURGE |
RAID0 |
RANGE |
| READ |
READS |
REAL |
| REFERENCES |
REGEXP |
RELEASE |
| RENAME |
REPEAT |
REPLACE |
| REQUIRE |
RESTRICT |
RETURN |
| REVOKE |
RIGHT |
RLIKE |
| SCHEMA |
SCHEMAS |
SECOND_MICROSECOND |
| SELECT |
SENSITIVE |
SEPARATOR |
| SET |
SHOW |
SMALLINT |
| SPATIAL |
SPECIFIC |
SQL |
| SQLEXCEPTION |
SQLSTATE |
SQLWARNING |
| SQL_BIG_RESULT |
SQL_CALC_FOUND_ROWS |
SQL_SMALL_RESULT |
| SSL |
STARTING |
STRAIGHT_JOIN |
| TABLE |
TERMINATED |
THEN |
| TINYBLOB |
TINYINT |
TINYTEXT |
| TO |
TRAILING |
TRIGGER |
| TRUE |
UNDO |
UNION |
| UNIQUE |
UNLOCK |
UNSIGNED |
| UPDATE |
USAGE |
USE |
| USING |
UTC_DATE |
UTC_TIME |
| UTC_TIMESTAMP |
VALUES |
VARBINARY |
| VARCHAR |
VARCHARACTER |
VARYING |
| WHEN |
WHERE |
WHILE |
| WITH |
WRITE |
X509 |
| XOR |
YEAR_MONTH |
ZEROFILL |
註:MySQL允許部分關鍵字用做未引起來的識別符,因為許多人以前曾使用過它們。如:ACTION、BIT、DATE、ENUM、NO、TEXT、TIME、TIMESTAMP所以為了安全起見可以在表名和欄位名上都加上``。
在mysql語句中為什麼要加反引號