暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MySQL数据库,详解流程控制语句(一)

Java学习网 2021-11-18
631

内容提要

• if函数

• case语句

Mysql系列的⽬标是:通过这个系列从⼊门到全⾯掌握⼀个⾼级开发所需要的全部技能。• if结构

• while循环

• repeat循环

• loop循环

• 循环体控制语句

准备数据

/*建库javacode2018*/

drop database if exists javacode2018;

create database javacode2018;

/*切换到javacode2018库*/

use javacode2018;

/*创建表:t_user*/

DROP TABLE IF EXISTS t_user;

CREATE TABLE t_user(

 id int PRIMARY KEY COMMENT '编号',

 sex TINYINT not null DEFAULT 1 COMMENT '性别,1:男,2:⼥',

 name VARCHAR(16) not NULL DEFAULT '' COMMENT '姓名'

)COMMENT '⽤户表';

/*插⼊数据*/

INSERT INTO t_user VALUES

(1,1,'路⼈甲Java'),(2,1,'张学友'),(3,2,'王祖贤'),(4,1,'郭富城'),(5,2,'李嘉

欣');

SELECT * FROM t_user;

DROP TABLE IF EXISTS test1;

CREATE TABLE test1 (a int not null);

DROP TABLE IF EXISTS test2;

CREATE TABLE test2 (a int not null,b int NOT NULL );if函数

语法

if(条件表达式,值1,值2);

if函数有3个参数。

当参数1为true的时候,返回值1,否则返回值2。

示例

需求:查询t_user表数据,返回:编号、性别(男、⼥)、姓名。

分析⼀下:数据库中性别⽤数字表⽰的,我们需要将其转换为(男、⼥),可以

使⽤if函数。

mysql> SELECT id 编号,if(sex=1,'男','⼥') 性别,name 姓名 FROM t_user;

+--------+--------+---------------+

| 编号 | 性别 | 姓名 |

+--------+--------+---------------+

| 1 | 男 | 路⼈甲Java |

| 2 | 男 | 张学友 |

| 3 | ⼥ | 王祖贤 |

| 4 | 男 | 郭富城 |

| 5 | ⼥ | 李嘉欣 |

+--------+--------+---------------+

5 rows in set (0.00 sec)

CASE结构

2种⽤法。

第1种⽤法

类似于java中的switch语句。

case 表达式

when 值1 then 结果1或者语句1(如果是语句需要加分号)

when 值2 then 结果2或者语句2

...else 结果n或者语句n

end [case] (如果是放在begin end之间需要加case,如果在select后则不需要)

示例1:select中使⽤

查询t_user表数据,返回:编号、性别(男、⼥)、姓名。

/*写法1:类似于java中的if else*/

SELECT id 编号,(CASE sex WHEN 1 THEN '男' ELSE '⼥' END) 性别,name 姓名

FROM t_user;

/*写法2:类似于java中的if else if*/

SELECT id 编号,(CASE sex WHEN 1 then '男' WHEN 2 then '⼥' END) 性

别,name 姓名 FROM t_user;

示例2:begin end中使⽤

写⼀个存储过程,接受3个参数:id,性别(男、⼥),姓名,然后插⼊到t_user


文章转载自Java学习网,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论