常用数据类型
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)、当主表的记录被从表参照时,主表的记录将不允许删除,如果要删除数据,需要先删除从表中依赖该记录的数据, 然后才可以删除主表的数据