Mysql基本内容之字段类型

综述

mysql中常用的数据类型有下面这些
mysql中的基本数据类型

整数类型

整型各类型的空间的值的区别

参数所占字节带符号最小值无符号最小值带符号最大值无符号最大值 |
tinyint1-1280127255
smallint2-32768032767622335
mediumint3-83886080838860716777215
int4-2147483648021474836474294967295
bigint8-92233720368547758080922337203685477580718446744073709551615

注意:最大值和系统有关系,如windows32位和64的最大值是不一样的,windows和linux的最大值也是不一样的;

使用形式:
//类型名【(长度)】  【unsigned】 【zerofill】
tinyint(2) unsigned

说明:
1,长度:就是用来设定要“显示”的长度位数(数字个数),
2,unsigned:就是用于设定该类型中的数字没有符号(正负号),即没有负数;
3,zerofill:就是“填充0”的意思,即如果一个数字,没有达到指定的长度,则系统就会用0填充到其左边。
- 其中M表示“显示长度”,其需与zerofill结合使用才有效,即不够该长度的会自动左侧补0,当然如果超出也不影响。
- unsigned表示“无符号数”,表示其中的数值是“非负”数字
- 如果设置了zerofill,则自动也就表示同时具备了unsigned修饰
- 如果设置了zerofill但没有设定长度M,则其会默认将所有数的左边补0到该类型的最大位数

小数类型

浮点型:

单精度浮点型:float,其精度大约可以精确到6-7位;
双精度浮点型:double,其精度大约可以精确到15位左右;
特点:浮点型的小数,其内部的二进制形式,很可能是非精确的

定点型:

decimal,或使用dec。
形式:

//decimal(总精度,小数部分精度);
decimal(12,2)

说明:
1,总精度,其实就是可以用于精确表达的位数,包括小数部分的位数和整数部分的位数;
2,总精度最大为65位,小数部分的精度(位数),最大为30位。

字符类型

char类型:

定长字符串,表示设定的长度,其存储的时候,就是该长度——不够就会自动补空格填满;
最大可设定为255,表示可存储255个字符;

varchar类型:

变长字符串,表示设定的长度,是可存储的最大长度,实际存储长度可以小于该长度;
该类型存储的时候,还需要在字段内的最前面额外存储该字段的实际长度;
最大可设定为65533,表示最大可存储65533个字符;
因为考虑因素:一行的总的存储空间限制是65535字节,
但有考虑字符编码的问题,又会出现:
如果存储的是纯英文字符,则实际最多可存储65533个字符;
如果存储的是纯gbk的中文字符,则实际最多可存储的是65533/2个字符;
如果存储的是纯utf8的中文字符,则实际最多可存储的是65533/3个字符;

text类型:

它通常用于存储“大文本”,因为其可存储65535个字节,并且,不受行存储空间的限制;

enum类型:

用于存储若干个“可选项之一”的一种字符类型。
通常,是在字段定义时,预先设定多个选项,而且是作为单选项,实际存储数据的时候,就可以选择其中一个存入数据库。
它适合于存储在网页中的“单选项”数据,比如:单选按钮,下拉列表选项值等等;
形式:

enum(‘单选项1’, ‘单选项2’, ‘单选项3’, ....... );     //最多65535个。

说明:
这些选项,在系统内部,实际对应的是如下这些数字值:1, 2, 3, 4, 5, 6, ….

set类型:

用于存储若干个“多选项”的一种字符类型。
通常,是在字段定义时,预先设定多个选项,而且是作为多选项,实际存储数据的时候,就可以选择其中若干个选项值存入数据库。
它适合于存储在网页中的“多选项”数据,比如:多选按钮;
形式:

set(‘多选项1’, ‘多选项2’, ‘多选项3’, ....... );      //最多64个。

说明:
这些选项,在系统内部,实际对应的是如下这些数字值:1, 2, 4, 8, 16, ….

时间和日期类型

date类型:

用于存储(记录)年月日这种时间的数据,其范围可以为:’1000-01-01’到’9999-12-31’

time类型:

用于存储(记录)时分秒这种时间的数据,其范围可以为:’-838:59:59’到’838:59:59’

datetime类型:

用于记录年月日时分秒这种较为精确的时间数据,其范围为:’1000-01-01 00:00:00’到’9999-12-31 23:59:59’

year类型:

用于记录一个年份数据,通常就是指年份数字,比如2018,1983,其有两种形式:
使用一个数字:
2位数字:1-99之间
4位数字:1901-2155之间
使用一个字符串:
2位字符串:’00’到’99’
4位字符串:’1901’到’2155’

timestamp类型:

用于记录一个“当前时间”的精确的时间戳——也就是某个时刻的对应整数值;
该整数值,表示,从1970年1月1日0时0分0秒开始算起到该时候所经历的秒数;
而且,其有如下特征:
该字段的值,会在一个表的某行数据执行insert或update的时候,自动获取该时刻的时间戳值;

注意:
作为时间日期类型的数据,如果是在代码中插入一个具体的字面数据值,则需要用单引号引起来——跟字符类型一样。
如果是存时间戳的话可以直接用int类型,查询的时候效率更高

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值