zoukankan      html  css  js  c++  java
  • mysql字符集问题

    ########常用命令
    mysql> show collation;
    mysql> show character set;
    mysql> show character set like '%utf8%';
    mysql> show table status;

    #########参数文件中定义
    character_set_server=utf8mb4

    默认

    ##########命令举例
    mysql> use mysql
    Reading table information for completion of table and column names
    You can turn off this feature to get a quicker startup with -A

    Database changed
    mysql> show character set like '%utf8%';
    +---------+---------------+--------------------+--------+
    | Charset | Description | Default collation | Maxlen |
    +---------+---------------+--------------------+--------+
    | utf8 | UTF-8 Unicode | utf8_general_ci | 3 |
    | utf8mb4 | UTF-8 Unicode | utf8mb4_general_ci | 4 |
    +---------+---------------+--------------------+--------+
    2 rows in set (0.00 sec)

    mysql>

    ###行注释
    Charset : 字符集
    Description 描述
    Default collation : 默认排序、插入检查规则 ci
    Maxlen : 最大长度

    ####################
    ●配置参数character_set_server
    ●CREATE DATABASE
    ●CREATE TABLE

    CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name
    [create_ specification] ...
    create_ specification:
    [DEFAULT] CHARACTER SET [=] charset_ name
    CREATE TABLE t( a CHAR(10))CHARSET=utf8mb4;
    | [DEFAULT] COLLATE [=] collation_ _name
    CREATE TABLEt (
    a VARCHAR(10) CHARSET gbk,
    b VARCHAR (10) CHARSET latin1,
    C VARCHAR (10) ) CHARSET=utf8mb4;

    #########数据有效性约束:
    ENUM & SET
    ●字符串类型--集合类型
    ●ENUM类型最多允许65536个值
    ●SET类型最多允许64个值
    ●通过sql_mode参数可以用于约束检查
    mysql> CREATE TABLE t(
    > user VARCHAR(30),
    > sex ENUM('male',female')
    ->)ENGINE=InnoDB;
    Query OK, 0 rows affected (0.01 sec)

    mysql> SET sQL _MODE='strict _trans. _tables';
    Query OK, 0 rows affected (0.00 sec)

    mysql> INSERT INTO t SELECT "David",'male';
    Query OK, 1 row affected (0.00 sec)
    Records: 1 Duplicates: 0 Warnings: 0

    mysql> INSERT INTO t SELECT 'John','bimale';
    ERROR 1265 (01000); Data truncated for column 'sex' at row 1

    ###############关于ENUM举例:#####################################

    mysql> set sql_mode=''; #先不设置sql_mode
    Query OK, 0 rows affected (0.00 sec)

    mysql> create table a ( a enum ('m','f')); #创建一张表,字段类型为enum
    Query OK, 0 rows affected (0.01 sec)

    mysql> desc a; #查看这表
    +-------+---------------+------+-----+---------+-------+
    | Field | Type | Null | Key | Default | Extra |
    +-------+---------------+------+-----+---------+-------+
    | a | enum('m','f') | YES | | NULL | |
    +-------+---------------+------+-----+---------+-------+
    1 row in set (0.00 sec)

    mysql> insert into a select 'm'; #插入一个合法值
    Query OK, 1 row affected (0.00 sec)
    Records: 1 Duplicates: 0 Warnings: 0

    mysql> select * from a; #查看
    +------+
    | a |
    +------+
    | m |
    +------+
    1 row in set (0.00 sec)

    mysql> insert into a select 'y'; #插入一个非法值
    Query OK, 1 row affected, 1 warning (0.00 sec)
    Records: 1 Duplicates: 0 Warnings: 1

    mysql> select * from a; #查看,虽然没有报错,但是插入的是空值
    +------+
    | a |
    +------+
    | m |
    | |
    +------+
    2 rows in set (0.00 sec)

    mysql> set sql_mode='STRICT_TRANS_TABLES'; #修改sql_mode
    Query OK, 0 rows affected, 1 warning (0.00 sec)

    mysql> insert into a select 'y'; #再插入一个非法值
    ERROR 1265 (01000): Data truncated for column 'a' at row 1
    mysql> select * from a; #查看,插入失败
    +------+
    | a |
    +------+
    | m |
    | |
    +------+
    2 rows in set (0.00 sec)

    mysql>


    ############时间#########################
    占用字节 表示范围
    DATETIME 8 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59
    DATE, 3 1000-01-01 ~ 9999-12-31
    TIMESTAMP 4 1970-01-01 00:00:00 UTC ~2038-01-19 03:14:07 UTC
    YEAR 1 YEAR(2): 1970 ~ 2070
    YEAR(4): 1901 ~ 2155
    TIME 3 -838:59:59 ~838:59:59

    #TIMESTAMP有时区

    ####时区举例###################
    mysql> drop table a;
    Query OK, 0 rows affected (0.00 sec)

    mysql> create table a (a TIMESTAMP,b datetime);
    Query OK, 0 rows affected (0.00 sec)

    mysql> desc a ;
    +-------+-----------+------+-----+---------+-------+
    | Field | Type | Null | Key | Default | Extra |
    +-------+-----------+------+-----+---------+-------+
    | a | timestamp | YES | | NULL | |
    | b | datetime | YES | | NULL | |
    +-------+-----------+------+-----+---------+-------+
    2 rows in set (0.00 sec)

    mysql> insert into a select now(),now();
    Query OK, 1 row affected (0.01 sec)
    Records: 1 Duplicates: 0 Warnings: 0

    mysql> select * from a;
    +---------------------+---------------------+
    | a | b |
    +---------------------+---------------------+
    | 2020-04-20 12:46:44 | 2020-04-20 12:46:44 |
    +---------------------+---------------------+
    1 row in set (0.00 sec)

    mysql> select @@time_zone;
    +-------------+
    | @@time_zone |
    +-------------+
    | SYSTEM |
    +-------------+
    1 row in set (0.00 sec)

    mysql> set time_zone='+00:00';
    Query OK, 0 rows affected (0.00 sec)

    mysql> select * from a;
    +---------------------+---------------------+
    | a | b |
    +---------------------+---------------------+
    | 2020-04-20 04:46:44 | 2020-04-20 12:46:44 |
    +---------------------+---------------------+
    1 row in set (0.00 sec)

  • 相关阅读:
    Scala(四)流程控制
    Scala(九)异常
    Idea中安装翻译插件
    hiveserver2启动卡住问题解决方案
    Scala(十)隐式转换
    Scala(七)集合
    Scala(六)面向对象
    Scala(八)模式匹配
    SharePoint 2010 文档库添加文件icon
    Windows Server 2008 r2 在Hyperv里搭建SharePoint 2010开发环境
  • 原文地址:https://www.cnblogs.com/smallfishy/p/12916952.html
Copyright © 2011-2022 走看看