zoukankan      html  css  js  c++  java
  • 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
    所以为了安全起见可以在表名和字段名上都加上``。
     
  • 相关阅读:
    Spring MVC学习03页面跳转
    Spring Boot学习07配置加载顺序
    Spring MVC学习01从空白Maven项目搭建环境
    Spring MVC学习05JSON序列化
    剑指Offer 44 数字序列中某一位的数字
    Spring MVC学习06异常解析器
    MSSQL·查看DB中所有表及列的相关信息
    MSSQL·查询数据库中所有索引的相关信息
    MSSQL·最长输出长度限制之解决方案
    .Net Core·热加载的实现及测试
  • 原文地址:https://www.cnblogs.com/gered/p/11993599.html
Copyright © 2011-2022 走看看