一、概述: 

  所谓建表,就是声明列的过程:

    数据是以文件的形式放在硬盘中(也有放在内存里的)

     列:不同的列类型占的空间不一样

     选列的原则:够用又不浪费;

二、mysql的数据类型:

   整形:Tinyint(1字节)  Smallint(2个字节)  Mediumint(3个字节)  int(4个字节)  bigint(8个字节);

   Tinyint在mysql默认是有符号的(-128----127);

    Tinyint(M) unsigned zerofill
    unsigned : 是无符号,影响存储范围;
    M代表宽度,(必须配合zerofill时才有意义)
    Zerofill 零填充,如果某列是zerofill,默认是unsigned(类似00005);

    insert into classs (name, age4)values ('zhaoliu', 9);
    列可以声明默认值,而且推荐声明默认值: NOT NULL default 0

    alter table class add age5 tinyint not null default 0;

  小数型/浮点型定点型:
    Float(M, D)
    decimal(M, D)
          //M:精度(总位数,不包含点) D:标度(小数位)

  create table goods(
    name varchar(10) not null default '',
    price float(6, 2) not null default 0.00) //9999.99, -9999.99
    //price float(6, 2) unsigned not null default 0.00) //0-9999.99,
  charset utf8;

  inert into goods
  (name, price)
  values
  ('跑步机', ‘688,896’)
              //记录在表中price的值为688.90

  alter table goods add bigprice float(9.2) not null default 0.0;

  alter table goods add deciprice decimal(9.2) not null default 0.0;

  alter table goods (name, bigprice, deciprice)
  values
  ('自行车', 1234567.23, 1234567.23);

  字符型 

    char 定长字符串 char(M),M代表宽度,即可容纳的字符数;    Varchar 变长字符串 Varchar(M),M代表宽度,即可容纳的字符数;

  区别:
    char定长: M个字符如果存的小于M个字符,实占M个字符;利用率是100%
    varchar变长: M个字符如果存的小于M个字符,假设为N,实占N个字符;实占的字符需要记录消耗1--2个字符;实际占有(N+1~2)个字符;

  char 与varchar选择原则:
    1、空间利用效率;
    2、速度;
  示例:  

    四字成语表,char(4);
    个人微博, varchar(140);

    用户名:char,牺牲空间,提供速度;

  text 文本串,比较大段文本,速度稍慢;
    注意:text不要加默认值,加了也不生效;

  create table stu(
    name char(8) not null default '',
    waihao varchar(16) not null default ''
    )charset utf8; //name最多容纳8个utf8字符;

  insert into stu(name, waihao)
    values
    ('zhangxiaosan', 'saner'); //拆入不进去,zhangxiaosan太长了;

  insert into stu(name, waihao)
    values
    ('zhangsan', 'saner');

  insert into stu(name, waihao)
    values
    ('默罕默德买买提',‘异步拉欣’);

  select concat (name, '!'), concat(waihao, '!') from stu;

  alter table std add info text not null default '';
    //执行错误;不能默认值;

三、mysql中的日期时间类型:

    //年---------------------year
    //年-月-日---------------date
    //00:00:00-------------time
    //年-月-日 hh:nn:ss----datatime
      Year类型:1个字节,1901年到2155年;【0000年表示错误选择】
    如果输入2位,‘00-69’表示2000---2069;    ‘70-99’表示1970---1999;
    如果麻烦,输入的时候输入4位即可;

  Date类型:典型格式:1992-08-12 日期范围:1000-01-01 ---9999-12-31;

  time类型:典型格式:hh:mm:ss

  Datatime类型:典型格式:'1989-06-09 14:23:02'
      范围:1000-01-01 00:00:00 ---9999-12-31 23:59:59

  注意:
      在开发中,很少用日期时间类型来表示一个需要的精确到秒
    原因:虽然日期时间类型能精确到秒,而且方便查看;
    而是用时间戳:1970-01-01 00:00:00到当前的秒数;

  create table t2(
    gender enum('男',‘女’)
    )charset utf8;

  insert into t2 values('男');
  insert into t2 values('春哥'); //error

  create table user(
    name varchar(20) not null default '',
    regtime datetime not null default '1000-01-01 00:00:00')
    charset utf8;

 

  create table t( tm time);

  insert into t values ('14:33:56');

  create table y(

    ya year(4)
  )

  insert into y  values ('1901');

    insert into y values('2280'); //error

  insert into y values('97'); //存入了1997

  insert into y values('12'); //存入的是2012

  create table d
    title varchar(30),da data)
  charset utf8;

  insert into d values
    ('开国大典', ‘1949-10-01’);

  insert into d values
    ('世界末日', ‘2012-02-30’); //输入不合法

