热门搜索 :
考研考公
您的当前位置:首页正文

在mysql语句中为什么要加反引号

2023-11-11 来源:东饰资讯网

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的保留字列表,仅供参考。
ADDALLALTER
ANALYZEANDAS
ASCASENSITIVEBEFORE
BETWEENBIGINTBINARY
BLOBBOTHBY
CALLCASCADECASE
CHANGECHARCHARACTER
CHECKCOLLATECOLUMN
CONDITIONCONNECTIONCONSTRAINT
CONTINUECONVERTCREATE
CROSSCURRENT_DATECURRENT_TIME
CURRENT_TIMESTAMPCURRENT_USERCURSOR
DATABASEDATABASESDAY_HOUR
DAY_MICROSECONDDAY_MINUTEDAY_SECOND
DECDECIMALDECLARE
DEFAULTDELAYEDDELETE
DESCDESCRIBEDETERMINISTIC
DISTINCTDISTINCTROWDIV
DOUBLEDROPDUAL
EACHELSEELSEIF
ENCLOSEDESCAPEDEXISTS
EXITEXPLAINFALSE
FETCHFLOATFLOAT4
FLOAT8FORFORCE
FOREIGNFROMFULLTEXT
GOTOGRANTGROUP
HAVINGHIGH_PRIORITYHOUR_MICROSECOND
HOUR_MINUTEHOUR_SECONDIF
IGNOREININDEX
INFILEINNERINOUT
INSENSITIVEINSERTINT
INT1INT2INT3
INT4INT8INTEGER
INTERVALINTOIS
ITERATEJOINKEY
KEYSKILLLABEL
LEADINGLEAVELEFT
LIKELIMITLINEAR
LINESLOADLOCALTIME
LOCALTIMESTAMPLOCKLONG
LONGBLOBLONGTEXTLOOP
LOW_PRIORITYMATCHMEDIUMBLOB
MEDIUMINTMEDIUMTEXTMIDDLEINT
MINUTE_MICROSECONDMINUTE_SECONDMOD
MODIFIESNATURALNOT
NO_WRITE_TO_BINLOGNULLNUMERIC
ONOPTIMIZEOPTION
OPTIONALLYORORDER
OUTOUTEROUTFILE
PRECISIONPRIMARYPROCEDURE
PURGERAID0RANGE
READREADSREAL
REFERENCESREGEXPRELEASE
RENAMEREPEATREPLACE
REQUIRERESTRICTRETURN
REVOKERIGHTRLIKE
SCHEMASCHEMASSECOND_MICROSECOND
SELECTSENSITIVESEPARATOR
SETSHOWSMALLINT
SPATIALSPECIFICSQL
SQLEXCEPTIONSQLSTATESQLWARNING
SQL_BIG_RESULTSQL_CALC_FOUND_ROWSSQL_SMALL_RESULT
SSLSTARTINGSTRAIGHT_JOIN
TABLETERMINATEDTHEN
TINYBLOBTINYINTTINYTEXT
TOTRAILINGTRIGGER
TRUEUNDOUNION
UNIQUEUNLOCKUNSIGNED
UPDATEUSAGEUSE
USINGUTC_DATEUTC_TIME
UTC_TIMESTAMPVALUESVARBINARY
VARCHARVARCHARACTERVARYING
WHENWHEREWHILE
WITHWRITEX509
XORYEAR_MONTHZEROFILL
注:MySQL允许部分关键字用做未引起来的识别符,因为许多人以前曾使用过它们。如:ACTION、BIT、DATE、ENUM、NO、TEXT、TIME、TIMESTAMP所以为了安全起见可以在表名和字段名上都加上``。

在mysql语句中为什么要加反引号

标签: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语句中为什么要加反引号

标签:bodytimeinfarchascmsucapewarningstart

MySQL中单引号,双引号和反引号的区别

1、首先单引号和反引号,如图,这里的   '图书ID'   就使用到了单引号,而 CREATE TABLE `book`  这里的  book  就使用到了反引号。

2、单引号:在例子中的条件值周围使用的是单引号。SQL 使用单引号来环绕文本值。如果是数值,不要使用引号。

