MySQL数据库高级特性:
MySQL数据库高级特性创建测试表create database jx character set utf8use jx;my desc users;主键特性唯一标识的一条记录不能有重复值一个表有一个主键可以是单列或多列的组合自动定义为NOT NULL作用数据的唯一标识数据的完整性维护提高查询性能建立表间关系的基础外键 特性 确保子表中的数据在父表中有对应值可以实现级联更新和删除外键一定是某一张表的主键作用 维护数据一致性实现多表关联操作简化数据模型设计索引特性快速定位数据来提高查询速度可以是唯一的unique或非唯一的类型数据结构可分为Btree索引hash索引fulltext索引按物理存储分类可分为聚簇索引、二级索引辅助索引按字段特性分类可分为主键索引、普通索引、前缀索引按字段个数分类可分为单列索引、联合索引复合索引、组合索引约束作用数据验证 维护数据完整性 简化应用程序逻辑查看:select * from information_schema.TABLE_CONSTRAINTS whereTABLE_NAMEusers\G;删除ALTER TABLE users DROP CONSTRAINTchk_username_nonempty;存储过程优点提高性能增强安全性简化复杂操作减少网络流量SHOW PROCEDURE status; 查看所有SHOW PROCEDURE status where Dbjx\G; 查看指定数据库的存储过程show create procedure GetAllUsers\G; 查看指定存储过程DROP PROCEDURE IF EXISTS GetAllUsers; 删除应用场景 数据处理和转换业务逻辑封装系统维护和管理触发器 在 INSERT、UPDATE 或 DELETE 操作之前或之后自动执行用于自动化维护数据的完整性或实施业务规则触发器类型按触发事件分INSERT触发器 UPDATE触发器 DELETE触发器按触发时间分BEFORE触发器 AFTER触发器查看show triggers\G;DELIMITER //CREATE TRIGGER set_order_date_before_updateBEFOREupdate ON ordersFOR EACH ROWBEGINSET NEW.order_date OLD.order_date;END /DELIMITER ;Before与After区别BEFORE触发器是在实际数据更改操作之前执行的。它们通常用于验证将要插入、更新或删除数据是否符合特定的条件以及在执行操作之前对其进行修改。BEFORE触发器还可以用于检外键约束或确保数据的完整性。AFTER触发器是在数据插入、更新或删除操作已经完成之后执行的。它们通常用于记录日志或执行其他操作这些操作可能需要在数据进行更改后才能执行。AFTER触发器还可以用于计算汇总值或执行其他聚合操作NEW和OLDNEW新行OLD旧行当在触发器中编写 INSERT、UPDATE 或 DELETE 语句时“new” 和 “old” 分别代表触发器所针对的表中被修改即被更新、插入或删除的新行和旧行。如果触发器是在 INSERT 操作之前被触发那么 “new” 代表将要被插入到表中的新行。如果是在 UPDATE 或 DELETE 操作之前被触发那么 “old” 代表将要被更新或删除的行而 “new” 代表更新后或者删除后将要被插入到表中的新行。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2496297.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!