• 关系型数据库概述

实体和实体之间存在关系,称为关系模型,关系型数据库其实就是由多张有关系的表组成的数据库。关系型数据库中,关系是通过主键和外键来维护的

  • mysql推荐使用InnoDB引擎

mysql本身只提供SQL接口,至于使用何种数据库引擎只是引擎的速度不一样

  • mysql一个数据库的大致组成
  1. 表中的一行,称为记录
  2. 每一行的每个内容,称为字段,字段允许为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连接