SQL
存储过程:为了完成特定功能的sql语句集。
优点:
1.增强了sql语句的灵活性,不仅仅局限于增删改查操作。
2.创建后,可以被反复调用,不必重写。
3.较快的执行速度。因为存储过程是预编译的,首次运行,优化器进行优化后,这个优化后的执行计划会被保存,下次再用不必重新检查优化。
4.较少网络流量。传送的只是该调用语句。
5.安全机制。对存储过程的执行进行限制,实现访问限制,保证数据安全。
怎么编写?
1.选中1个数据库
2.改变分隔符。不让分号作为执行结束的标记。delimiter $
3.创建并执行
create procedure hello()
begin
...
end $
delimiter ;
调用 call hello;
视图:由查询结果形成的一张虚拟表
什么时候用到?某个查询结果出现非常频繁,不用写很多重复代码。
好处:
1.简化查询语句
比如查询每个人的平均工资
create view salary
as
select .....avg() ... from ... join ...on...group by...;
查询时:select * from salary;
2.权限控制
视图中开放部分列
3.大数据表分表的时候,比如某张表数据有100万条,那么可以将这张表分成4个视图。
触发器(数据库主动执行) 而存储过程是手工执行的
一种特殊的存储过程,在对特定表的数据进行操作时执行/
事先为某张表绑定好一段代码,当表中的某些内容发生改变的时候,系统会自动触发代码执行。
特性:
监视地点:一般是表名
监视事件:update/delete/insert
触发时间:after/before
触发事件:update/delete/insert
语法
create trigger trigger_name trigger_time trigger_event on tbl_name for each row trigger_stmt
作用
1.安全性。限制用户操作
2.数据完整新
需求:有两张表,一张订单表,一张商品表,每生成1个订单,意味着商品的库存要减少
数据库表怎么设计
数据库设计过程

ER模型

1、一对一可以两个实体设计在一个数据库中l例如设计一个夫妻表,里面放丈夫和妻子
2、一对多可以建两张表,将一这一方的主键作为多那一方的外键,例如一个学生表可以加一个字段指向班级(班级与学生一对多的关系)
3、多对多可以多加一张中间表,将另外两个表的主键放到这个表中(如教师和学生就是多对多的关系

浙公网安备 33010602011771号