数据库学习之MySQL (五)——select 语句 IFNULL() CONCAT()的应用

MySQL学习专栏 正在持续更新中:)

AS 重命名

Q3 如何实现下面的效果?
在这里插入图片描述
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 ;

结果是:
在这里插入图片描述
错在哪里?怎么改?
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 类似运行 可以算表达式 可以执行函数:
在这里插入图片描述
在这里插入图片描述

DISTINCT 去重

想要所有的编号

use data1;
SELECT `department_id` FROM employees;

在这里插入图片描述
明显重复了 这时采用 distint:

USE data1;
SELECT DISTINCT `department_id` FROM employees;

在这里插入图片描述

CONCAT 连接字符串

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

USE data1;
SELECT DISTINCT 
  CONCAT(`last_name`, `first_name`) AS 名字,
  `salary` AS 工资
FROM
  employees ;

这里sql语句的+号没有连接字符串功能 于是只能用concat
在这里插入图片描述
另外 如果想要添加其他字符串 记得用上引号
在这里插入图片描述
不要和` 搞混了

IFNULL 函数用法

在这里插入图片描述

例题

实现
在这里插入图片描述
难点在于 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;

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

发布了8 篇原创文章 · 获赞 7 · 访问量 204

猜你喜欢

转载自blog.csdn.net/weixin_43178828/article/details/104074953