MYSQL中视图、存储过程和数据备份

本文深入解析数据库中的视图和存储过程概念,探讨其创建、使用及优化方法。视图作为虚拟表,能提高查询效率和数据安全性;存储过程则集合预编译SQL语句,增强代码重用性和操作简化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

视图

什么是视图?
视图是保存查询的结果,把查询的结果当做一张虚拟的表,视图依赖于原始的表数据和结构,如果原来的表数据或者结构发生了改变,视图的结构和数据也会发生相应改变.

视图的特点:
1、效率高
2、安全性,可以指定展示其中某几列数据,隐藏敏感信息

语法结构
CREATE VIEW 视图名 AS 查询SQL

创建视图
CREATE VIEW ShowStu AS SELECT * FROM student;

创建视图时指定字段名
CREATE VIEW view_show_stu (sid,sname,sex,birth,classid) AS SELECT * FROM student;

创建多表视图  不同使用*
CREATE VIEW Get_student_score AS 
SELECT student.sno,student.sname,student.ssex,student.sbirthday,
student.class,score.cno,score.degree FROM student,score WHERE student.sno = score.sno
 
查看视图结构
DESC Get_student_score

查看创建视图的预计
SHOW CREATE VIEW Get_student_score

修改视图
语法结构:	
ALTER VIEW 视图名 AS 新的查询sql
修改视图
ALTER VIEW showstu AS SELECT student.sno,student.sname,student.ssex,student.sbirthday,
student.class,score.cno,score.degree FROM student,score WHERE student.sno = score.sno

删除视图
DROP VIEW showstu;

存储过程

什么是存储过程
一组预先编译好的SQL语句的集合,理解成批处理语句
特点:
a.提高了代码的重用性
b.简化了操作
c.减少了编译次数并且减少了和数据库服务器的连接次数,提高了效率

创建存储过程

定义结束
 delimiter //

创建存储过程
CREATE PROCEDURE ShowStuScore1()
BEGIN
SELECT * FROM tb_students_score;
END //

创建带参数的存储过程
delimiter //
create PROCEDURE GetStu(in name VARCHAR(30))
BEGIN
SELECT * FROM student WHERE sname=name;
END //

通过call语句调用存储过程
delimiter ;
CALL GetStu('李军')

查看存储过程的状态
SHOW PROCEDURE STATUS LIKE 'GetStu';

查看存储过程的定义
show CREATE PROCEDURE GetStu;

修改存储过程 只能修改存储过程的状态,修改内容只能先删除在修改
例子: ALTER PROCEDURE showstuscore MODIFIES SQL DATA SQL SECURITY INVOKER;

删除存储过程 
drop PROCEDURE ShowStuScore1

数据库备份

备份数据库中某个表
mysqldump -uroot -p test student>C:\student.sql

备份单个数据库
mysqldump -u root -p 库名>C:\student.sql

同时备份多个库
mysqldump -u root -p --databases 库名 库名>C:\student.sql

导出数据库信息
	查看secure-file-priv当前的值是
	show variables like '%secure%'; 
	
	如果导出失败:
    则需要添加secure_file_priv
    
 恢复数据库
	mysql -u root -p C:\all.sql
	
 备份所有数据库
 mysqldump -u root -p --all-databases > C:\all.sql
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

patmos

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值