3、反引号:它是为了区分MYSQL的保留字与普通字符而引入的符号。有MYSQL保留字作为字段的,必须加上反引号来区分。

4、双引号的用法和单引号有所类似,大多数数据库都支持单引号和双引号的互换,即varchar类型的变量既可以用单引号来囊括,也可以用双引号。

5、另外,在oracle里面,双引号还有一个意义,那就是保留大小写。在oracle数据库里面,所有的字段是默认为转化成大写后进数据库的,所以如果有一个表名为user,这个时候select * from user;这个语句是查不出任何数据的。

MySQL中反引号和引号的区别及用法

MySql中用一对反引号"`"来标注SQL语句中的标识,如数据库名、表名、字段名等。反引号是非必须的,在确保不会导致歧义发生的情况下可以省略掉,反之,例如在出现字段名与保留关键字相同、标识中含空格等等情况下就需要使用,否则可能出错。

引号则用来标注语句中所引用的字符型常量或日期/时间型常量。引号是必须的,不得省略,否则会导致系统报错。一般情况下使用一对英文单引,也可以英文双引号。

下面举例示范反引号和单引号的用法

select cid,`name`,`place of birth` ,
'特殊客户群' as remark
from client where `type of client`='student' ;

选出客户类型为学生的记录,列出客户id、姓名和出生地,额外附加一个虚拟备注字段将学生类型客户标注为常量"特殊客户群"

a.
select * from student where
remark="Mary's elder twin sister";

b.
select * from student where
remark='Mary''s elder twin sister';

通过备注查出玛丽的双胞胎姐姐的资料。

因为常量中包含英文单引号

a例使用双引号标注字符串常量,可直接引用含单引号的字符串;
b例使用单引号标注字符串常量,字串中包含的单引号需要转义(一个单引号写成两个单引号),否则会报错。

MySQL中反引号和引号的区别及用法

MySql中用一对反引号"`"来标注SQL语句中的标识,如数据库名、表名、字段名等。反引号是非必须的,在确保不会导致歧义发生的情况下可以省略掉,反之,例如在出现字段名与保留关键字相同、标识中含空格等等情况下就需要使用,否则可能出错。

引号则用来标注语句中所引用的字符型常量或日期/时间型常量。引号是必须的,不得省略,否则会导致系统报错。一般情况下使用一对英文单引,也可以英文双引号。

下面举例示范反引号和单引号的用法

select cid,`name`,`place of birth` ,
'特殊客户群' as remark
from client where `type of client`='student' ;

选出客户类型为学生的记录,列出客户id、姓名和出生地,额外附加一个虚拟备注字段将学生类型客户标注为常量"特殊客户群"

a.
select * from student where
remark="Mary's elder twin sister";

b.
select * from student where
remark='Mary''s elder twin sister';

通过备注查出玛丽的双胞胎姐姐的资料。

因为常量中包含英文单引号

a例使用双引号标注字符串常量,可直接引用含单引号的字符串;
b例使用单引号标注字符串常量,字串中包含的单引号需要转义(一个单引号写成两个单引号),否则会报错。

有关MYSQL的引号问题

你所说的那个符号是反引号,一般在ESC键的下方。

它是为了区分MYSQL的保留字与普通字符而引入的符号。

举个例子:SELECT `select` FROM `test` WHERE select='字段值'

在test表中,有个select字段,如果不用反引号,MYSQL将把select视为保留字而导致出错,所以,有MYSQL保留字作为字段的,必须加上反引号来区分。

引号一般用在字段的值,如果字段值是字符或字符串,则要加引号,如:select='字段值'

不加反引号建的表不能包含MYSQL保留字,否则出错

用普通引号,当输入左引号时,后面的内容因为引号没有关闭而默认作为引号内的内容,用普通引号括起来的内容为绿色。

为什么MYSQL中字符串有时要加双引号,有时不要?

mysql数据库中,加双引号,一般是为了避免字段命名与系统相冲。比如date,他本来是mysql中预置的变量,这个时候你查 selecet date from table;就会出问题,加上双引号或单引号或者反引号(就是键盘tab上边那个)select `date` from table;

Top