Mysql 是数据库管理系统。属于关系型数据库。
在当今的互联网中,最常见的数据库模型主要是两种,即关系型数据库和非关系型数据库。mysql就是典型的关系型数据库。
关系型数据库的特点是将数据保存在不同的表中,再将这些表放入数据库中,而不是将所有数据统一放在数据库里,这样的设计增加了MySQL的读取速度,灵活性和可管理型也得到了很大提高,访问以及管理MySQL数据库的最常用标准化语言为SQL结构化查询语句。数据持久化存储在硬盘当中;
关系型数据库设计规则:
设计遵循ER模型和三范式
E entity 代表实体的意思 对应到数据库当中的一张表
R relationship 代表关系的意思
三范式:1、列不能拆分 (字段不能拿属性来用,就是字段不能再拆分其他的 比如name)
2、唯一标识 (必须有一个东西分开数据 比如ID)
3、关系引用主键 (表与表之间)
数据表的设计:
在表中为了更加准确的存储数据,保证数据的正确有效,可以在创建表的时候,为表添加一些强制性的验证,包括数据字段的类型、约束。
1). 字段类型
在mysql中包含的数据类型很多,这里主要列出来常用的几种
数字:int,decimal(小数的);
例如decimal(5,2)的意思是,最大5位数,其中小数2位,1.2和2.33都行,但10000.21就不行,超出位数了
字符串:char ,varchar,text
text存储比较多的字符串,比如商品的描述信息
char存储的是固定的字符串数据
varchar存储的是可变的数据
存储的是字符
char(8)存储的数据不满8个字符会在右侧自动补上空格字符-->"abcd "
使用场景
存手机号码固定的就可以使用char(11)
varchar(8)存储数据不满8个字符,不会自动空格字符-->"abcd"
例如存姓名用varchar(8)
日期:datetime,date,time 1987-07-24
布尔:bit
bit(8)八个二进制位
bit表示一个位
存储性别的时候:
存储0或者1开销少
如果存储male和female开销大
两个状态存储的时间建议使用存储0和1方式
比如性别,数据是否删除
2). 约束--主键、非空、惟一,默认值,外键,自动增长
约束就是限制的条件
主键primary key;不能重复,唯一标识,物理的存储方式,速度快
非空not null;比如要姓名不能为空,当保存为null的时候就会报错。
惟一unique;这个值是唯一的。有重复的了会报错(比如身份证)
默认default;如果不写就会有个默认值,这种叫默认,只有类型。
外键foreign key