mysql-视图,创建表,存储过程,循环,判断实操命令

数据库操作命令在IDEA工具database的console命令

数据库表结构与视图

在这里插入图片描述

-- 查询隔离级别
select @@transaction_isolation;-- 设置隔离级别
set session transaction isolation level read committed ;
set session transaction isolation level REPEATABLE READ ;start transaction;select * from sys_user;commit ;rollback ;
-- SQL性能分析
show global status like 'Com_______';
-- 查看慢查询是否开启
show variables like 'slow_query_log';-- linux 重启msql
-- systemctl restart mysqld;-- 创建视图
create or replace view v_users as select id,username from sys_user where id <10;explain select id,username from sys_user where username <10;explain select * from v_users where id = 2;-- 查询创建视图的语句
show create view  v_users;drop view if exists v_users;
-- 视图检查选项,插入的数据跟据视图的where条件进行检查是否符合,如果不符合会不让插入数据
-- with cascaded check option
create or replace view v_users as select id,username from sys_user where id <10 with cascaded check option ;
-- 视图可以插入数据并且 会插入到真实表中
insert into v_users values (3,'wangliu');
insert into v_users values (30,'wangliu');-- 视图简化多表联查 只需要查询视图不需要每次都增加其他的条件
-- 视图屏蔽/隐藏敏感数据字段 授权给无权查看的人--  存储过程
CREATE PROCEDURE PRO_USERS()
BEGINSELECT COUNT(*) FROM sys_user;
end;
-- 调用存储过程
CALL PRO_USERS();
-- 查看存储过程
select * from information_schema.ROUTINES where ROUTINE_SCHEMA = 'test';-- 查看存储过程建表语句
show create procedure PRO_USERS;-- 删除存储过程
drop procedure if exists PRO_USERS;-- 系统变量 session|global 默认都是session
show session variables ;
show session variables  like 'auto%';select @@autocommit;select @@session.autocommit;
select @@global.autocommit;
set @@autocommit = 1;-- 用户自定义变量
set @myName :='zxd';
set @myAge := 30;set @myName :='lisi',@myAge := 40;select @myName,@myAge;select count(*) into @myCount from sys_user;select @myCount;-- 局部变量声明 begin ...end 之前
drop procedure if exists pro_test2;
create procedure pro_test2()
begindeclare var_age int default 0;set var_age := 20;select var_age;
end;show create procedure pro_test2;call pro_test2();-- IF ELSEIF ELSE 存储过程逻辑分支判断
create procedure pro_p3()
begindeclare score int default 58;declare res varchar(10);if score >80 thenset res:= '优秀';elseif score >60 thenset res :='及格';elseset res:= '不及格';end if;select res;
end;call pro_p3();-- 存储过程带输入,输出参数的
create procedure pro_p4(in score int,out res varchar(10))
beginif score >80 thenset res:= '优秀';elseif score >60 thenset res :='及格';elseset res:= '不及格';end if;select res;
end;call pro_p4(18,@res);
select @res;-- INOUT 出参与入参是同一个参数的写法
drop procedure if exists p5;create procedure p5(inout score double)
beginset score := score*0.5;
end;set @score :=178.8;
call p5(@score);
select @score;-- 根据传入的月份,返回季度信息
drop procedure p6;
create procedure p6(in month int,out res varchar(20))
begincasewhen month >=1 and month <=3then set res:= '第一季度';when month >=4 and month<=6then set res:= '第二季度';when month >=7 and month<=9then set res:= '第三季度';when month >=10 and month<=12then set res:= '第四季度';elseset res:='非法参数';end case ;select concat('您输入的月份 ',month,',所属季度为',res) into res;
end;call p6(7,@res);
select @res;-- while 循环逻辑
drop procedure p7;
create procedure p7(inout num int)
begindeclare total int default 0;while num >0 doset total:= total +num;set num := num -1;end while;set num := total;
end;set @num := 10;
call p7(@num);
select @num;-- repeat 循环逻辑 SQL逻辑会先执行一次,不管是否满足until条件
drop procedure p8;
create procedure p8(inout num int)
begindeclare total int default 0;repeatset total := total + num;set num:= num -1;until  num <=0end repeat;set num:= total;
end;set @num :=-10;
call p8(@num);
select @num;-- loop循环
drop procedure p9;
create procedure p9(in num int,out res int)
begin#一定要初始化赋值set res:=0;sum:loopif num <=0 thenleave sum;end if;set res := res +num;set num:=num -1;end loop sum;
end;call p9(-10,@res);
select @res;-- loop 退出当前循环 测试一个数字相加 只加偶数不加奇数
drop procedure p10;
create procedure p10(in num int,out res int)
begin#一定要初始化赋值set res:=0;sum:loopif num <=0 thenleave sum;end if;if num%2 = 1 thenset num:= num -1;iterate sum;end if;set res := res +num;set num:=num -1;end loop sum;
end;call p10(10,@res);
select @res;-- cursor
-- 准备一张表
create table tb_user(id int auto_increment primary key ,name varchar(20),age int ,phone int,email varchar(100),zhuanye varchar(50)
);
-- 查看默认建表语句
show create table tb_user;
desc tb_user;
drop table tb_user;
select * from tb_user;
insert into tb_user values (null,'唐僧',80,1990618888,'tangsanzang@qq.com','玄奘法师'),(null,'猪八戒',400,1990613333,'zhubajie@qq.com','净坛使者');
-- 创建存储过程
create procedure p11(in v_num int)
begin# 声明的临时变量必须在游标之上declare v_name varchar(20);declare v_age int default 0;declare pro_cur cursor for select name ,age from tb_user where age > v_num;#增加异常处理# [02000][1329] No data - zero rows fetched, selected, or processed#declare exit handler for sqlstate '02000' close pro_cur;declare exit handler for not found close pro_cur;# 准备要生成的表drop table if exists pro_tb_user;create table if not exists pro_tb_user(id int auto_increment primary key ,name varchar(20),age int);#打开游标open pro_cur;#遍历游标 死循环 知道循环到最后一条查不到数据退出while true dofetch pro_cur into v_name,v_age;insert into pro_tb_user values (null,v_name,v_age);end while;#关闭游标close pro_cur;
end;
drop procedure p11;call p11(100);select * from pro_tb_user;create procedure p12(in v_num int)
begin# 声明的临时变量必须在游标之上declare v_name varchar(20);declare v_age int default 0;declare done int default 0;declare pro_cur cursor for select name ,age from tb_user where age > v_num;#增加异常处理# [02000][1329] No data - zero rows fetched, selected, or processed#declare exit handler for sqlstate '02000' close pro_cur;declare continue handler for not found set done:=1;# 准备要生成的表
#     drop table if exists pro_tb_user;create table if not exists pro_tb_user(id int auto_increment primary key ,name varchar(20),age int);#打开游标open pro_cur;#循环数据ext_loop :loopfetch pro_cur into v_name,v_age;if done =1 thenleave ext_loop;end if;insert into pro_tb_user values (null,v_name,v_age);end loop;#关闭游标close pro_cur;
end;call p12(50);-- 表锁测试
-- 读锁 -都可以读 但是不能写
-- 写锁 -只有自己能读能写,别人都不能读不能写
lock tables test.tb_user read ;select * from tb_user;
-- 创建表与删除表字段
alter table pro_tb_user add column java int;
desc pro_tb_user;
alter table pro_tb_user drop column java;unlock tables;-- 测试元元数据锁
start transaction ;
select * from tb_user;
select object_type,object_schema,object_name,lock_type,lock_duration from performance_schema.metadata_locks t;commit ;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/724020.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

