摘要:
数据库有六种范式,一级比一级更加严格,一般来说数据库满足第二/三范式就够了。各大教科书上对范式的定义都比较抽象,建议结合实例理解各大范式的含义,再回顾定义透彻理解。 第一范式:在关系模型中,对于添加的一个规范要求,所有的域都应该是原子性的,即数据库表的每一列都是不可分割的原子数据项,而不能是集合,数 阅读全文
摘要:
事务处理用来维护数据库的完整性,用来管理成批执行的MySQL操作。下面分别举例说明怎么开启事务,进行回滚,提交和使用保留点。 1、开启事务 START TRANSACTION 2、使用回滚Rollback 例1:删除表的所有行再回滚 SELECT * FROM ordersnew;START TRA 阅读全文
摘要:
触发器在想要某条语句在事件发生时自动执行时使用,如每订购一个产品都从库存数量中减去订购的数量。支持触发器的语句有delete,update,insert。 触发器需要的4条信息: 唯一的触发器名, 触发器关联的表, 触发器响应的活动, 触发器何时执行。 下面仍然举一个简单的例子说明触发器的使用。 例 阅读全文
摘要:
创建存储过程可以为以后的使用保留一条或多条MySQL语句的集合,不用反复建立一系列步骤,减少对变动的管理,提升性能。(简单、安全、高性能) 下面举个列子说明存储过程的创建、使用和一些注意事项。 例:现在你要进行订单合计,而且要对部分顾客增加营业税,要求返回带有营业税的订单合计结果。 如果在利用简单的 阅读全文
摘要:
视图是虚拟的表,只包含使用时动态检索数据的查询。 视图的使用方式和普通的表一样,那么为什么要使用视图呢? 1、视图的好处 回忆在联结讲解中举的例子:列出订购物品TNT2的所有客户信息,如果又需要列出物品ABC的所有信息呢,那么同样的SQL要再写一次,如果能够把整个查询包装成一个视图,那么就可以重用S 阅读全文
摘要:
一、数据插入 1、插入所有行 例1: INSERT INTO customers VALUES(NULL, 'PEP', '100', 'LOS', 'CA', '90046', 'USA', NULL, NULL) 不指明列且依赖列的定义顺序,不安全,尽量避免使用。 2、插入部分行 例2: INS 阅读全文
摘要:
只有MyISAM引擎支持全文本搜索(索引被搜索的文本列),比like和正则表达式更智能,查询更快。 创建表时在建表语句括号中增加FULLTEXT(note_text),就可以支持对note_text列的全文本搜索。 1、全文本搜索指定词 例1:搜索指定词rabbit SELECT note_id,n 阅读全文
摘要:
组合查询也就是说MySQL也可以一次性执行多条select语句并把结果作为单查询结果集返回,内容比较简单,给几个例子就可以理解了~ 例1:查询价格小于等于5的所有商品以及供应商1001和1002的所有商品(虽然这个例子使用OR更简单,但是涉及多个表查询的复杂情况还是有必要考虑UNION的) SELE 阅读全文
摘要:
大型的系统中涉及的数据库表之间是存在关系的,如订单表的商品信息会与商品表产生关系,商品表中的供应商列会与供应商信息表产生关系,分开存储有助于数据的一致性和存储空间的节省。那么怎么保证关系的有效?怎么方便地联结多个表进行查询呢?就往下看吧~ 1、外键 外键是表中的某一列,包含另一个表的主键值。vend 阅读全文