基础查询

/#7.起别名
/*
1.便于理解
2.如果要查询的字段有重名的情况,使用别名可以分开
*/
#方式一:AS
SELECT 100%98 AS 结果;
SELECT last_name AS 姓,first_name AS 名 from employees;
#方式二:使用空格
SELECT last_name 姓,first_name 名 from employees;
#案例:查询salary,显示结果为output,建议加双引号,不然会报错
SELECT salary AS "out put" from employees;
#8.去重
#案例:查询工作表中涉及到的所有部门编号
SELECT department_id FROM employees;
#只需要在需查询的关键字前面加上disrinct
SELECT DISTINCT department_id FROM employees;
#9.+号的作用
/*运算符
select 100+99; 两个操作数都未数值型,则作加法运算
select '123'+99; 其中一个字符型,试图将字符型转换成数值型
                                 转换成功继续做加法运算
select ‘jion'+99;						 转换失败,则将字符数值换成0
select null+99;              重要其中一方为null,结果肯定为null	 
*/
#案例:查询员工名和员工的姓连接成一个字段,并显示为姓名(失败)
SELECT last_name+first_name AS 姓名 FROM employees;#(结果错误)
#拼接concat
#SELECT CONCAT(str1,str2,...) AS 结果 FROM 表;
SELECT CONCAT(last_name,first_name) AS 姓名 from employees;
#拼接出现null结果就是null,可以使用ifnull函数把null转换成0
SELECT IFNULL(commission_pct,0) AS 奖金率 FROM employees;

进阶2:条件查询

/*
语法:
SELECT
查询列表 最后
FROM
表名 第一步
WHERE
筛选条件; 第二步
分类:
1、按条件表达式筛选
条件运算符:><= != <> >= <=
2、按逻辑表达式筛选
逻辑运算符:&& || !
and or not
3、模糊查询
like、between and 、in 、 is null
*/
#1.按条件表达式筛选

#案例1)查询工资大于12000的员工信息
SELECT 
      *
FROM
     employees
WHERE
     salary>12000;
#案例2:查询部门编号不等于90号的员工名和部门编号
SELECT
last_name,department_id
FROM
employees
WHERE
department_id<>90;
#<>不等于,也可用!=

#2.按逻辑表达式筛选

#案例1)查询工资在10000到20000之间的员工名、工资和奖金
SELECT 
last_name,salary,commission_pct
FROM
employees
WHERE
salary>=10000 AND salary<=20000;
#案例2)查询部门编号不是在90到110之间,或者工资高于15000的员工信息
SELECT 
*
FROM
employees
WHERE
department_id<90 OR department_id>110 OR salary>15000;
#或者not(department_id>=90 AND department_id<=110) OR salary>15000;

3.模糊查询

/*1)like:
特点1)和通配符搭配使用
%任意多个字符,包含0个字符
_ 任意单个字符
*/
#案例1)查询员工名中包含字符a的员工信息
SELECT 
*
FROM
employees
WHERE
last_name LIKE '%a%';
#案例二:查询员工名中第三个字符为n,第五个字符为l的员工名和工资
SELECT 
last_name,salary
FROM
employees
WHERE
last_name LIKE '__n_l%';
案例三:查询员工名中第二哥个字符为下划线_的员工名
SELECT 
last_name
FROM
employees
WHERE
last_name LIKE '_\_%';
#转义或者last_name LIKE '_$_%' ESCAPE '$';