视图
什么是视图?
视图是保存查询的结果,把查询的结果当做一张虚拟的表,视图依赖于原始的表数据和结构,如果原来的表数据或者结构发生了改变,视图的
结构和数据也会发生相应改变,
视图的特点:
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
--
修改视图的数据
UPDATE view_show_stu set sname='吊炸天' WHERE sid=103
删除视图
DROP VIEW showstu;
什么是存储过程?
多句sql同时执行,先编译好存储服务端,
特点
执行效率高
重复使用
临时改变结束符号
delimiter //
创建存储过程
CREATE PROCEDURE show_studnet()
BEGIN
SELECT * FROM student;
END//
调用存储过程
CALL show_studnet()
查看存储过程创建sql
SHOW CREATE PROCEDURE show_studnet
创建一个带参数的存储过程
delimiter //
CREATE PROCEDURE show_studnet_un(IN name VARCHAR(30))
BEGIN
SELECT * FROM student WHERE sname=name;
END//
调用
CALL show_studnet_un('吊炸天')
创建多个带参数的存储过程
delimiter //
CREATE PROCEDURE a (IN name VARCHAR(30),IN id INT(10))
BEGIN
SELECT * FROM student WHERE sname=name AND sno=id;
END//
调用
CALL a('吊炸天',’102’)
删除存储过程
drop PROCEDURE show_studnet_un
数据库备份
备份数据库中某个表
mysqldump -uroot -p test student>C:\student.sql
备份单个数据库
mysqldump -u root -p 库名>C:\student.sql
同时备份多个库
mysqldump -u root -p --databases 库名 库名>C:\student.sql
备份所有数据库
mysqldump -u root -p --all-databases > C:\all.sql
恢复数据库
mysql -u root -p > C:\all.sql
进入表后导出表内容为TXT
SELECT * FROM student INTO OUTFILE 'C://Pcode/person.txt';
导出数据库信息
如果导出失败:
则需要添加secure_file_priv =
查看secure-file-priv当前的值
show variables like '%secure%';