以mysql语句被缘何而加反引号

于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

故而为了安全起见可以以表名和字段名上都助长“。

网站地图xml地图