蚂蚁感冒c++

题目 思路 “两蚂蚁碰面会掉头&#xff0c;若其中一只蚂蚁感冒了&#xff0c;会把感冒传染给碰到的蚂蚁”&#xff0c;这句话看作是“两蚂蚁碰面会互相穿过&#xff0c;只是把感冒的状态传给了另一只蚂蚁”&#xff0c;因为哪只蚂蚁感冒了并不是题目的重点&#xff0c;重点是有…

如何在Word里一次性给全部汉字加拼音?

word是大家日常使用频率较高的工作软件&#xff0c;功能性很强&#xff0c;有上乘的文档格式设置工具&#xff0c;利用它可更轻松、高效地组织和编写文档&#xff0c;熟练运用word&#xff0c;在职场上很重要。那么word如何添加拼音呢?下面给大家介绍一下吧。 方法一&#xf…

线性dp P4310-绝世好题/P4933 大师【日记】

1.绝世好题&#xff08;P4310&#xff09; 绝世好题https://www.luogu.com.cn/problem/P4310 比较考验思维的一道题目&#xff0c;码量和理解难度都不大&#xff0c;重在思维。 一开始看错题&#xff0c;以为是求子串&#xff08;还在想为啥考的纯位运算枚举&#xff0c;whe…

vue iis 配置

