[Mysql]Mysql数据类型

Mysql数据类型

在设计表时,应该特别重视所用的数据类型。使用错误的数据类型可能会严重地影响应用程序的功能和性能。 更改包含数据的列不是一件小事(而且这样做可能会导致数据丢失)。 最常见数据类型:整型、浮点型、字符串、日期等

1、字符串数据类型

最常用的数据类型是串数据类型。它们存储串,如名字、地址、电 话号码、邮政编码等。 不管使用何种形式的串数据类型,串值都必须括在引号内。有两种基本的串类型,分别为定长串和变长串

1.1 定长串:char

  1. 接受长度固定的字符串,其长度是在创建表时指定的。 定长列不允许存储多于指定长度字符的数据。
  2. 指定长度后,就会分配固定的存储空间用于存放数据
char(7) 不管实际插入多少字符,它都会占用7个字符位置

1.2 变长串 varchar
存储可变长度的字符串 varchar(7) 如果实际插入4个字符, 那么它只占4个字符位置,当然插入的数据长度不能超过7 个字符。

既然变长数据类型这样灵活,为什么还要使用定长数据类型? 
回答:因为性能,MySQL处理定长列远比处理变长列快得多。

1.3 其他
在这里插入图片描述

2、数值类型 数值数据类型存储数值。

MySQL支持多种数值数据类型,每种存储的数值具有不同的取值范围。支持的取值范围越大,所需存储空间越多与字符串不一样,数值没必要括在引号内。
在这里插入图片描述

decimal(5, 2) 表示数值总共5位, 小数占2位 
tinyint 1字节(8位) 0-255。-128,127 
int 4字节。 -21亿,21亿。0-42亿 
MySQL中没有专门存储货币的数据类型,一般情况下使用DECIMAL(8, 2)

但是int还是可以加数字的。
int(4) unsigned zerofill 这时候会给int一个假定宽度。
如果int长度小于4位,那么会在前面补足0,比如1会变成0001。
只有当给int类型设置有前导零时,设置int的宽度才有意义。

3.表的字段约束

-unsigned 无符号(给数值类型使用,表示为正数,不写可以表示正负数都可以)
-字段类型后面加括号限制宽度
char(5). varchar(7) 在字符类型后面加限制 表示 字符串的长度
int(4) 一般没有意义,默认无符号的int为int(11),有符号的int(10)
int(4) unsigned zerofill只有当给int类型设置有前导零时,设置int的宽度才有意义。
-not null 不能为空,在操作数据库时如果输入该字段的数据为NULL ,就会报错
-default 设置默认值
-primary key 主键不能为空,且唯一.一般和自动递增一起配合使用。
-auto_increment 定义列为自增属性,一般用于主键,数值会自动加1
-unique 唯一索引(数据不能重复:用户名)可以增加查询速度,但是会降低插入和更新速度

4. 时间类型

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值