- 关系型数据库概述
实体和实体之间存在关系,称为关系模型,关系型数据库其实就是由多张有关系的表组成的数据库。关系型数据库中,关系是通过主键和外键来维护的
- mysql推荐使用InnoDB引擎
mysql本身只提供SQL接口,至于使用何种数据库引擎只是引擎的速度不一样
- mysql一个数据库的大致组成
- 表
- 表中的一行,称为记录
- 每一行的每个内容,称为字段,字段允许为NULL,表示字段不存在,正常一般不建议为NULL,影响性能
- mysql数据常用字段类型
名称 | 类型 | 大小 | 说明 |
INT | 整型 | 4byte | 范围+/- 21亿 |
BIGINT | 长整型 | 8byte | 范围+/- 922亿 |
DOUBLE | 浮点型 | 8byte | 范围+/- 100^308 |
CHAR | 定长字符串 | - | 用户自定义长度CHAR(10)表示10个字符的长度 |
VARCHAR | 可变长字符串 | - | 用户自定义长度VARCHAR(10)表示0-10个任意字符的长度 |
BOOLEAN | 布尔类型 | - | 存储true或者false |
DATE | 日期类型 | - | 存储日期2019-03-15 |
TIME | 时间类型 | - | 存储时间12:00:00 |
DATETIME | 日期时间类型 | | 存储2019-03-15 12:00:00 |
- mysql关系模型介绍
// 主键
作用:保证记录唯一性,通过主键就能确定一条记录,独一无二
主键设置要求:
主键一旦确定就不建议修改
主键最好选择没有任何业务关系的字段,避免业务发生变化,字段发生变化带来的一系列变化,
推荐使用无任何关系的id作为主键,而且设置自增
// 联合主键,两列的字段设置为联合主键,允许两个字段组合起来唯一确定一条记录,不建议使用,复杂度高
// 外键
作用:通过外键字段id确认相关关系
设置要求:一般是设置另一张表的主键字段也就是id字段为外键
设置语句
ALTER TABLE students
ADD CONSTRAINT fk_class_id
FOREIGN KEY (class_id)
REFERENCES classes (id);
// 表设计
如果关系复杂,一般可以把一个大的表拆成几个小的表
还有的为了提高性能,会把一些常用的字段放在一个表,不常用的放在一个表,提高查询速度
// 关系模型中的索引
有的时候为了得到更快的查询速度,就需要设置索引,索引可以不需要扫描整个表,直接定位到符合条件的记录
设置需求:如果经常对一个字段进行查询,就可以给他设置索引
设置语句
ALTER TABLE students
ADD INDEX idx_score (score);
- mysql查询
// 基本查询
SELECT * FRMO STUDENT
// 条件查询
SELECT * FROM STUDENT WHERE 条件表达式
// 条件表达式
SELECT * FROM student WHERE age > 20
大于 >
小于 <
等于 =
大于等于 >=
小于等于 <=
不等于 <>
// 多条件查询连接
SELECT * FROM student WHERE age > 20 AND class_id = 1
AND 满足多个条件使用AND连接
OR 满足任意一个条件使用OR连接