• mysql 数据类型


    mysql 表操作  数据类型

    一 查看支持引擎

    -- 数据库支持的存储引擎
    show enginesG
    
    -- 正在使用的存储引擎
    show variables like "storage_engine%";

     

     

    二 数据类型 

    1 整数类型

     

    tinyint  smallint  int  bigint
    
    类型            大小        范围(有符号)            范围(无符号)                用途
    tinyint            1字节        (-128,127)            (0,255)                小整数        
    smallint        2字节        (-3276832767)        (0,65535)                大整数
    int                4字节        (-21474836482147483647)    (0,4294967295)    大整数
    bigint            8字节                                                        极大整数值
    
    
    float            4字节                                                        单精度 浮点数值
    double            8字节                                                        双精度 浮点数值
    decimal                                                                            小数值

     

     

     

    2 字符串数据类型

    char          固定长度字符串 最多为255个字符    
    varchar        可变长度字符串  最多为65535个字符

     

    3 浮点型

    float  double decimal

     

    4 日期型

    date      time  datetime  timestamp  year
    
            YEAR
                YYYY(1901/2155)
    
            DATE
                YYYY-MM-DD(1000-01-01/9999-12-31)
    
            TIME
                HH:MM:SS('-838:59:59'/'838:59:59'DATETIME
                YYYY-MM-DD HH:MM:SS(1000-01-01 00:00:00/9999-12-31 23:59:59    Y)
    
            TIMESTAMP
                YYYYMMDD HHMMSS(1970-01-01 00:00:00/2037 年某时)

     4-1 datatime 与 timestamp 的区别

    --- datetime 与timestamp的区别
    
    1.DATETIME的日期范围是1001——9999年,TIMESTAMP的时间范围是1970——2038年。
    
    2.DATETIME存储时间与时区无关,TIMESTAMP存储时间与时区有关,显示的值也依赖于时区。在mysql服务器,操作系统以及客户端连接都有时区的设置。
    
    3.DATETIME使用8字节的存储空间,TIMESTAMP的存储空间为4字节。因此,TIMESTAMP比DATETIME的空间利用率更高。
    
    4.DATETIME的默认值为null;TIMESTAMP的字段默认不为空(not null),默认值为当前时间(CURRENT_TIMESTAMP),如果不做特殊处理,并且update语句中没有指定该列的更新值,则默认更新为当前时间。

     

     

    5 字符类型

    char类型:定长,简单粗暴,浪费空间,存取速度快
        字符长度范围:0-255(一个中文是一个字符,是utf8编码的3个字节)
    存储:
        存储char类型的值时,会往右填充空格来满足长度
        例如:指定长度为10,存>10个字符则报错,存<10个字符则用空格填充直到凑够10个字符存储
        
    varchar类型:变长,精准,节省空间,存取速度慢
        字符长度范围:0-65535
        varchar类型存储数据的真实内容,不会用空格填充,如果'ab  ',尾部的空格也会被存起来
        
        
        
    虽然varchar使用起来较为灵活,但是从整个系统的性能角度来说,char数据类型的处理速度更快,有时甚至可以超出varchar处理速度的50%。因此,用户在设计数据库时应当综合考虑各方面的因素,以求达到最佳的平衡

     

     

    6. 枚举类型与集合类型

    enum 单选 只能在给定的范围内选一个值,如性别 sex 男male/女female
    
    set 多选 在给定的范围内可以选择一个或一个以上的值(爱好1,爱好2,爱好3...)

     

    create table consumer( 
    name varchar(50),
    sex enum('male','female'),
    level enum('vip1','vip2','vip3','vip4','vip5'),
    hobby set('play','music','read','study')    
    );
    
    
    insert into consumer values ('yyy','male','vip5','read,study');
    insert into consumer values ('xxx','female','vip1','music');
    
    mysql> select * from consumer;
    +------+--------+-------+------------+
    | name | sex    | level | hobby      |
    +------+--------+-------+------------+
    | yyy  | male   | vip5  | read,study |
    | xxx  | female | vip1  | music      |
    +------+--------+-------+------------+

    7. 列属性

    数值          unsigned               禁止使用负值
    仅整数        auto_increment         生成包含连续唯一整数值的序列
                 default                如果没有指定值   则为其提供默认值
                 null
                 not null               不能为空
                 binary                 二进制
                 character set          指定使用字符集
    create table student(id int not null primary key  AUTO_INCREMENT);
    create table student1(id int not null primary key  AUTO_INCREMENT,name varchar(20))charset utf8;
    create table teacher(id int not null ,name varchar(20) not null);
    create table teacher1(id int not null ,name varchar(20) not null,beizhu varchar(20) not null default "ok");

    primary key   主键;   非空唯一

    unique 唯一

     

     

     

     

  • 相关阅读:
    记一次失败的发布经历
    使用Test Director 编写测试用例的一点经验
    Windows Embedded 7 Standard 裁剪过程图解教程
    人生中第一次刮餐饮发票中奖5块!
    Proj EULibHarn Paper Reading: IntelliGen: Automatic Driver Synthesis for FuzzTesting
    Proj EULibHarn Paper Reading: FuzzGen: Automatic Fuzzer Generation
    Proj THUDBFuzz Paper Reading: Lenient Execution of C on a Java Virtual Machine
    Proj AutoWriter Paper Reading: Abstract Syntax Networks for Code Generation and Semantic Parsing
    Proj THUDBFuzz Paper Reading: ContextAware FailureOblivious Computing as a Means of Preventing Buffer Overflows
    Proj EULibHarn Paper Reading: FUDGE: Fuzz Driver Generation at Scale
  • 原文地址:https://www.cnblogs.com/augustyang/p/11079102.html
Copyright © 2020-2023  润新知