MySQL基础--数据类型和约束

数据类型和约束

(一)数据类型

MySQL数据库中提供了数据类型可以用于在不同场景中描述具体数据,主要包含数值型以及日期时间型、字符型、二进制型等各种类型。

*1、 数值型*

*类型**字节**描述*
TINYINT1 字节(-128,127)
SMALLINT2 字节(-32 768,32 767)
MEDIUMINT3 字节(-8 388 608,8 388 607)
INT4 字节(-2 147 483 648,2 147 483 647)
BIGINT8 字节(-9,223,372,036,854,775,808,9 223 372 036 854 775 807)
FLOAT4 字节(-3.402 823 466 E+38,-1.175 494 351 E-38),
0,(1.175 494 351 E-38,3.402 823 466 351 E+38)
DOUBLE8 字节(-1.797 693 134 862 315 7 E+308,
-2.225 073 858 507 201 4 E-308),0,
(2.225 073 858 507 201 4 E-308,
1.797 693 134 862 315 7 E+308)
DECIMALDECIMAL(M,D),如果M>D,为M+2否则为D+2
decimal(3,1) 12.3

备注:较为常用的数值类型

INT/INTEGER:表示整数;DOUBLE:表示浮点数;DECIMAL:设置自定义精度

*2、 日期时间型*

*类型**字节**描述*
DATE(日期)3字节1000-01-01/9999-12-31
TIME(时间)3字节‘-838:59:59’/‘838:59:59’
YEAR1字节1901/2155
DATETIME8字节1000-01-01 00:00:00/9999-12-31 23:59:59
TIMESTAMP4字节1970-01-01 00:00:00/2038

备注:日期时间常用类型

DATETIME:描述日期和时间的结合体

TIMESTAMP:结束时间是第 2147483647 秒,北京时间 2038-1-19 11:14:07,格林尼治时间 2038年1月19日 凌晨 03:14:07

*3、 字符串型*

*类型******字节**描述*
CHAR0-255字节定长字符串
VARCHAR0-65535 字节变长字符串
TINYBLOB0-255字节不超过 255 个字符的二进制字符串
TINYTEXT0-255字节短文本字符串
BLOB0-65 535字节二进制形式的长文本数据
TEXT0-65 535字节长文本数据
MEDIUMBLOB0-16 777 215字节二进制形式的中等长度文本数据
MEDIUMTEXT0-16 777 215字节中等长度文本数据
LONGBLOB0-4 294 967 295字节二进制形式的极大文本数据
LONGTEXT0-4 294 967 295字节极大文本数据

备注:字符类型中常用数据类型

VARCHAR:描述变长字符串

TEXT:描述长文本数据

*4、 varchar和text*

char: char是定长格式的,但是长度范围是 0~255. 当你想要储存一个长度不足255的字符时,Mysql会用空格来填充剩下的字符。因此在读取数据时,char类型的数据要进行处理,把后面的空格去除。

Char(5) 5代表字符的个数

​ ‘’12345‘’ 最多存5个字符

​ ‘1‘ 如果不够5个 其他使用 空格占位

varchar: varchar 类型在 5.0.3 以下的版本中的最大长度限制为 255,而在5.0.3 及以上的版本中,varchar数据类型的长度支持到了65535,也就是说可以存放 65532个字节(注意是字节而不是字符!!!)的数据(起始位和结束位占去了3个字节)在 5.0.3 以下版本中需要使用固定的 TEXT 或 BLOB 格式存放的数据可以在高版本中使用可变长的varchar 来存放,这样就能有效的减少数据库文件的大小。

​ varchar(5)

​ ‘’12345‘’ 最多存五个

​ ‘’1‘’ 如果不够5个 实际占据内存大小以,以存储的数据大小为准

text: 与 char 和 varchar不同的是,text 不可以有默认值,其最大长度是 2 的 16 次方-1

*结论:*

• 经常变化的字段用varchar

• 知道固定长度的用char

• 尽量用 varchar

• 超过 255 字符的只能用varchar 或者 text

• 能用 varchar 的地方不用text

(二)数据表约束

表约束,就是一种对数据格式和数据内容的限制,在数据库标准查询语言SQL中,定义了通用约束规范:

• 主键约束(当前字段数据具有唯一且非空):标注数据表中每条记录都是唯一的标识不能重复且不能为空,通过关键字primary key添加

• 外键约束:标注当前数据表和其他数据表之间的关联关系,通过关键字foreign key添加(多表关系时具体讲解)

• 唯一约束(当前字段数据吗,唯一可为空):标注当前字段数据的唯一性,当前字段添加数据时,不能重复可以为空,通过关键字unique添加

• 默认约束(设置当前字段默认值):标注当前字段默认数据,通过关键字default添加,给字段添加默认值,当添加数据时没有给这个字段添加数据就使用默认值

• 非空约束(设置当前字段不能为空):标注当前字段默认数据不能为空,通过关键字not null添加

• 自增约束:标注当前字段数据默认+1一般配合主键使用,通过关键字auto_increment添加

• 无符号:主要用于数值类型,无符号代表为正数,unsigned

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

扁舟钓雪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值