mysql之数据类型的更多相关文章

  1. MySQL数据库3 - MySQL常用数据类型

    一. MySql常用数据类型 数据类型:整数(tinyint smailint int bigint) 定点数 decimal(p,s) ------ 小数点位置固定的       ---> 数 ...

  2. Mysql常用数据类型

    Mysql常用数据类型 数字: 字符串: 时间:

  3. MySQL日期数据类型、时间类型使用总结

    MySQL日期数据类型.时间类型使用总结 MySQL日期数据类型.MySQL时间类型使用总结,需要的朋友可以参考下.   MySQL 日期类型:日期格式.所占存储空间.日期范围 比较. 日期类型    ...

  4. MySQL日期数据类型、MySQL时间类型使用总结

    MySQL:MySQL日期数据类型.MySQL时间类型使用总结 MySQL 日期类型:日期格式.所占存储空间.日期范围 比较. 日期类型 存储空间 日期格式 日期范围 ------------ --- ...

  5. MySQL数据库数据类型之集合类型SET测试总结

    MySQL数据库提供针对字符串存储的一种特殊数据类型:集合类型SET,这种数据类型可以给予我们更多提高性能.降低存储容量和降低程序代码理解的技巧,前面介绍了首先介绍了四种数据类型的特性总结,其后又分别 ...

  6. mysql 的数据类型

    mysql 的数据类型(描述的是字段)三大类:一.整型:1.tinyint(M),其中M是显示宽度,需要配合zerofill,就是前面0填充,存储单位为1个字节(8位),无符文是最大能存储范围0000 ...

  7. MySQL的数据类型(转)

    MySQL的数据类型 1.整数 TINYINT: 8 bit 存储空间 SMALLINT: 16 bit 存储空间 MEDIUMINT: 24 bit 存储空间 INT: 32 bit 存储空间 BI ...

  8. MySQL/MariaDB数据类型

    1.为什么要定义MySQL数据类型 定义MySQL数据类型其实就是为了对数据进行分类,实现对不同的分类进行不同的处理 1.使系统能够根据数据类型来操作数据. 2.预防数据运算时出错.例如,通过强大的数 ...

  9. mysql的数据类型和字段属性

    本文内容: 数据类型 数值类型 整数型 浮点型 定点型 日期时间类型 字符串类型 补充: 显示宽度与zerofll 记录长度 字段属性 空\不为空值:NULL.NOT NULL 主键:primary ...

随机推荐

  1. Mac OS使用技巧之十五:快捷方便的Mini Dock

    Mini Dock是前面忘记了提,这里做一些补充.       Mini Dock是Mac OSX的一个值得大书特书的亮点.尽管windows下也有类似的东西,但Mac下却提供了更为全面的功能.通过M ...

  2. C#后台发送HTTP请求

    using System.Collections.Generic; using System.Linq; using System.Text; using System.Net; using Syst ...

  3. c 有关N!阶乘的相关问题----陆续补充上来

    第一个:求N!结果中末尾0的个数问题.思路是末尾0的产生   5*偶数,阶乘中偶数的个数肯定比5多,所以求出阶乘中5的个数就可以求出末尾0的个数. #include<stdio.h> in ...

  4. Canvas使用渐变之-线性渐变详解

    在canvas里面,除了使用纯色,我们还能把填充和笔触样式设置为渐变色:线性渐变和径向渐变. 线性渐变 createLinearGradient(x0,y0,x1,y1)  返回 CanvasGrad ...

  5. TextView实现多个TextView对象的走马灯效果

    1:自定义一个控件继承TextView,重写isFocused方法,返回值为true; package com.example.helloandroid; import android.R.bool; ...

  6. CSS小技巧-图片自动缩放

    css的一个重要属性:max-width min-width 示例: <div width="500" height="259"><p> ...

  7. 简单的webservice

    Hi,大家好! 今天主要和大家分享,如何搭建一个Web服务,做Android开发,不可避免会涉及到客户端开发,我们怎么样来实现一个服务端,怎么样来实现一个客户端,并相互传递数据.就算调用别人的服务时, ...

  8. beta分布

    http://blog.csdn.net/sweetrryy/article/details/6436358

  9. dede修改移动文档的js

    dede后台弹框修改: 想做个类似文章列表的移动功能,弹框,然后修改成功到表 先在list.js里复制一份moveArc的方法,到archives_do.php里复制一份moveArchives的方法 ...

  10. 实用推荐:12款Linux系统恢复工具

    12款Linux系统恢复工具 电脑死机,系统崩溃,总会给电脑使用者带来一定的损失.你是否不小心删除你的纪念图片?安装新系统时候,擦除了分区表?无法读取旧CD里面的数据?别急嘛-我们将会给您推荐一些免费 ...