• MySQL学习笔记(二)MySQL数据类型


    一、创建数据库:
    create database 数据库名 default charset=utf8; //创建数据库并指定默认编码
    二、创建表

     create table 表名(
            c1 数据类型(M) [unsigned not null zerofill default .....],
            c2 ........,
            ....
      )engine=存储引擎 default charset=字符集;
    

    三、MySQL的数据类型:
    1. 查看MySQL支持的数据类型:
    mysql> ? data types;
    2. MySQL8+支持的数据类型如下表:
    1)数值类型:

    类型 字节大小(bytes) 范围(有符号) 范围无符号 用途说明
    tinyint(M) 1 -128 ~ 127 0 ~ 255 非常小的整数类型
    smallint(M) 2 -32768 ~ 32767 0 ~ 65535 非常小的整数类型
    mediumint(M) 3 -8388608~8388607 0 ~ 16777215 中型整数
    int(M) 4 -2147483648~2147483647 0 ~ 4294967295 普通大型整数
    bigint(M) 8 -2^63 ~ 2^63-1 0 ~ 2^64-1 大型整数
    decimal(M[,D]) 与M和D的值有关,M>D时为:M+2,否则为:D+2 精确的数值类型,M精确值,最大65,D小数位,最大30
    float(M,D) 4 -3.402823466E+38 ~ -1.175494351E-38,
    0,
    1.175494351E-38 ~ 3.402823466351E+38
    0,
    1.175 494 351 E-38 ~ 3.402 823 466 E+38
    单精度浮点数
    double(M,D) 8 -1.7976931348623157E+308 ~ -2.2250738585072014E-308,
    0,
    2.2250738585072014E-308 ~ 1.7976931348623157E+308
    0,
    2.2250738585072014E-308 ~ 1.7976931348623157E+308
    双精度浮点数

    说明:
    1. 数值型一旦确定了类型,其所占的字节大小就是固定的了,也就是说,该字段所能存储的数值大小就是与括号内的M值无关,tinyint(1)和tinyint(4)能储存的数值大小是一样的,M代表的是显示宽度,也即是当设定了zerofill属性时,tinyint(1)显示的就是1,而tinyint(4)显示的是0001。

    2. bit(M):bit-value类型,M表示每个值的位数,M的值为:1 ~ 64,默认是:1。
    3. bool,boolean:布尔类型,1为真,0为假,值true和false分别是1和0的别名。


    2)日期和时间类型:

    类型 字节长度(bytes) 范围 格式 用途说明
    date 3 1000-01-01 ~ 9999-12-31 YYYY-MM-DD 日期值
    datetime 8 1000-01-01 00:00:00/9999 ~ 9999-12-31 23:59:59 YYYY-MM-DD HH:MM:SS 日期和时间值
    timestamp 4 1970-01-01 00:00:01.000000 ~ 结束时间是第 2147483647 秒,
    北京时间 2038-1-19 11:14:07,格林尼治时间 2038年1月19日 凌晨 03:14:07
    YYYYMMDD HHMMSS 日期和时间值,时间戳
    time 3 -838:59:59.000000 ~ 838:59:59.000000 HH:MM:SS 时间值或持续时间
    year 1 1901 ~ 2155 YYYY 年份值
    3)字符串类型
    类型 字节长度(bytes) 用途说明
    ---- ---- ----
    char(M) 0 ~ 255 定长字符串
    varchar(M) 0 ~ 65535 变长字符串
    tinyblob 0 ~ 255 不超过 255 个字符的二进制字符串
    tinytext(M) 0 ~ 255 短文本字符串
    blob 0 ~ 65535 二进制形式的长文本数据
    text(M) 0 ~ 65535 长文本数据
    mediumblob 0 ~ 16777215 二进制形式的中等长度文本数据
    mediumtext(M) 0 ~ 16777215 中等长度文本数据
    longblob 0 ~ 4294967295 二进制形式的极大文本数据
    longtext(M) 0 ~ 4294967295 极大文本数据

    说明:
    1. 对于char(M)、varchar(M)、text(M)字符串类型,M表示所能存储的最大字符数,在MySQL严格模式下,若insert的值超出M的大小将报数据过长的错误。
    2. BLOB值被视为二进制字符串,对于BLOB(M)类型,M表示所能存储的最大字节数。
    3. enum类型:枚举类型,MySQL为枚举列值列表分配索引(指枚举值列表中的位置,它与表索引无关),索引从1开始,实际存储的是索引,使用where查询时可以使用枚举列值列表中的值查询也可以使用索引查询。null值的索引是null,空字符串或错误的字符串值的索引为0。在MySQL严格模式下,insert超出枚举列表值的值会报错。一个枚举列最多可以包含65535个不同的元素。若将数字存储在枚举列中,则该数字将被视为可能值的索引,并且存储的值是具有该索引的枚举成员,这很容易造成混淆。枚举值不能是表达式,即使是求值为字符串值的表达式,也不能使用用户变量作为枚举值。

    4. set类型:
    a)SET是可以具有零个或多个值的字符串对象,每个值都必须从创建表时指定的允许值列表中选择;
    b)一个SET列最多可包含64个不同的成员;
    c)定义中的重复值会导致警告,如果启用了严格的SQL模式,则会导致错误;
    d)如果启用了严格的SQL模式,则尝试插入无效 SET值将导致错误;
    e)SET值按数字排序, NULL值在非NULL SET值之前排序。

  • 相关阅读:
    日志记录
    Ajax
    servlet3.0新特性
    文件上传和下载
    过滤器
    listener
    JavaWeb案例:登陆和注册
    jsp
    cookie和session
    HttpRequest,HttpResponse,乱码,转发和重定向
  • 原文地址:https://www.cnblogs.com/huige185/p/13921850.html
Copyright © 2020-2023  润新知