wordpress代码解释,WordPress优化百度广告,东莞市网络seo推广平台,成都 视频网站建设MySQL教程-关系模型Date 2021-1-22Author Haihan Gao什么是关系模型关系模型本质上就是多个存储数据的二维表表的每一行称为记录记录是一个逻辑意义上的数据表的每一列称为字段。同一个表每一行记录拥有若干相同字段字段定义数据类型#xff1a;INT,BIGINT,DOUBLE是否允许为NU…MySQL教程-关系模型Date 2021-1-22Author Haihan Gao什么是关系模型关系模型本质上就是多个存储数据的二维表表的每一行称为记录记录是一个逻辑意义上的数据表的每一列称为字段。同一个表每一行记录拥有若干相同字段字段定义数据类型INT,BIGINT,DOUBLE是否允许为NULL字段数据不存在0或空串不允许为NULL可以简化查询条件加快查询速度关系数据库的表之间需要建立一对多多对一多对多的关系关系数据库中关系通过主键和外键维护RDBMS(关系数据库管理系统)的特点数据以表格形式出现每行为各种记录名称每列为记录名称所对应的数据域许多行和列形成一张表单若干表单组成DatabaseRDBMS术语数据库关联表的集合数据表数据形成的矩阵列每一列的数据类型相同行一个多元组其中每一维的数据类型可能相同可能不同冗余存储一个数据的副本降低性能但是提升安全性主键一张表中每一行数据称为一个记录每个记录由多个字段组成关系表中的约束一张表中不能有两条重复的记录不能重复指的是可以通过某个字段唯一区分出不同的记录这个字段称之为主键对主键的要求记录一旦插入表中主键最好不再被修改选取主键的基本原则不使用任何业务相关的字段作为主键业务无关的字段称之为id常见的id类型自增整数全局唯一的GUID全局唯一的字符串使用INT自增作为ID可能导致溢出的问题联合主键两个或多个字段被设置为主键允许一列重复只要可以通过多个主键唯一确定记录即可使得复杂度上升不建议使用外键一对多表-表之间记录建立关系两个表的关系是一对多的表示表A的一个记录对应表B的多个记录找到表B中的某个记录对应的表A中的记录只需要在表B的记录中加上一列表示这个记录对应的表A中记录的主键id有点抽象可以看这个例子外键实际上外键不是通过列名实现的而是通过外键约束实现的ALTER TABLE studentsADD CONSTRAINT fk_class_idFOREIGN KEY (class_id)REFERENCES classes (id);做几点说明第二行指定外键约束的名称第三行指定class_id作为外键第四行将外键关联到classes表的id列外键约束还能保证不插入无效的数据插入的数据需要检查外键是否有效外键约束的缺点降低数据库的性能将class_id视为一个普通的列应用程序自身检查逻辑的正确性删除外键约束通过ALTER TABLE实现ALTER TABLE studentsDROP FOREIGN KEY fk_class_id;多对多通过两个一对多关系实现的引入中间表关联两个一对多关系一对一一个表中的记录对应另一个表中的唯一记录student对应contact在contact表中添加唯一一列student_id合并两个表student没有contact一对一关系存在的另一个原因是存在热数据的问题一个记录中某个字段被经常用到另一些字段用到的概率较小这样拆分成两个表可以提升查询的效率比如一个存储用户信息的表user,我们将其拆分成user_info和user_profiles前者被用到的概率大这样我们就只用查前面的表就能获得所需信息索引对于关系数据库含有许多条记录我们为了快速找到某条记录可以使用索引。对于一个student表有如下列id主键class_id班级表外键nameGPA如果我们要按照GPA列进行查询可以对GPA列创建索引ALTER TABLE studentsADD INDEX idx_GPA(GPA);说明第二条语句创建了一个名称为idx_GPA,使用GPA列的索引索引名称是任意的如果索引有多列可以在括号中依次写上ALTER TABLE studentsADD INDEX idx_name_score (name, score);索引其实是通过一个散列表实现的只要这个索引的散列性越好通过这个索引查找记录的效率就越高对于主键自动创建主键索引主键索引保证唯一索引可以提升查找效率但是更新删除记录时会导致修改索引影响更新效率唯一索引设计关系数据表的时候我们往往会遇到一些看上去不会重复的列比如身份证号邮箱地址。之前说过这些列不适合作为主键但是我们可以为这些列添加唯一索引。添加唯一索引的样例如下ALTER TABLE studentsADD UNIQUE INDEX uni_name (name);UNIQUE关键字告诉SQL添加的是唯一索引也可以对某个列添加唯一约束但是不创建唯一索引ALTER TABLE studentsADD CONSTRAINT uni_name UNIQUE (name);在关系数据库中查询的时候如果有索引数据库系统就会根据索引来提高查找效率。索引用于数据库查找的优化。