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、多对多可以多加一张中间表,将另外两个表的主键放到这个表中(如教师和学生就是多对多的关系


 

posted @ 2019-07-07 11:53  hhhl  阅读(229)  评论(0)    收藏  举报