mysql中的反引號``


【1】反引號`,數字1左邊的符號。tab鍵上面的符號。

它是為了區分MYSQL的保留字與普通字符而引入的符號。
不加反引號建的表不能包含MYSQL保留字,否則出錯
 

 

 

 

 如上圖,很明顯的,如果我們直接建立名稱為select的表,會報錯。如果我們加上反引號``就創建成功了。

核心原因是因為,當我們沒加反引號的時候,select 默認是 Mysql的關鍵字,所以報錯了。

加了反引號`` 之后,Mysql就把它識別成了一個常規字符串。

 
反引號`,數字1左邊的符號。tab鍵上面的符號。

【2】保留字不能用於表名

比如desc,此時需要加入反引號來區別,但使用表名時可忽略反引號。
create temporary table desc 報錯
create temporary table `desc` 成功

 

【3】保留字也不能用於字段名

,比如desc,此時也需要加入反引號,並且insert等使用時也要加上反引號。
-- 這里就不貼圖了,一個意思,只是由表名換成了列名

create
table `test`(`desc` varchar(255))成功 insert into test(desc) values('fxf')失敗 insert into test(`desc`) values('fxf')成功

 

【4】保留字參考列表

從網上找了一個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
所以為了安全起見可以在表名和字段名上都加上``。
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM