目录: 选择结构 if函数 if结构 case结构 循环结构 while loop repeat 流程控制语句大致分为选择结构与循环结构;...if结构 功能:实现多路选择 注意:只能用在begin...end结构体中 语法: if 逻辑表达式 then 语句1; elseif 逻辑表达式2 then 语句2; ... else 语句n; end...if; case结构 等值选择语法: case 字段|变量|表达式 when 值 then 值|语句 when 值 then 值|语句 ... else 值|语句 end; 不等值选择语法:...case when 逻辑表达式 then 语句1 when 逻辑表达式 then 语句2 ... else 语句n end; 循环结构 while 语法: while 逻辑表达式 do 循环体 end
一、DCL 简介 DCL(Data Control Language)语句,即数据控制语句,用于设置或更改数据库用户或角色权限的语句 常用关键字包括:GRANT、REVOKE、COMMIT、ROLLBACK...修改密码:alter user username@ip identified by newPassword; (3)显示用户的权限:show grants for username@ip; (4)授权语句...select (5)撤销权限:revoke 权限1,权限2,… on databaseName.* from username@ip; (6)删除用户:drop user username; (7)权限生效语句
··· else 【只能使用在 begin end 之间】 if 条件语句1 then 语句1; elseif 条件语句2 then 语句2; ... else 语句n; end if; 1.1.2...表达式 when 值1 then 结果1 或者 语句1 # 如果是语句需要加分号 when 值2 then 结果2 或者 语句2 ... else 结果n 或者 语句n end [case] #...when 条件2 then 结果2 或者 语句2 ... else 结果n 或者 语句n end [case] # 如果是放在 begin end 之间需要加 case,如果是在 select...循环 ☞ 语法 标签:while 循环条件 do 循环体 end while 标签; 说明 ① 标签是给 while 取个名字,标签和 iterate、leave 结合用于在循环内部对循环进行控制...☞ 循环控制 # 类似 java中的 continue iterate 循环标签; # 类似 java 中的 break leave 循环标签; ☞ 示例 # 求 1 ~ n 的和 # 创建存储过程
我们可以在存储过程和函数中实现比较复杂的业务逻辑,但是需要对应的流程控制语句来控制,就像Java中分支和循环语句一样,在MySQL中也提供了对应的语句,接下来就详细的介绍下。...语句结构 说明 顺序结构 程序从上往下依次执行 分支结构 程序按条件进行选择执行,从两条或多条路径中选择一条执行 循环结构 程序满足一定条件下,重复执行一组语句 针对于MySQL 的流程控制语句主要有...注意:只能用于存储程序 语句类型 说明 条件判断语句 IF 语句和 CASE 语句 循环语句 LOOP、WHILE 和 REPEAT 语句 跳转语句 ITERATE 和 LEAVE 语句 1.分支结构...WHILE语句的基本格式如下: Java中的while语句 while(条件表达式){ // 循环体 } MySQL中的WHILE语句 [while_label:] WHILE 循环条件 DO...END; DROP PROCEDURE PROC_REPEAT; # 调用存储过程 CALL PROC_REPEAT(); 2.4 对比三种循环结构 这三种循环都可以省略名称,但如果循环中添加了循环控制语句
语句 —— 用户管理、权限控制 SQL分类 : ①DDL:数据定义语言,用来定义数据库对象(数据库,表,字段) ②DML:数据操作语言,用来对数据库表中字段进行增删改 ③DQL:数据查询语言,用来查询数据库中表的记录...④DCL:数据控制语言,用来创建数据库用户,控制数据库的访问权限 DCL - 管理用户: MySQL用户管理 ①查询用户 USE mysql; SELECT * FROM USER; ②创建用户 CREATE...DCL - 权限控制: 常用权限分类: ALL\ALL PRIVILEGES:所有权限 SELECT:查询数据的权限 INSERT:插入数据的权限 UPDATE:修改数据的权限 DELETE:删除数据的权限...ALTER:修改表的权限 DROP:删除数据库/表/视图的权限 CREATE:创建数据库/表的权限 MySQL控制用户权限: ①查询权限 SHOW GRANTS FOR '用户名'@'主机名'; ②授予权限...②授权时,数据库名和表名可以使用*进行通配,代表所有。
前几天在网上看了一个帖子,描述的现象是在MySQL中,对in,or,union all的性能的比对,看完之后,我就产生了疑问。...如果单纯说是MySQL半连接的优化器性能问题,我信,但是看了文中提供的SQL语句,我感觉至少从我使用MySQL 5.7的感觉来看,这个差别会很小,或者说没有差别。...继续运行上面的语句,性能还不错,基本都在1秒钟(当然数据是在缓存里面),三种方式的性能有差异,但是远没有稳中说得那么大了。...alter table article add key (article_category,id); 再来看看效果发现上面的3个语句的执行效率相仿。...通过上的测试,充分说明了在MySQL 5.7的测试中,这个问题严格来说不是问题,可能是版本有关,还有一个是使用了更多的数据,性能却明显好许多。这个可能和表结构有一些出入。
前面一番写了一篇《2019-09-15-如何打开win10里面的ubuntu系统》,有同学就问一番能不能通过ssh远程控制这个ubuntu。...虽然在win10上打开一个ubuntu的窗口很容易,也可以通过打开多个窗口来实现多终端,但如果实现了通过ssh控制ubuntu,就可以更便捷的开多终端,也可以只是把这个ubuntu当一个linux环境的服务器来用...3.通过ssh访问win10里的ubuntu 这时我们分别在ubuntu的窗口和windows cmd窗口,输入ifconfig、ipconfig,查看IP地址。 ?
2、IF (条件) 是指当条件表达式为真时,就执行,条件表达是是任意的条件,当然其也包括EXISTS(结果集)这种条件 用法 IF 条件 THEN 语句; IF 条件 THEN 语句; ELSEIF 条件...THEN 语句; ELSE 语句; END IF; CASE语句 CASE语句中,条件为真,则执行SQL语句,若不为真,则ELSE中语句被执行。...CASE 列名 WHEN 条件 THEN 语句 [WHEN 条件2 THEN 语句] [ELSE 语句] END CASE;
死循环,需要在内部进⾏控制。...示例1:⽆循环控制语句 根据传⼊的参数v_count向test1表插⼊指定数量的数据。...| | 2 | | 3 | | 4 | | 5 | +---+ 5 rows in set (0.00 sec) 示例2:添加leave控制语句 根据传⼊的参数v_count向test1表插⼊指定数量的数据...| 8 | | 9 | | 10 | +----+ 10 rows in set (0.00 sec) 示例3:添加iterate控制语句 根据传⼊的参数v_count向test1表插⼊指定数量的数据...嵌套循环 test2表有2个字段(a,b),写⼀个存储过程(2个参数:vacount,vbcount),使 ⽤双重循环插⼊数据,数据条件:a的范围[1,vacount]、b的范围[1,vbcount]所有
t_user VALUES (id,v_sex,name); END $ /*结束符置为;*/ DELIMITER ; 调⽤存储过程: CALL proc1(6,'男','郭富城'); 查看效果: mysql...case when 条件1 then 结果1或者语句1(如果是语句需要加分号) when 条件2 then 结果2或者语句2 ... else 结果n或者语句nend [case] (如果是放在begin...if结构 if结构类似于java中的 if..else if...else的语法,如下: if 条件语句1 then 语句1; elseif 条件语句2 then 语句2; ... else 语句n;...> CALL proc2(7,'男','黎明',@result); Query OK, 1 row affected (0.00 sec) mysql> SELECT @result; +-------...--+ | @result |+---------+ | 0 | +---------+ 1 row in set (0.00 sec) mysql> SELECT * FROM t_user; +--
示例1:⽆循环控制语句 根据传⼊的参数v_count向test1表插⼊指定数量的数据。...loop循环 语法 [标签:]loop 循环体; end loop [标签]; loop相当于⼀个死循环,需要在循环体中使⽤iterate或者leave来控制循环的 执⾏。...示例1:⽆循环控制语句 根据传⼊的参数v_count向test1表插⼊指定数量的数据。...本⽂主要介绍了mysql中控制流语句的使⽤,请⼤家下去了多练习,熟练掌握 2. if函数常⽤在select中 3. case语句有2种写法,主要⽤在select、begin end中,select中end...循环中体中的控制依靠leave和iterate,leave类似于java中的break可以退出循 环,iterate类似于java中的continue可以结束本次循环
查询当前用户所有数据库语句(不区分大小写) SHOW DATABASES 结果:
示例1:无循环控制语句 根据传入的参数v_count向test1表插入指定数量的数据。...1 | | 2 | | 3 | | 4 | | 5 | +---+ 5 rows in set (0.00 sec) 示例2:添加leave控制语句 根据传入的参数v_count向test1表插入指定数量的数据...| | 7 | | 8 | | 9 | | 10 | +----+ 10 rows in set (0.00 sec) 示例3:添加iterate控制语句 根据传入的参数v_count向test1...示例1:无循环控制语句 根据传入的参数v_count向test1表插入指定数量的数据。...示例1:无循环控制语句 根据传入的参数v_count向test1表插入指定数量的数据。
这需要我们熟练掌握流程控制语句才可以,本文主要介绍mysql中流程控制语句的使用,上干货。...示例1:无循环控制语句 根据传入的参数v_count向test1表插入指定数量的数据。...示例1:无循环控制语句 根据传入的参数v_count向test1表插入指定数量的数据。...示例1:无循环控制语句 根据传入的参数v_count向test1表插入指定数量的数据。...总结 本文主要介绍了mysql中控制流语句的使用,请大家下去了多练习,熟练掌握 if函数常用在select中 case语句有2种写法,主要用在select、begin end中,select中end后面可以省略
在 MySQL 中,可以使用正则表达式结合内置函数来提取字符串中的所有数字。...现在需要将该字符串中的所有数字提取出来,并以逗号分隔返回结果。...以下 SQL 语句可以实现上述功能: 复制代码SELECT GROUP_CONCAT(SUBSTRING(str, loc, reg_len)) AS nums FROM ( SELECT...方法二:使用 REGEXP 和 REPLACE 函数 除此之外,还可以利用 MySQL 的内置函数将字符串中的非数字字符逐个替换为空字符串,从而提取所有的数字。...总结 在 MySQL 中,可以利用内置函数及正则表达式,快速提取字符串中的所有数字并返回。两种方法各有优缺点,在应用场景下选择更适合的方法进行处理即可。
前言 大家好吖,欢迎来到 YY 滴MySQL系列 ,热烈欢迎!...1.查询用户 USE mysql;SELECT *FROM user; 2.创建用户 CREATE USER‘用户名'@'主机名'IDENTIFIED BY‘密码'; 3.修改用户密码 ALTER USER...库,找到user表 要删除用户,要定位 用户名和主机地址 主机地址:指的是当前用户 只能在哪个主机上访问当前mysql服务器 图中localhost表示只能在主机访问 3.案例演示&案例可cv...by '1234'; -- 删除itcast@localhost用户 drop user 'itcast'@'localhost'; 三.权限控制 1.权限控制语法&注意事项&种类&可cv代码 权限控制语法...注意事项 多个权限之间,使用逗号分隔 授权时,数据库名和表名可以使用 * 进行通配,代表所有 权限控制种类 1.查询权限 SHOW GRANTS FOR'用户名'@'主机名’; 2
前言 大家好吖,欢迎来到 YY 滴MySQL系列 ,热烈欢迎!...本章主要内容面向接触过C++ Linux的老铁 主要内容含: DQL基本介绍&语法&各种查询语句总览 DQL英文全称是Data Query Language(数据查询语言),数据查询语言,用来 查询...查询关键字: SELECT DQL-语法 ※数据准备工作(必看) 如下所示创建表,并批量插入数据 批量插入数据见DML语句操作(下方有传送门) 【MySQL】DML的表操作详解:添加数据&修改数据...&删除数据(可cv例题语句) create table emp( id int comment '编号 ', workno varchar(10) comment '工号...&可cv例题语句&注意事项 如下所示: -- 1.查询指定字段 name,workno,age 返回 select nane,workno,age from emp; --2.查询所有字段 返回 select
阅读目录:通过条件、循环语句,对处理程序进行流程控制 条件控制 IF条件:条件为真,执行 CASE条件:匹配到,执行 循环控制 WHILE循环:先判断后执行 REPEAT循环:先执行后判断...LOOP循环(死循环) LEAVE语句(离开) ITERATE语句:迭代,再次循环 RETURN语句:返回 注意:MySQL不支持FOR循环 一、条件控制:if语句、case..._2; …… 如果所有的条件都不为true,则执行ELSE子句后面的语句。...then子句后面的语句statement_list; ②如果所有的when子句的条件都不为true,则执行else后面的语句statement_list。...二、循环控制:while循环、repeat循环、loop循环、leave语句、iterate语句 Tips:循环体结构 ①条件 ②SQL语句体 ③程序体里面需要对条件中的变量进行处理 1、WHILE
在之前的文章里,为大家介绍了MySQL的连接管理线程的工作方式,在这一篇里为大家介绍管理连接的第二种方式,线程池。 MySQL默认的连接控制方式采用的是每个连接使用一个线程执行客户端的请求。...MySQL的线程池是包含在企业版里面的服务器插件。使用线程池的目的是为了改善大量并发连接所带来的性能下降。...连接池打破了每个连接与线程一一对应的关系,这一点与MySQL默认的线程控制方式不同,默认方式将一个线程与一个连接相关联,以便给定的线程从其连接执行所有的语句。...线程会选择立即执行或稍后执行连接里面的语句,如果语句是唯一接收到的,并且当前没有排队或正在执行的语句,该语句就会立即执行。其它情况则会选择稍后执行。...当所有连接都处于执行模式,并且每个组都创建了一个额外的线程来监听,可能会发生这种情况。
前言 权限控制,对于MLSQL而言的重要程度可以说是生命线。...我们来看下面的信息: connect jdbc where driver="com.mysql.jdbc.Driver" and url="jdbc:mysql://${ip}:${host}/db1?...在MLSQL中,我们不能在select语句里访问hive表,只能通过load语句加载,比如下面的句子会报错: select * from public.abc as table1; 我们无权在select...`public.abc ` as abc; select * from abc as table1; 如何实现列级别控制 MLSQL在解析load语句的时候,会询问当前用户访问的表,有哪些列是被授权的,...总结 MLSQL通过一些有效的限制,可以在语法解析层面直接提取了所有数据源相关信息,并且将其发送给到配套的权限中心进行判断,避免在运行时发现授权拒绝问题。
领取专属 10元无门槛券
手把手带您无忧上云