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;