码迷,mamicode.com
首页 > 其他好文 > 详细

数据类型

时间:2018-08-25 00:47:47      阅读:121      评论:0      收藏:0      [点我收藏+]

标签:设置   like   无法   时间   table   char   mes   模糊匹配   个数   

整型
  • 默认是有符号的,默认符号为空格
    create table 表名(x tinyint);
  • 设置为没有符号的
    create table 表名(x tinyint unsigned);
  • 强调
    整型类型后面的宽度限制的不是存储宽度,限制的是显示宽度

    浮点型

  • float: 推荐使用float,用float足够用了
    create table 表名(x float(255,30));
  • double: 比float更加精确小数点后面的数字
    create table 表名(x double(255,30));
  • decimal: 用于机器的精确度,只有在某种特殊情况才会使用,不过我认为我这辈子也用不上这个
    create table 表名(x decimal(65,30));

    日期类型

  • year 1999
  • data 1999-11-11
  • time 08:00:00
  • datetime 1999-11-11 08:00:00
  • timestamp 1999-11-11 08:00:00
    create table student(
    id int primary key auto_increment,
    name varchar(16),
    born_year year,
    birth data,
    class_time time,
    reg_time datetime);
    insert into studnet(name,born_year,birth,class_time,reg_time) values(‘lxx‘,now(),now(),now(),now());
  • timestamp与datetime的区别
    timestamp与datetime的区别在于timestamp会自动生成一个时间,而datetime要手动输入

字符类型

  • char: 定长
    create table student(
    name char(5),
  • varchar: 变长
    create table student(
    name char(5),
    宽度指的都是最大存储的字符个数,超过了都无法正常存储
    不同的地方是 char(5) 如果没有够5个字符 就会被mysql默认添加不够的空格,最多也是只能显示5个字符
    而varchar(5) 写了几个就是几个字符,最多显示5个字符
  • 可以设置成存的时候在存,取的时候就是存的时候的样子
    set global sql_mode="strict_trans_tables,PAD_CHAR_TO_FULL_LENGTH";
  • 需要注意的
    mysql在查询时针对where 字段="值 "会忽略掉右边的空格,既where 字段="值", 如果是like模糊匹配就不会忽略右面的空格了

    枚举与集合类型

    枚举 enum:多选一

    insert info emp values("lxx","male","read,play");

集合 set: 多选多

insert info emp values(‘wxx‘,"male","read,play");

create table emp(
name varchar(15),
sex enum(‘male‘,‘female‘,‘unkown‘),
hobbies set(‘read‘,‘music‘,‘yinshi‘,‘play‘));

数据类型

标签:设置   like   无法   时间   table   char   mes   模糊匹配   个数   

原文地址:http://blog.51cto.com/13764714/2163945

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!