mysql 连接表中if_数据库学习之MySQL (五)——select 语句 IFNULL() CONCAT()的应用

AS 重命名

Q3 如何实现下面的效果?

a817d022413f

结果图

A3:

USE data1;

SELECT

`first_name` AS 名,

`last_name` AS 姓,

`salary` AS 工资

FROM

employees ;

语句语法

Q4 这段代码运行后

USE data1;

SELECT

`first_name` AS 名,

`last_name` AS 姓,

`salary` AS 工资,

FROM

employees ;

结果是:

a817d022413f

结果图

错在哪里?怎么改?

A4 错在 多了个逗号 语句中不能多或者少一个逗号

USE data1;

SELECT

`first_name` AS 名,

`last_name` AS 姓,

`salary` AS 工资

FROM

employees ;

或者你这么写更简洁:

USE data1;

SELECT

`first_name` 名,

`last_name` 姓,

`salary` 工资

FROM

employees ;

计算表达式 执行函数

Q5 SELECT 语句还有别的作用嘛:

A5 类似运行 可以算表达式 可以执行函数:

a817d022413f

结果图

a817d022413f

结果图

DISTINCT 去重

想要所有的编号

use data1;

SELECT `department_id` FROM employees;

a817d022413f

在这里插入图片描述

明显重复了 这时采用 distint:

USE data1;

SELECT DISTINCT `department_id` FROM employees;

a817d022413f

在这结果图图片描述

CONCAT 连接字符串

我觉得last_name first_name 太麻烦了 合并怎么样呢?于是:

USE data1;

SELECT DISTINCT

CONCAT(`last_name`, `first_name`) AS 名字,

`salary` AS 工资

FROM

employees ;

这里sql语句的+号没有连接字符串功能 于是只能用concat

a817d022413f

在这里插入结果图描述

另外 如果想要添加其他字符串 记得用上引号

a817d022413f

在结果图插入图片描述

不要和` 搞混了

IFNULL 函数用法

a817d022413f

结果图插入图片描述

例题

实现

a817d022413f

结果图入图片描述

难点在于 concat会在遇到NULL的时候就把整个字符串变为NULL

即 NULL + ‘string’ = NULL

所以利用IFNULL进行一个转义的操作

USE data1;

SELECT

CONCAT(

`first_name`,

',',`last_name`,

',',IFNULL(`manager_id`,0),

',',IFNULL(`job_id`,0),

',',IFNULL(`email`,0),

',',IFNULL(`commission_pct`,0)) 职工基本情况

FROM employees;

这里还有个更加优雅的用法:

WS - with separator

USE data1;

SELECT

CONCAT_WS(','

`first_name`,

`last_name`,

IFNULL(`manager_id`,0),

IFNULL(`job_id`,0),

IFNULL(`email`,0),

IFNULL(`commission_pct`,0)) 职工基本情况

FROM employees;

这样是不是会方便很多呢?

下一站:[数据库学习之MySQL (六)——条件查询 条件表达式 逻辑表达式]

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值