#进阶1:基础查询
/*
语法:
select 查询列表
from 表名

*/
USE myemployees;
#加不加反引号 ` ` 都可以
#1.查询单个字段
SELECT `first_name` FROM `employees`;

#2.查询多个字段
SELECT `first_name`,`last_name`,`job_id` FROM `employees`;

#3.查询所有字段
#方式一:依次选取所有字段
SELECT 
  `first_name`,
  `last_name`,
  `email`,
  `phone_number`,
  `job_id`,
  `salary`,
  `commission_pct`,
  `manager_id`,
  `department_id`,
  `hiredate` 
FROM
  `employees` ;
#方式二:*代表通配符
SELECT * FROM employees;

#4.查询常量值
SELECT 100;
SELECT 'john';

#5.查询表达式
SELECT 100%98;

#6.查询函数
SELECT VERSION();

#7. 起别名(外号)————便于理解,区别重名
#方式一: as 
SELECT 100%98 AS 结果;
SELECT last_name AS 姓,first_name AS 名 FROM employees;

#方式二: 用空格
SELECT last_name 姓,first_name 名 FROM employees;

#用双引号或者单引号包括别名,避免关键字
#select salary as out put from employees;
#out put 中间有空格,需要引号
SELECT salary AS "out put" FROM employees;

#8.去重 关键字distinct

#案例:查询员工表中涉及的所有部门编号
SELECT DISTINCT department_id FROM employees;


#9.+号的使用方法
/*
mysql的+号只有一个功能:运算符,不能完成字符串拼接

select 100+90;        两个操作数都为数值型,则做加法运算
select '123'+90;    只要其中一方为字符型,则将字符型转换为数值型
            若转换成功,继续加法运算
select 'john'+90;    若失败,则将字符型数值视为0

select null+10;        只要其中一方为null,则结果肯定为null
            
*/
#案例:查询员工名和姓连接成一个字段,并显示为姓名
#用+号并不能完成拼接
SELECT 
  last_name + first_name AS 姓名 
FROM
  employees ;

#失败,可以使用拼接函数concat
SELECT 
  CONCAT(last_name, first_name) AS 姓名 
FROM
  employees ;

#============================================================
#test
#1.语句执行
SELECT 
  last_name,
  job_id,
  salary AS sal 
FROM
  employees ;

#2.语句执行
SELECT * FROM employees;

#3.找出错误————中英文符号
SELECT 
  employee_id,
  last_name,
  salary * 12 AS "ANNUAL SALARY" 
FROM
  employees;

#4.显示表departments的结构,并查询其中全部数据
DESC departments;
SELECT * FROM departments;

#5.显示表employees中全部job_id(不能重复)
SELECT job_id FROM employees;#重复的
SELECT DISTINCT job_id FROM employees;#不重复的

#6.显示出employees的全部列,各个列之间用逗号连接,列头显示成OUT_PUT
SELECT 
  CONCAT(
    `first_name`,
    `last_name`,
    `salary`,
    `hiredate`
  ) AS OUT_PUT 
FROM
  employees;
#扩展,学习一个新函数 IFNULL(条件,为null的值)
SELECT `commission_pct`,
    IFNULL(`commission_pct`,0) AS 奖金率
FROM employees;