当前位置: 首页 > news >正文

佛山网站建设企划动力清远市专业网站制作

佛山网站建设企划动力,清远市专业网站制作,微信微网站开发报价单,怎样不用代码就能建网站视图|存储过程 视图视图基本使用使用视图视图进阶 存储过程创建存储过程存储过程进阶存储过程参数循环结构 视图 视图是虚拟存在的表 表头下的数据在真表里 表头下的数据存储在创建视图时 在select命令访问的真表里 优点: 安全数据独立简单 用户无需关…

视图|存储过程

  • 视图
    • 视图基本使用
    • 使用视图
    • 视图进阶
  • 存储过程
    • 创建存储过程
    • 存储过程进阶
    • 存储过程参数
    • 循环结构

视图

视图是虚拟存在的表 表头下的数据在真表里 表头下的数据存储在创建视图时 在select命令访问的真表里
优点:

  • 安全
  • 数据独立
  • 简单 用户无需关心数据内部

视图基本使用

create view v1 as select name from tarena.user

在这里插入图片描述
除了视图,每个表都会存在两个文件
在这里插入图片描述
查看所有表的状态

show table status ; 

在这里插入图片描述
查看创建视图具体select命令

show create view 视图名;

在这里插入图片描述

使用视图

  • insert
insert into tarena.v11 vlaues ("xxx",2002);
  • delete
delete from tarena.v11 where name in ("xxx","yyy")
  • update
# 物理表 会跟着变
update tarena.v11 set uid=1001 where name='root'

视图进阶

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

可以通过视图修改数据限制 限制方式如下:

  • with check option
    • local 首先满足自身的限制,同时满足基表的限制
      local
mysql> create view v31 as select name , uid from tarena.user where uid <= 100;
mysql> create view v45 as select name,uid from v31 where uid>=10 with local check option;
mysql> update v45 set uid=800 where name="ftp"
# 虽然超出基表v31限制,但是还是改成了 因为基表没有加限制
# 修改视图v31 加修改限制
mysql> create or REPLACE view v31 as select name,uid from tarena.user where uid <= 100 with check option;
mysql> update v45 set uid=6 where name="sshd"; 没有满足自身限制
mysql> update v45 set uid=600 where name="sshd"; 没有满足基表v31的限制
  • cascaded 满足视图自身限制即可(默认值)
mysql> create view  v21 as > select name,uid from tarena.user where uid>10> with check option# 此时的限制条件是uid>10  如果改小于10 会失败
mysql> update v21 set uid=9 where name='root'; # 会失败

存储过程

存储过程就是mysql服务里的脚本。mysql存储过程 是登陆mysql服务之后编写的脚本 是由一条或多条sql命令组成,存放在mysql库下的表里。避免重复的sql操作。

写好的存储过程 会存放在mysql库下的proc表里

创建存储过程

命令行结束符 修改为//
delimiter //
---
create procedure 库名.存储过程名(列表参数)
begin一组合法的sql命令
end 
//
--
delimiter ;

在这里插入图片描述
查看已创建的存储过程

select db,name,type,body from mysql.proc where type="procedure"

执行存储过程

call 库名.存储过程名  创建的存储过程没有参数
call 库名.存储过程名(参数) 

删除存储过程

drop procedure 库.存储过程名; 不加括号 无论有无参数

存储过程进阶

在这里插入图片描述
在这里插入图片描述
用户自定义变量

  • 用户变量
    在这里插入图片描述

  • 局部变量:begin/end语句块中
    在这里插入图片描述

存储过程参数

调用参数时,名称前也不需要@
create procedure 名称(类型 变量名 数据类型 , 类型 变量名 数据类型,…)
在这里插入图片描述

delimiter //
create procedure tarena.p3()
begin
select name from tarena.user where name="ftp";
end //
delimiter ;
delimiter //
create procedure tarena.p4(in dept_no int)
begin
select dept_id,count(name) from employees where dept_id=dept_no
group by dept_id
end //
delimiter;## 调用
call tarena.p4(3)
  • out参数的作用

delimiter //
create procedure tarena.p5(in emp_name varchar(10),out mail varchar)
begin
select email into mail from employees where name=emp_name;
end //
delimiter ;# 调用
call tarena.p5("bob",@x)
  • inout参数
    既有in参数的功能 又有out参数的功能
