Mysql的相关列属性

整型

类型字节描述
Tinyint18默认有符号:-128127;无符号:0255
Smallint216
Mediumint324
int432
Bigint864

整型列的可选属性

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)所占字符数利用率
charMN(不够M个字符其余用空格补齐,读取的时候在将尾部的空格去掉,因此如果保存含有空格的数据会丢失长度)M(0<=M<=255)N/M <= 100%
varcharMN(末尾有空格,仍保存,取出的时候不会丢失长度)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;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值