数据库教程:MySQL数据库数据视图

一、 数据视图视图是原始数据库数据的一种变换,是查看表中数据的另外一种方式。我们可以将视图看成是一个移动的窗口,从这个窗口中可以看到感兴趣的数据。二、数据视图操作创建视图// 标准语法: create

一、 数据视图

视图是原始数据库数据的一种变换,是查看表中数据的另外一种方式。我们可以将视图看成是一个移动的窗口,从这个窗口中可以看到感兴趣的数据。

二、数据视图操作

创建视图

// 标准语法: 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

(0)
上一篇 2022年8月3日
下一篇 2022年8月3日

精彩推荐