mysql数据库 视图,函数,存储过程,触发器,索引,外键的理解

新手入门mysql数据库高阶

1.视图

是由查询结果形成的一种虚拟的表,是表通过某种运算得到的投影。

一张表可以有多个视图。

创建视图的方法 新建查询输入指令 create view view name as select 语句

也可直接到navicat视图里面写入查询语句 select 语句。

说明:

视图与表属于同一个级别的名字,隶属于数据库

视图也可以设置自己的字段名 ,不会影响到表,但通常不设置。

注意 如果表中修改某一数据 是会影响到视图中的数据的

视图的使用,几乎与表一模一样。。。

作用:

简化查询。。可以将表中常用的数据 形成一个视图,那么就直接从视图中进行操作,从而简化直接从表中查询的麻烦。

2.函数

就是函数,实现一些功能。。 比如一下函数 函数名为first 参数是输入IN型 i int型的。 实现输入参数i 得到yyid值为i那一条记录。

[

结果

在这里插入图片描述

3.存储过程

sql语句集。

一般的sql语句每执行一次就编译一次,存储过程只在创造时编译一次,之后在使用的时候不会编译,提高数据库执行速度。

当对数据库执行复杂操作时,比如对多表进行curd操作,那么就可以将复杂操作用存储过程封装起来,与数据库的事务处理结合起来一起使用。

存储过程可以反复使用。

说明:

存储过程中的参数有输入参数(in),输出参数(out),默认输入参数。

存储过程可以有编程元素,函数调用,控制语句,变量 以及各种sql语句

当存储过程中只有一条语句时,可以不用有begin end

存储过程以select sql语句作为结果集返回。

4.触发器

特殊的存储过程,它是自动执行的,不能被调用。

特性:

有begin end体 begin end之间的语句可以写的复杂或简单

触发频率 针对每一行执行

触发器定义在表上 ,附着在表上。

创建触发器

语法:

create trigger trigger name

after/before insert/select/update/delete on 表名

for each row

beign

//sql语句 (触发的语句)

end

实例 购买一瓶可乐 就减少一个库存。

#首先创建商品表

create table it_goods(yyid int,goods_name varchar(10),goods_number int)charset utf8;

insert into it_goods values(1,”可乐“,22),(2,“雪碧”,23),(3,“美年达”,43),(4,“乐虎”,10);

#创建一个订单表

create table it_order(order_id int, goods_id int,much int)charset utf8;

insert into it_goods values(1,2,3)

分析如何创建触发器:

监视地点:it_order 表

监视时间:it_order 表的inert操作

触发时间: it_order表的insert之后

出发时间:it_goods表的减少一个库存

2.根据分析创建触发器

create trigger my_trigger

after insert on it_order

for each row

beign

update set goods_number=goods_number-1 where yyid=1;

end;

4.索引

索引是一种数据结构

索引体现在搜索的性能上。

主键是默认的索引。

覆盖索引

如果

5.外键

外键就是其他表的主键。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章