Mysql的相关列属性

文章目录

  • 整型
  • 浮点型与定点型
  • 字符型
    • 区别:
    • 如何选择
  • 日期时间
  • 建表案例

整型

类型 字节 描述
Tinyint 1 8 默认有符号:-128127;无符号:0255
Smallint 2 16
Mediumint 3 24
int 4 32
Bigint 8 64

整型列的可选属性

tinyint(M) unsigned zerofill

M:代表宽度,只有在zerofill是才有意义

unsigned:无符号类型,非负(影响存储范围)

zerofill:零填充(如果某列为zerofill则只能是无符号类型即非负)、

浮点型与定点型

  1. 浮点型:Float(M,D):M代表总位数,D代表小数的个数

    eg:float(6,2)即可以存储数的范围:-9999.99~+9999.99

  2. 定点型:descrimal(M.D);M和D的含义同浮点型

注:浮点类型和定点类型所占的字节数是一定的,一般为4或8个字节;并不会因此存储的数字的大小而影响其所占的字节数

字符型

  • 在utf编码里面一个汉字占3个字节
  • 一个字母占一个字节
  • 一个汉字为一个字符

定义

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

区别:

宽度 实际存储的字符数(N<=M) 所占字符数 利用率
char M N(不够M个字符其余用空格补齐,读取的时候在将尾部的空格去掉,因此如果保存含有空格的数据会丢失长度) M(0<=M<=255) N/M <= 100%
varchar M N(末尾有空格,仍保存,取出的时候不会丢失长度) N+1~2字节(0<=M<=65535 约2w~3w受字符集的影响) M/(M+1~2)< 100%

注:varchar中最多可以存储的字符数为:(2^15 = 65535个字节)

若以ASCII为例:varchar中最多可以存储的字符数为65535

若以utf为例:varchar中最多可以存储的字符数为:222000

如何选择

  1. 空间利用效率:

    eg:四字成语表:char(4)、140字的个人简介或微博 varchar(140)

  2. 速度

    注:text类型也用于存储文本串声明方式:content text

    ​ 所占字符数大约为2w~3w

日期时间

年–>year(占一个字节;表示:1901~2155之间的年份【0000,表示错误时选择】)

年-月-日–>date 范围在1000-01-01 ~ 9999-12-31

hh-mm-ss–>time 范围在 -838:59:59 ~ +838:59:59

年-月-日-hh-mm-ss–>datetime 范围:1000-01-01 00:00:00 ~ 9999-12-31 23:59:59

注1:如果输入的是两位数字则:

0069之间表示的是:20002069

7099之间表示的是:19701999

(计算机的时间是从1970-01-01 00:00:00开始算起)

注2:在开发中很少用日期时间类型来表示一个精确到秒的列。

原因:虽然日期时间类型方便查看,但是不方便操作;因此引出了时间戳

**时间戳:**是1970-01-01 00:00:00到当前的秒数。一般用于存注册时间,商品发布时间

  1. 缺点:不直观
  2. 优点:方便计算,方便格式化

建表案例

create table myTable(
    name char(3) not null default ' ',
    age tinyint unsigned not null default 0,
    eamil varchar(30) not null default ' ',
    telphone varchar(11) not null default ' ',
    salary decimal(7,2) not null default '188.86',
    riqi date not null default'2019-5-4'
) charset utf8;

你可能感兴趣的:(数据库)