新手入门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.外键
外键就是其他表的主键。