zoukankan      html  css  js  c++  java
  • 【转】 mysql反引号的使用(防冲突)

     转载地址:http://blog.itechol.com/space.php?uid=33&do=blog&id=6681

    1、mysql语句中 反引号 【`】作用: 避免表明、字段名与mysql已存在的【保留字】冲突,引起不知名错误。

    2、所以我们建表和字段时候,特别需要注意,尽量使用全拼/下划线 来设置字段和表名

    3、连接不同数据库查询,一定不要加【`】反引号,否则会被解析成 单个表

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

    举个例子:SELECT `select` FROM `test` WHERE select='字段值'
    在test表中,有个select字段,如果不用反引号,MYSQL将把select视为保留字而导致出错,所以,有MYSQL保留字作为字段的,必须加上反引号来区分。
     
    引号一般用在字段的值,如果字段值是字符或字符串,则要加引号,如:select='字段值'
     
    不加反引号建的表不能包含MYSQL保留字,否则出错
     
    5、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
  • 相关阅读:
    CSS中关于BFC的背后原理是什么
    CSS中浏览器是怎样解析CSS选择器的?
    JavaScript中关于 == 和 === 的区别是什么?
    JavaScript中关于继承的实现方式
    Vue双向绑定原理
    Node之TinyPNG图片无限次数压缩
    React的生命周期示意图
    Image-webp探究
    JavaScript中关于事件的循环机制
    vue导航点击切换 1.0
  • 原文地址:https://www.cnblogs.com/xuzhengzong/p/9049246.html
Copyright © 2011-2022 走看看