下载安装两个IIS模块 1). 传送门&#xff1a;URL Rewrite 2). 传送门&#xff1a;Application Request Routing 注 : 只有在 服务器的主页 有Application Request Routing 部署VUE网站 生成网站 在VUE项目打包生成出发布文件,即文件夹 dist,此处忽略 复制到你需要存放网站的…

Skywalking官方的实战模拟项目Live-Demo

Skywalking 官方的实战模拟项目Live-Demo Live-Demo 是 Skywalking 官方的实战模拟项目&#xff0c;其中包含4个子模块项目 projectA访问projectB、projectC两个SpringBoot项目 projectB访问本地的H2数据库 projectC访问www.baidu.com并同时向一台Kafka消息队列写入数据 proje…

入门指南:使用uni-app构建跨平台应用

入门指南&#xff1a;使用uni-app构建跨平台应用 &#x1f31f; 前言 欢迎来到我的小天地&#xff0c;这里是我记录技术点滴、分享学习心得的地方。&#x1f4da; &#x1f6e0;️ 技能清单 编程语言&#xff1a;Java、C、C、Python、Go前端技术&#xff1a;Jquery、Vue.js、R…

六、软考-系统架构设计师笔记-软件工程基础知识

1、软件工程 软件工程是将系统化的、严格约束的、可量化的方法应用于软件的开发、运行和维护&#xff0c;即将工程化应用于软件并对上述方法的研究。 软件要经历从需求分析、软件设计、软件开发、运行维护&#xff0c;直至被淘汰这样的全过程&#xff0c;这个过程称为软件的生…

Android使用OpenGL和FreeType绘制文字

Open GL主要是渲染图形的&#xff0c;有时候需要绘制文字&#xff0c;网上搜了一下&#xff0c;基本思路都是把文字转成位图&#xff0c;再使用Open GL纹理进行渲染。加载纹理在特定阶段才能成功&#xff08;在onSurfaceCreated中加载&#xff09;&#xff0c;这样就无法动态的…

部署LVS负载均衡架构

目录 一、ipvsadm 工具 二、NAT模式下部署LVS负载均衡 1、部署NFS共享存储服务器 1.1 安装NFS软件 1.2 新建共享目录和站点文件 1.3 设置共享策略 2、部署节点服务器1 2.1 安装并启动nginx软件 2.2 挂载共享目录到网页站点目录 2.3 修改网关 3、部署节点服务器2 3.…

在ABAP中创建一个简单的守护进程

原文地址&#xff1a;Create a simple Daemon in ABAP 目录 一、ABAP语言中的守护进程是什么&#xff1f;二、ABAP 守护进程框架 (ADF)三、ABAP 守护进程类四、创建一个简单的ABAP守护进程步骤1&#xff1a;创建一个新的ABAP Daemon类步骤2&#xff1a;实现ON_ACCEPT方法第三步…

