然后我们创建视图
create view v1 as select * from product;然后我们查看一下 v1 视图的结构
可以看到我们把 product 中的数据放在了视图中,也相当于是创建了一个 product 的副本,只不过这个副本跟表无关。
视图使用
show tables;也能看到所有的视图。
删除视图的语法是
drop view v1;能够直接进行删除。
视图还有其他操作,比如查询操作
你还可以使用
describe v1;查看表结构
更新视图
update v1 set name = "grape" where id = 1; 存储过程MySQL 从 5.0 开始起就支持存储过程和函数了。
那么什么是存储过程呢?
存储过程是在数据库系统中完成一组特定功能的 SQL 语句集,它存储在数据库系统中,一次编译后永久有效。那么使用存储过程有什么优点呢?
使用存储过程具有可封装性,能够隐藏复杂的 SQL 逻辑。
存储过程可以接收参数,并返回结果
存储过程性能非常高,一般用于批量执行语句
使用存储过程有什么缺点?
存储过程编写复杂
存储过程对数据库的依赖性比较强,可移植性比较差
存储过程使用 存储过程创建在认识到存储过程是什么之后,我们就来使用一下存储过程,这里需要先了解一个小技巧,也就是 delimiter 的用法,delimiter 用于自定义结束符,什么意思呢,如果你使用
delimiter $$的话,那么你在 sql 语句末使用 ; 是不能使 SQL 语句执行的,不信?我们可以看下
可以看到,我们在 SQL 语句的行末使用了 ; 但是我们却没有看到执行结果。下面我们使用
delimiter ;恢复默认的执行条件再来看下
我们创建存储过程首先要把 ; 替换为 $$,下面是一个存储过程的创建语句
mysql> delimiter $$ mysql> create procedure sp_product() -> begin -> select * from product; -> end $$存储过程实际上是一种函数,所以创建完毕后,我们可以使用 call 方法来调用这个存储过程
因为我们上面定义了使用 delimiter $$ 来结尾,所以这里也应该使用。
存储过程也可以接受参数,比如我们定义一种接收参数的情况