mysql存储数据类型、约束类型、键
内容概要
一、mysql字段数据类型
二、mysql约束条件
三、三大键
1、mysql数据类型
-整形:
tinyint 范围 -128 到 127
int 范围 -2**15 到 2**15-1
long int 不需要记
-浮点型:
float
double
ps:一般应用用到float就可以了,如果你是科学家,搞火箭或者核弹什么的,就要用到精度更高的数据类型了
-字符类型
varchar() 可变长度的字符串类型(括号内填入数字,表示最大存储的字符数,实际占用空间取决于插入的数据长度)
char() 不可变长度的字符串类型(括号内填入数字,表示最大存储的字符数,只要填入数据,实际占用的空间是固定的,多余的位置填充空格)
-varchar和char使用场景
-varchar存储数据时,会额外生成1到2个字节的数据用于记录插入数据的实际大小
-char存储数据时,直接开辟固定空间用于存储数据
结论:
varchar存储数据更节省空间,但是在提取时要先解析数据长度,所以提取时会稍慢
char存储数据相对浪费空间,但是在提取数据时直接提取,所以提取时会快些
当varchar存储的数据接近最大存储限制时,varchar由于存储了数据大小,所以节省空间的优势不存在
-枚举类型enum
enum() 里面填入预定的值,插入数据时只能插入enum括号内存在的唯一一个值
-集合类型set
set() 里面填入预定的值,插入数据时只能插入set括号内存在的值,可以插入多个值
create table school(
id int primary key auto_increment,
name char(15),
course set('python','linux','go','java'),
sub_school enum('oldboy','找蓝翔')
)
insert into school(name,course,sub_school) values('学什么学校','go java linux','oldboy');
2、mysql约束条件
mysql约束条件是对字段插入数据的一种限制
-not null 插入的数据不能为空
-default 增加默认值
-unsigned 数据值无符号
tinyint unsigned 范围 0 到 255
int unsigned 范围 0 到 65535
3、三大键
-primary key主键
使用innodb存储引擎创建表时,必须指定一个字段为主键,主键的设置,可以为加快搜索表中数据的效率
注意:每张表的主键必须是唯一的,通常为id字段,并且设置自增auto_increment,主键字段默认不能为空
create table student(
id int primary key auto_increment,
name varchar(10),
age int not null,
gender enum('male','female')
)
create table student(
id int primary key auto_increment,
name varchar(10),
age int not null,
gender enum('male','female'), 看这个逗号
)
注意:不要在枚举类型右括号后面添加",",否则会报错
-unique key 唯一键
unique 设置的字段值是为一的,但是可以为多个null
设置unique key的两种方式
-直接跟在字段名后面
create table t1(
id int primary key auto_increment,
c_id int unique
);
-设置好字段后,利用unique key方法转换
create table t1(
id int primary key auto_increment,
c_id int,
unique key(c_id)
);
ps:这种方法可以设置联合唯一键
create table t1(
id int primary key auto_increment,
c_id int,
d_id int,
unique key(c_id,d_id)
);
-外键foreign key
本文来自博客园,作者:口乞厂几,转载请注明原文链接:https://www.cnblogs.com/laijianwei/p/14466247.html

浙公网安备 33010602011771号