#进阶1:基础查询
/*
语法:
select 查询列表 from 表名;
类似于:`employees`System.out.println(打印东西)
特点:
1、查询列表可以是:表中的字段、常量值、表达式、函数
2、查询的结果是一个虚拟的表格
*/
USE myemployees;
DESC `departments`; #显示表的结构部
#1.查询表中的单个字段
SELECT last_name FROM employees; #或 SELECT `last_name` FROM employees; <- 可用于与关键字的区分
#2.查询表中的多个字段
SELECT last_name,salary,email FROM employees;
#3.查询表中的所有字段
SELECT * FROM employees;
#4.查询常量值
SELECT 100;
SELECT 'john';
#5.查询表达式
SELECT 100*99; #作简单计算
#6.查询函数
SELECT VERSION();
#7.为字段取别名
SELECT 100*99 AS 结果; #给查询结果取一个别名,提高可读性,如果查询字段有重名,使用别名可以区分开
SELECT last_name AS 姓,first_name AS 名 FROM employees;
SELECT last_name 姓,first_name 名 FROM employees;
#案例
SELECT salary AS "out put" FROM employees; #别名有空格和关键字时,用双引号
#8.去重
#案例:查询员工表中涉及到的所有的部门编号
SELECT department_id FROM employees; #非去重
SELECT DISTINCT department_id FROM employees; #去重
/*
mysql中的+号仅仅只有一个功能,那就是运算符
SELECT 100+90; 两个都是数值,做加法运算
SELECT '123'+90; 字符型+数字型,尝试将字符转换为数字,转换成功=数值,转换失败=0,即0+90
select 'john'+90;
select null+10; 只要其中一方为null,结果都为null
*/
#9.+号的作用
#案例:查询员工名和姓连接成一个字段,并显示为->姓名
SELECT "last_name" + "first_name" AS 姓名 FROM employees; #错误
SELECT CONCAT('a','b','c') AS 结果;
SELECT CONCAT(last_name,first_name) AS 姓名 FROM employees; #拼接只能用函数
SELECT CONCAT(`last_name`,`first_name`) AS 姓名 FROM employees; #拼接只能用函数
#当某个元素为null时,CONCAT()连接的结果就会变成null
#10.IFNULL()函数的用法
IFNULL(`commission_pct`,0);#if果查询到的结果有NULL,则返回0
#举例:显示出表employees中的全部列,各个列之间用逗号连接,列头显示成OUT_PUT
SELECT
CONCAT(`first_name`,',',`last_name`,',',`job_id`,',',`commission_pct`) AS out_put
FROM
employees; #结果全为null
SELECT
CONCAT(`first_name`,',',`last_name`,',',`job_id`,',',IFNULL(`commission_pct`,0)) AS out_put
FROM
employees; #结果全为null