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;
这里还有个更加优雅的用法:
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 (六)——条件查询 条件表达式 逻辑表达式]