数据库常见数据类型和约束

谁说胖子不能爱 提交于 2019-11-28 12:25:50

常用数据类型

MYSQL数据库支持多种类型,大致可以分为三个类型:数值型、时间/日期型和字符型

在这里就列举一些我们常用的数据类型

1、数值型

表示整数型数据类型(tinyint、smallint、mediumint、int)  浮点型数据类型(float、double)

 

用法:

1)、整形   ( 学号)

区别为存储大小不同,取值范围不同

tinyint(m)  取值 【-128,127】

tinyint(m)  unsigned(可省略) zerofill   取值 【0,255】

m 定义为字段长度,与zerofill搭配时,数据精度不足时,自动用0补齐  例如:(001)

2)、浮点型    (身高)

float (m , z)    m : 字段总长度    z : 小数点后的位数

取值【-3.4*10-38,3.4*1038

缺点 : 丢失精度,相较于double精度更低

2、字符型

表示字符型数据类型(char、varchar)

char (m)  m 影响存储长度  (姓名)

3、时间日期型

表示时间值的日期和时间类型(datetime、date、time和year)

Mysql中的约束

1、not null

not null 即为非空约束,指定某一行的值不能为null。

建立一个s表,将id设置为int型,not null约束

插入数据id为null就会报错

备注:所有的类型的值都可以是null,包括int、float、dateTime等数据类型 空字符串(”)是不等于null,0也不等于null 。

2、unique

unique代表唯一约束。唯一约束是指定table的列或列组合不能重复,保证数据的唯一性。但是可以为多个null,同一个表可以有多个唯一约束,多个列组合的约束。

在创建唯一约束的时候,如果不给唯一约束名称,就默认和列名相同。MySQL会给唯一约束的列上默认创建一个唯一索引;

 唯一约束是通过唯一索引实现的,换句话说,唯一索引是实现唯一约束的基础。所以,建唯一约束,会自动建唯一索引,但建唯一索引,不会自动创建唯一约束。

 

建表给doc加上一个唯一约束

 

插入数据示例

插入成功。说明对于,当为null的时候,唯一索引是不进行判断唯一性的

3、primary key

作用:用来保证数据完整性

特点:

1)、主键约束相当于唯一约束+非空约束的组合,主键约束列不允许重复,也不允许出现空值;

2)、每个表最多只允许一个主键,建立主键约束可以在列级别创建,也可以在表级别上创建;

3)、MySQL的主键名总是PRIMARY, 当创建主键约束时,系统默认会在所在的列和列组合上建立对应的唯一索引;

4、foreign key

作用:保证一个或两个表之间的参照完整性,构建一个表的两个字段或是两个表的两个字段之间的参照关系。

特点:

1)、从表的外键值必须在主表中能找到或者为空。

2)、当主表的记录被从表参照时,主表的记录将不允许删除,如果要删除数据,需要先删除从表中依赖该记录的数据, 然后才可以删除主表的数据

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!