MySQL常见的数据类型
mysql的数据类型:数值型、日期/时间、字符串类型
tinyint:小整数,数据类型用于保存一些范围的整数数值范围,MySQL中无布尔值,使用tinyint(1)构造
int:整数
varint:大整数
float:单精度浮点数,数值越大越不准确
double:双精度浮点数,数值越大月不准确
char:用于表示固定长度的字符串,可以包含最多达255个字符
varchar:用于变长的字符串,可以包含最多达255个字符。
虽然varchar使用起来较为灵活,但是从整个系统的性能角度来说,char数据类型的处理速度更快。
text:用于保存变长的大字符串
date:YYYY-MM-DD(2021-06-09)
timer:HH:MM:SS(“20:30:25”)
year:YYYY(2021)
datetime:YYYY-MM-DD HH:MM:SS(2021-02-27 00:00:00)
timestamp:YYYYMMDD HHMMSS(2019-08-09 00:00:00)
主键和外键
主键:表中的一个或多个字段,它的值用于唯一的标识表中的某一条记录。一个表中只能有一个主键,主键可以由多列组成
外键:用于建立两个表数据之间的联系。一个表中可以有多个外键
表与表之间的关系
在创建有关联的表的时候,要先创建被关联的表,再创建关联表。
多对一或一对多
1、在创建被关联的表的时候,保证被关联的表的字段必须唯一 2、在创建关联表时,保证关联字段要有重复的
书和出版社的例子,多个书可以是一个出版社,一个出版社也可以有很多书
一对一
用户和管理员的例子,一个管理员对应一个用户
多对多
联合唯一:unique (book_id,author_id)
联合主键:alter table t1 add primary key (id,avg)
一个作者可以写多本书,一本书也可以有多个作者,双向的一对多
级联操作
级联操作:当主表的关联字段发生变更时,从表自动做出相应的改变
级联更新
:当主表的记录发生更新时,从表自动更新自己的外键值级联更新
:当主表的关联记录被删除时,从表会自动删除与主表删除记录相关联的记录