在mysql語句中為什麼要加反引號

大家讲道理
發布: 2017-04-16 14:31:58
原創
2892 人瀏覽過

MySQL語句中我們有時候常常會遇到反引號(``),剛開始的時候不知道什麼意思,他是什麼作用呢?


Select * from `member` order by posts desc limit 0,10;
登入後複製


#它是為了區分MYSQL的保留字與普通字符而引入的符號。

舉例:SELECT `select` FROM `test` WHERE select='欄位值'

在試題表中,有個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

使用mysql

時一定要注意,不要使用它的保留字作為表名或列名,否則會出現莫名其妙的錯誤。

昨天建了一個表,其中一列名為interval(時間間隔),結果資料死都插不進去,最後才發現原來interval是mysql的保留字。

以後出現類似的錯誤要先想想是不是因為表名或列名衝突造成的啊。

######從網路上找了一個mysql的保留字列表,僅供參考。 ##################ADDALTERANALYZEANDASASC敏感#BETWEENBIGINTBINARY#BLOBCALL#CHANGE檢查條件##繼續建立交叉_ CURRENT_TIMESTAMPCURRENT_USER遊標資料庫資料庫DAY_HOUR#DAY_MICROSECONDDAY_MINUTEDAY_SECONDDECDECIMAL預設延遲DESC 描述確定性DISTINCTDISTINCTROW掉落每個#轉義解釋#FLOATFORFROM#前往高優先級# #小時_秒IF##INTERVALINTO#IS##迭代KEYS#KILLLABEL領先離開LIKE限制#線性線路載入本地時間戳記 LOCKLONGLONGBLOBLONGTEXTMATCHMEDIUMTEXTDL分鐘_秒##修改NO_WRITE_TO_BINLOG#NUMERICON最佳化選項#可選或OUTER主要RAID0範圍READ發布##替換##要求#限制正確#RLIKE##SEPARATOR#VARCHAR##WHEREWITHWRITEX509XORYEAR_MONTH
#ALL
#之前
##BOTH BY
CASCADE CASE
CHAR 字元
整理
連接 約束
#轉換
目前#日期CURRENT_TIME
DECLARE
##刪除
##p
ELSE #ELSE如果
存在 退出
FALSE #FETCH
#FLOAT4 FLOAT8
FORCE FOREIGN
全文
#授予群組
小時_微秒 小時_分鐘
###忽略######IN######INDEX############ IN###FILE### INNER INOUT
不敏感 INSERT INT
#INT1 INT2 INT3
#INT4 INT8 # INTEGER
JOIN ##KEY
#左
本地時間
##LOOP # LOW_PRIORITY
MEDIUMBLOB #MEDIUMINT
#MIDEINT 分鐘_微秒
修改
# #自然 NOT
##NULL
##順序 # OUT
#OUTFILE 精度
程式 清除
READSREAL 參考#REGEXP
重命名重複
#返回
##撤銷
架構 架構 SECOND_MICROSECOND
#選擇 SENSITIVE
##SET###SHOW######SMALLINT###################SPECIFIC######SQL# ####### ####SQL####異常### 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
#VALUES VARBINARY
VARCHARACTER VARYING #WHEN
WHILE

ZEROFILL

註:MySQL允許部分關鍵字用來做未引起來的識別符,因為許多人以前曾經使用過它們。如:
ACTION

、BIT、DATE、ENUM、NO、TEXT、TIME、TIMESTAMP

##所以為了###安全###起見可以在表名和欄位名稱上都加上``。 ######

以上是在mysql語句中為什麼要加反引號的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板