/*
基础查询
语法:select 查询列表 from 表名
1、查询列表可以是:表中的字段、常量值、表达式、函数
2、查询的结果时一个虚拟的表格
*/
USE myemployees;
#1、查询表中的单个字段
SELECT last_name FROM employees;
#2、查询表中的多个字段
SELECT last_name,salary,email FROM employees;
#3、查询表中的所有字段 *和表中顺序完全一致
SELECT * FROM employees;
#着重号`用于区别表名和关键字。(部分表名和关键字一样)
#查询常量值
SELECT 'john';
#查询表达式
SELECT 100*89;
#查询函数
SELECT VERSION();
#起别名
SELECT 100%98 AS 结果;
SELECT 100%98 answer;
SELECT 100%98 "结 果";
#去重
SELECT DISTINCT department_id FROM employees;
#+的作用:仅有运算符的功能 自动转换 有一个为null,
#结果为null 字符数和数相加则转换 否则为0+数字
#拼接
SELECT CONCAT(last_name,first_name) AS 姓名 FROM employees;
#显示表结构
DESC departments;
#IFNULL语句将为null的表项显示为XX
SELECT IFNULL(commission_pct,0) AS 奖金率,commission_pct FROM employees;
条件查询
/*
语法:select 查询列表
from 表名
where 筛选条件;
分类:
一、按条件表达式筛选
条件运算符:<、>、=、<>(不等于) >=、<=
二、按逻辑表达式筛选
逻辑运算符:and or not
三、模糊查询
like、between and、in、is null
*/
SELECT * FROM employees WHERE salary>19000;
SELECT last_name,department_id FROM employees WHERE department_id <>90;
SELECT
last_name,
salary,
commission_pct
FROM
employees
WHERE
salary>=10000 AND salary<=20000;
模糊查询:
/*
like:一般和通配符搭配使用
%:任意多个字符
_:任意单个字符
:转义字符
escape:转义
between and
in
is null/is not null
*/
#1、like
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 '_!_%' ESCAPE '!';
between and
/*
包含临界值
不能更改顺序
*/
#查询员工编号在100-120的员工信息
SELECT
*
FROM
employees
WHERE
employee_id BETWEEN 100 AND 120;
#in 不支持通配符
#查询员工的工种编号为IT_PROG、AD_VP、AD_PRES中的一个员工名和工种编号
SELECT
last_name,job_id
FROM
employees
WHERE
job_id IN('AD_VP','AD_PRES');
#4、is null =或<>不能用于判断null值
#查询没有奖金的员工名和奖金率
SELECT
last_name,commission_pct
FROM
employees
WHERE
commission_pct IS NOT NULL;
#安全等于<=> 既可以判断null,也可以判断数值等