提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
基础知识
一、基础查询
1.语法
select 查询列表 from 表名;
1、查询列表可以是表中的字段、常量、表达式、函数
2、查询结果是虚拟的表格
3、着重号‘’用了区分字段和关键字
2.例子
#启用库
use myemployees;
#1、查询表中的单个字段
select last_name from employees;
#2、查询表中多个字段
select last_name,email from employees;
#3、 #显示字段 、查询所有字段(双击或者*)
DESC employees;
select * from employees;
#4、查询常量值
select 100;
select 'john';
#5、查询表达式
select 100%98;
#6、查询函数
select version();
#7、为字段起别名(as或者省略)
#特殊情况 查询salary,别名为out put(有特殊符号)--加双引号
select salary as “out put” from employees;
#去重(distinvt) eg 查询员工中设计到的部门编号
select distinct department_id from employees;
#+号的作用:运算符 其中一方为字符型,转换成功,继续运算,转换失败,则字符型数值转换为0
select concat(last_name,first_name) AS 姓名 from employees;
#NULL和任何字段拼接都为NULL,用判空函数来输出
select
ifnull(commission_pct,0) as 奖金率,
commission_pct
from
employees;
二、条件查询
1.语法
语法:
select 查询列表 from 表名 where 筛选条件;
过程:先查表名,再找条件,最后查询列表
分类:
一、按条件表达式筛选(> < =)
二、按逻辑运算符(&& || !)
三、模糊查询 (like between and in is null)
2.例子
#一、按条件表达式筛选
#查找工资
select
*
from
employees
where
salary>12000;
#查询部门编号不等于90号员工名和部门编号
select
last_name,
department_id
from
employees
where
department_id!=90;
#二、逻辑表达式筛选
#查找工资在10000到20000之间的员工名
select
last_name,
salary
from
employees
where
salary>=10000 and salary<=20000;
#三、模糊查询
/*
like: 一般和通配符搭配使用,% 任意多个字符,_ 任意单个字符
between and 两边临界值值都包含
in 判断字段的值是否属于in列表中的某一项,in列表的值类型必须统一或者兼容
is null|is not null 判断null值 安全等于<=> 既可以判断null也可判断普通数值
*/
#员工名中包含字符a的员工信息
select
*
from
employees
where
last_name like '%a%';#%代表通配符
#查询员工名第二个字符为下划线的(转义字符\或者用escape'\'指定为转义字符)
select
*
from
employees
where
last_name like '_\_%';
#查询员工编号在100到120之间
select
*
from
employees
where
employee_id between 100 and 120;#100<=x<=120
#查询员工工种编号是AD_VP,AD_PRES中的一个员工名和工种编号
select
last_name,
job_id
from
employees
where
job_id in ('AD_VP','AD_PRES');
#查询没有奖金的员工名和奖金率
select
last_name,
commission_pct
from
employees
where
commission_pct is not null;