==============【康师傅的Day1笔记】=================
目录
1. 数据库相关概念
DB:数据库(Database):存放数据的仓库,本质是一个文件系统
DBMS:数据库管理系统(Database Management System):即MySQL,管理数据库的大型软件,用于建立、使用和维护数据库。用户通过这个软件,访问数据库DB 表内的数据.。可以理解为用美图看看打开一个jpg图片,那么美图看看就类似于DBMS
其中C盘里的ProgramData是隐藏文件夹,勾选后就能看到啦
SQL:结构化查询语言(Structured Query Language):用来与数据库通讯的语言
可以读成circle,但是不要读成S-Q-L- 0.0
三者的关联:我们使用SQL运行到DBMS中,让DBMS替我们去DB中进行相关操作
用户通过TCPIP协议和端口号访问mysql数据库
2. MySQL简介
开放源代码的关系型数据库管理系统 (RDBMS)
RDBMS:最古老的数据库类型,关系型数据库的模型是将复杂的数据结构归结为二元关系,即二维表格形式。以行和列储存数据,即一个table;很多个table构成一个数据库database。表与表之间存在关系,其联系用关系模型来表示,RDBMS即建立在关系模型基础上的数据库,属于行式数据库,即一行代表一个数据
3. RDBMS设计规则
3.1 表、记录、字段
一个实体集对应数据库中的一个表;一个实体对应数据库表中的一行(也称为一条记录);一个属性对应表中的一列(也称为一个字段)
ORM思想:关系对象映射
数据库中的一个表===Python中的一个类
表中的一行数据===类中的一个对象
表中的一列===类中的一个属性
一个数据库中的表名不能相同,表是以.ibd结尾的文件
3.2 表之间的关联关系——E-R模型
E-R(实体-联系)模型中三个主要概念:实体集(表)、属性(表中字段)、联系集(表1中的数据与表2中数据的关系)
表与表之间的数据记录有关系。一般有四种,一对一,一对多,多对多(多方发送,多方接收),自我引用
3.2.1 一对一关联(one to one)
实际应用中不多,因为可以直接变成一张表。可以避免冗余信息,增大效率
两种建表原则:
当表中字段很多,其中一些是常用的,另一些是不常用的,此时建议拆分成两个表来记录,可以避免查询时IO太多,出现太多冗余字段
外键唯一:主表的主键和从表的外键(唯一),形成主外键关系,外键唯一
外键是主键:主表的主键和从表的主键,形成主外键关系
3.2.2 一对多关联(one to many)
客户表和订单表,分类表和商品表....
一是主表,多是从表
3.2.3 多对多关联(many-to-many)
要表示多对多必须创建第三个表,称为关联表,它将多对多的关系划分成两个一对多的关系。将这两个表的主键都插入第三个表中。
一个学生对应多门课,一门课对应多个学生,选课信息表作为关联表
3.2.4 自我引用(self reference)
自我引用是在一个表里出现的关系
在员工表中,104和105都对应103号主管,而103主管也是表中的一名员工