delimiter //
create procedure tarena.myadd(inout i int)
begin
set i=i+100;
end //
delimiter ;
set @x = 8
set @y = 101
call tarena.myadd(@x);
call tarena.myadd(@y);
select @x,@y

循环结构

  • if
    格式一:
IF 条件 THEN语句;
END IF;

格式二:

IF 条件 THEN语句1;
ELSEIF 条件2 THEN语句2;
ELSE语句3;
END IF;

解决乱码问题:

alter database tarena default character set utf8;
# 查看库使用的字符集
show create detabase tarena \G
show create table tarena.departments \G
# 修改完重新创建存储过程 就好使了

在这里插入图片描述

  • case
    语法格式
CASE 变量|表达式|字段
WHEN 判断的值1 THEN 返回值1;
WHEN 判断的值2 THEN 返回值2;
... ...
ELSE 返回值n;
END CASE;

案例

delimiter //
create procedure tarena.deptype_pro2(IN no int ,OUT dept_type varchar(5))
begin
declare type varchar(5);
select dept_name into type from departments where dept_id=no;
case type
when '运维部' then set dept_type='技术部';
else set dept_type='非技术部';
end case;
end //
delimiter ;
# @使用自定义变量接受out参数的值
call tarena.deptype_pro(1,@t);
# 查看自定义变量@t的值
select @t;
  • 循环语法
标签名:WHILE 循环条件 DO循环体;
END WHILE 标签名
# loop循环 只要不人为结束 就一直执行下去
LOOP循环体;
END LOOP
# repeat 循环:至少循环一次
repeat循环体;
UNTILE 循环结束条件
end repeat

循环结构控制语句:在循环条件满足的情况下,控制循环的执行

  • break 结束循环
  • ITERATE 相当于continue 结束当前循环并开始下次循环
    注意:要给循环加标签 (就是给循环起一个名字)才能使用
    案例:
delimiter //
create procedure tarena.while_pro(IN i int)
begin
declare j int default 1;
while j < i doinsert into tarena.departments(dept_name) values("hr");set j=j+1;
end while;
end //
delimiter ;
# 调用
mysql > call tarena.while_pro(3);

show processlist 相当于 ps -aux
在这里插入图片描述
案例

delimiter //
create procedure tarena.while_pro3(IN i int)
begindeclare j int default 0;a:while j<i doset j=j+1;if mod(j,2)=0 then iterate a;end if ;insert into tarena.departments(dept_name) value(concat('hr',i))end while a;
end //
delimiter ;
# 调用
call tarena.while_pro3(10);
select * from tarena.departments;
http://www.yayakq.cn/news/186569/

相关文章:

  • 企业全称网站重庆网站建设夹夹虫负责
  • 建宁建设局网站如何进行电商网站设计
  • 域名备案通过后怎么做网站WordPress找不到站点
  • 建设彩票开奖网站微信开放平台的应用场景
  • 云南房产网站建设视频网站如何做引流
  • 传媒公司网站建设思路个人网页设计与制作论文结束语
  • 在门户网站管理建设工作讲话做家教的正规网站
  • 酷黑网站什么是网页设计培训
  • 教务处网站建设要求企业所得税怎么缴纳
  • 深圳市罗湖网站建设租用云服务器多少钱
  • 网站升级停止访问如何做wordpress瀑布流主题怎么设置首页显示文章数量
  • 自己做的网站怎么发布win7宁波seo哪家好
  • 上海网站建设 乐云seoseo营销怎么做
  • 门户和网站的区别网红营销的优势在哪里
  • 网站团购报名怎么做魅力潍坊网页制作
  • 蓟州区建设银行官方网站dw网页设计视频教程
  • 东莞已出现病例什么是网站排名优化
  • 台州网站关键字优化十堰建设银行官方网站
  • 招商网站建设推广wordpress 经常打不开
  • 网站优化排名推荐关键词搜索指数
  • 深圳网络专科网站建设规范网站维护 建设 管理
  • vr技术对网站建设的影响网站建设语言都有什么
  • 一般一个网站从建设到运营要多久营销方案推广
  • 中国城乡建设结合部网站重庆做网络推广
  • 中天建设第四网站如乐网站
  • 怎么验证网站买卖链接网站
  • 枞阳县建设局网站丹徒网站
  • 微博网站认证 备案名称企业建站系统免费
  • 江苏省建设考试培训网网站郑州网站制作公司汉狮
  • 做网站的怎么认证微博wordpress邮件发送超时