「滚雪球学Java」:GUI编程(章节汇总)

咦咦咦&#xff0c;各位小可爱&#xff0c;我是你们的好伙伴——bug菌&#xff0c;今天又来给大家普及Java SE相关知识点了&#xff0c;别躲起来啊&#xff0c;听我讲干货还不快点赞&#xff0c;赞多了我就有动力讲得更嗨啦&#xff01;所以呀&#xff0c;养成先点赞后阅读的好…

Kosmos-1: 通用接口架构下的多模态大语言模型

Kosmos-1: 通用接口架构下的多模态大语言模型 FesianXu 20230513 at Baidu Search Team 前言 在大规模语言模型&#xff08;Large Language Model, LLM&#xff09;看似要带来新一番人工智能变革浪潮之际&#xff0c;越来越多尝试以LLM作为通用接口去融入各种任务的工作&#…

【vue】ant-design弹出框无法关闭和runtimecore提示isFucntion is not function的问题修复

【vue】ant-design弹出框无法关闭和runtimecore提示isFucntion is not function的问题修复&#xff0c;初步分析是vue发布3.4版本以后引起的兼容性问题。 问题截图&#xff1a; 1.isFucntion is not function&#xff0c;是由于vue升级后众多插件版本不匹配造成的问题 2.弹框…

计算机中msvcp140.dll,丢失怎么修复与解决

一、msvcp140.dll20个软件环境 msvcp140.dll文件是许多软件运行环境的组成部分&#xff0c;通常与Microsoft Visual C Redistributable关联。以下是可能使用该文件的软件环境&#xff1a; 微软办公软件&#xff1a;如Microsoft Office套件&#xff0c;包括Word、Excel、Power…

Python给图片加水印

受到“手动给证件加文字太麻烦”的感触&#xff0c;想用Python来实现给图片加水印&#xff0c;这不方便多了。 这里使用PIL模块&#xff1a; from PIL import Image from PIL import ImageFont from PIL import ImageDrawimg_t Image.open(cat.jpg) img_size_t img_t.size…

OJ:循环队列

622. 设计循环队列 - 力扣&#xff08;LeetCode&#xff09; 思路 思路&#xff1a;首先循环队列的意思是&#xff1a;空间固定&#xff0c;就是提前开辟好&#xff0c;满了就不能插入了&#xff0c;但是删除数据后仍有空间&#xff0c;删除循环队列里面的数据后&#xff0c;保…

Apache ECharts数据可视化技术

介绍 官方地址:Apache ECharts 快速入门案例echarts.init //初始化方法 <!DOCTYPE html> <html><head><meta charset"utf-8" /><title>ECharts</title><!-- 引入刚刚下载的 ECharts 文件 --><script src"echart…

基于JavaWEB SpringBoot婚纱影楼摄影预约网站设计和实现

基于JavaWEB SSM SpringBoot婚纱影楼摄影预约网站设计和实现 博主介绍&#xff1a;多年java开发经验&#xff0c;专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 央顺技术团队 Java毕设项目精品实战案例《1000套》 欢迎点赞 收藏 ⭐留言…

Java Swing游戏开发学习8

内容来自RyiSnow视频讲解 上一节提到的bug&#xff0c;不知道有没有人发现&#xff1f; 在播放音乐和音效的时候使用的是同一个clip对象&#xff0c;播放背景音乐在前&#xff0c;后续播放音效&#xff0c;clip对象就被覆盖了&#xff0c;因此导致调用停止播放背景音乐的时候&a…

计算机组成原理之机器:总线

计算机组成原理之机器 笔记来源&#xff1a;哈尔滨工业大学计算机组成原理&#xff08;哈工大刘宏伟&#xff09; Chapter2&#xff1a;总线 2.1 总线的基本概念 1.为什么需要总线&#xff1f;有几百个部件需要连接进行信息传输 2.什么是总线&#xff1f;总线是连接各个部件…