- 主外键标识
- 如果键是PRI,则列是主键或多列主键中的列之一。
- 如果键是UNI,则该列是唯一索引的第一列。
- 如果键为MUL,则该列是非唯一索引的第一列,其中允许在列中多次出现给定值。
- MySQL的三大范式
- 要求具有原子性、字段不可在被分割。
- 必须满足第一范式的前提下,除了主键外,其它的字段都必须完全依赖主键。
- 必须满足第二范式的前提下,除了主键外,其它字段之间不能有传递依赖;根据项目的场景适当的降低对范式的要求,提高运行的效率。
- 数据库的端口
- MySQL:3306
- Oracle:1521
- SQL Server:1433
- 事务的特征
- 原子性、一致性、隔离性、持久性
- 事务是一种机制、使用setcommit = 0; 关闭自动提交、1:为自动提交
- MySQL的机制
- InnoID: 支持事务和外键,占用空间比MyISAM大,适用于需要事务处理、更新比较频繁的场景。
- MyIsAM: 不支持事务和外键,占用空间比InnoDB小,适用于不需要事务处理、查询频繁的场景。
- 操作
- 添加一列:alter table table_name add age varchar(10) not null;
- 修改一列:alter table table_name change name age varchar(10);
- 删除一列:alter table salgrade_copy1 drop age;
- 修改表名称:alter table salgrade_copy2 rename salgrade_copy1;
- 修改一列的数据类型:alter table salgrade_copy1 modify age char (10);
- 总结:【添加:add】、【删除、drop】、【修改:change】、【修改类型:modify】、【修改表名:rename】
- 索引
- 唯一约束(Unique Key):如员工姓名:添加上唯一索引,表示该列值不允许重复。
- 普通索引:查询更快:create index index_name on LouisVan(codemap)
- 联合索引:体现在多张表中: student_course通过studentId与courseId确定主键id
- 改表中有字段:id、studentId、courseId
- 复合索引:name + phone
- union
- select p1.product_name from product1 p1 where p1.product_type = '衣服' union all select p2.product_name from product2 p2 where p2.product_type = '衣服'
- exists
- select * from a where exists (select * from b where a.id = b.aid)
- MySQL正则表达式
- 以1开头
- select * from salgrade_copy1 where losal regexp '^1';
- 以1结尾
- select * from salgrade_copy1 where losal regexp '1$';
- 包含12
- select * from salgrade_copy1 where losal regexp '12';
- MySQL触发器
- 当表发生了增、删、改的时候触发。
- 比如获取推送充电桩状态数据,0位成功,1为失败,触发器可以记录失败的数据并插入到日志表中。
- 关键字:trigger
- 储存过程
- 好处:大大提升效率,减少与数据库的交互,提高了安全性。
- 坏处:需要大量的计算、判断数据是否合法,影响数据库的性能。
- 关键字:procedure
- 调用方式:call 存储工程名称();
- 函数
- MySQL有五大聚合函数:avg()、count()、mix()、max()、sum();
- 函数存储这一系列的SQL语句,封装到function中,减少了SQL的重复性、调用函数名称一次性执行这些函数。
- 关键字:function
- 调用方式:select 函数名称();
- 视图
- 可视化的表,不建议修改里面的数据
- 关键字 view
- 调用方式:select * from 视图名称();
posted on
2021-03-11 14:27
(Play)
阅读(
43)
评论()
编辑
收藏
举报