一、 数据视图
视图是原始数据库数据的一种变换,是查看表中数据的另外一种方式。我们可以将视图看成是一个移动的窗口,从这个窗口中可以看到感兴趣的数据。
二、数据视图操作
创建视图
// 标准语法: create view 视图名称 [(列名列表)] as 查询语句; // 创建city_country视图,保存城市和国家的信息(使用指定列名) create view city_country(city_id,city_name,country_name) as select c1.id, c1.name, c2.name from city c1, country c2 where c1.cid = c2.id;
修改视图数据
// 标准语法: update 视图名称 set 列名=值 where 条件; // 注意:修改视图数据后,源表中的数据也会随之修改 update city_country set city_name="深圳" where city_name="北京";
修改视图列明
// 标准语法: alter view 视图名称 (列名列表) as 查询语句; alter view city_country (city_id, city_name, name) as select c1.id, c1.name, c2.name from city c1, country c2 where c1.cid = c2.id;
删除视图
// 标准语法 drop view [if exists] 视图名称; // 删除city_country视图 drop view if exists city_country;
三、数据的备份与回复
liunx备份
备份文件:
mysqldump -u root -p 数据库名称 > 文件保存路径
还原:
source 文件保存路径
mysql备份
备份-> 导出备份数据库 还原-> 导入备份文件
四、 mysql存储过程和函数
概念
- 存储过程和函数是 事先经过编译并存储在数据库中的一段 sql 语句的集合
好处:
- 可以重复使用,减轻开发人员的工作量
- 减少网络流量,调用只需要传递参数名和参数即可
- 减少数据在数据库和应用服务器之间的传输,可以提高数据处理的效率
- 将部分逻辑在数据库层进行了处理,减少业务层代码
区别:
- 函数必须有返回值
- 存储过程没有返回值
五、存储过程操作
初始数据
-- 创建学生表 create table student( id int primary key auto_increment, name varchar(20), age int, gender varchar(5), score int ); -- 添加数据 insert into student values (null,'张三',23,'男',95),(null,'李四',24,'男',98), (null,'王五',25,'女',100),(null,'赵六',26,'女',90); -- 按照性别进行分组,查询每组学生的总成绩。按照总成绩的升序排序 select gender, sum(score) getsum from student group by gender order by getsum asc;
创建过程
// 标准语法 // delimiter $ -- 标准语法 create procedure 存储过程名称(参数列表) begin sql 语句列表; end $ -- 修改分隔符为分号 delimiter ; // 创建stu_group()存储过程,封装 分组查询总成绩,并按照总成绩升序排序的功能 delimiter$ create procedure stu_group() begin select gender, sum(score) getsum from student group by gender order by getsum asc; end$ delimiter ;
调用存储过程
// call 存储过程名称(实际参数); call stu_group();
查找存储过程
// 标准语法: select * from mysql.proc where db='数据库名称'; select * from mysql.proc where db='demomysql';
删除存储过程
//标准语法: drop procedure [if exists] 存储过程名称; drop procedure if exists stu_group;
其他语法
// 定义变量 // 语法:declare 变量名 数据类型 [default 默认值]; // 变量赋值 // 语法一:set 变量名 = 变量值; // 语法二:select 列名 into 变量名 from 表名 [where 条件]; // 判断语句 // if语句 // if 判断条件1 then 执行的sql语句1; // [elseif 判断条件2 then 执行的sql语句2;] // ... // [else 执行的sql语句n;] // end if; delimiter $ create procedure pro_test2() begin -- 定义变量 declare name varchar(20); declare totalscore int; declare info varchar(10); -- 为变量赋值 set name = '赋值方式1'; select sum(score) into totalscore from student; if totalscore > 500 then set info='总分超过500'; end if; -- 使用变量 select name,totalscore,info; end$ delimiter; // 参数传递 // 标准语法: create procedure 存储过程名称([in|out|inout] 参数名 数据类型) delimiter $ create procedure pro_test5(in total int, out info varchar(10)) begin -- 对总成绩判断 if total > 380 then set info = '学习优秀'; elseif total >= 320 and total <= 380 then set info = '学习不错'; else set info = '学习一般'; end if; end$ delimiter; // 调用过程 call pro_test5(350,@info); select @info;
六、 存储函数
其实和存储过程区别不大,主要在于定义的时候用function,同时有return
delimiter $ create function fun_test1() returns int // 返回值类型 begin declare s_count int; select count(*) into s_count from student where score > 95;// 条件语句 return s_count;// 返回结果; end $ delimiter ; // 调用函数 select fun_test1(); // 删除函数 drop function fun_test1();
到此这篇关于mysql数据库数据视图的文章就介绍到这了,更多相关sql数据视图内容请搜索<计算机技术网(www.ctvol.com)!!>以前的文章或继续浏览下面的相关文章希望大家以后多多支持<计算机技术网(www.ctvol.com)!!>!
需要了解更多数据库技术:MySQL数据库数据视图,都可以关注数据库技术分享栏目—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/dtteaching/1174662.html