小白一枚,正在学习,不断补充完善,如有错误,请快快指出,谢谢啦!
基础查询
语法:
select 查询列表 from 表名;
特点:
- 查询列表可以为:表中字段、常量、表达式、函数
- 查询的结果是一个虚拟的表格,并没有保存。
1、查询表中单个字段
select last_name from employees;
2、查询表中多个字段
select last_name,salary,email from employees;
3、查询表中所有字段
select * from employees;(*号是指查询所有信息)
4、查询常量值、表达式、函数
select 'Hello';
select 8+9;
select version();
5、取别名
方式一:
select 100%98 as 结果;
select last_name as 姓,first_name as 名 from employees;
方式二:
select last_name 姓,first_name 名 from employees;
6、去重用 distinct
select distinct 查询字段 from 表名;
7、+号作用
mysql中只能做运算符
select 100+90; #两个操作数都为数值型,则做加法
select '123'+90; #其中一方为字符型,试图将字符型数值转化成数值型。如果转换成功,则继续做加法运算
select 'jion'+90; #如果转化失败,则将字符型数值转换成0
select null+10; #只要其中一方为null,则结果为Null
8、查询表结构
desc 表名;
条件查询
语法
select 查询列表 from 表名 where 筛选条件;
筛选条件分类:
1、 按条件表达式筛选
简单条件运算符:> < = <> >= <=
2、按逻辑表达式筛选
逻辑运算符:用于连接表达式
&& || !
3、模糊查询
复杂条件运算符:like 、between and、 in、 is null、 is not null
3.1 like的用法:
一般和通配符搭配使用
% 表示任意多个字符
_ 表示任意单个字符
#查询员工名中包含字符m的员工信息
SELECT * FROM employees WHERE last_name LIKE '%m%';
#特殊例子:查询员工名中第二个字符为_的员工名(使用转义字符)
SELECT last_name FROM employees WHERE last_name LIKE '_\_%';
#用转义字符 \ 或者自定义转义字符:like ‘_a_%’ escape 'a';此时a为转义字符
3.2 between and 的用法:
-包含临界值
-两个临界值不要调换
#例子:查询员工编号在1到20之间的员工信息
SELECT * FROM employees WHERE employee_id BETWEEN 1 AND 20;
3.3 in的用法
含义:某字段的值是否属于in列表中的一项
—in列表的值类型必须统一
—不能在其中使用通配符
3.4 is null
判断是否为空值
注意:不可以用等号=,不等号<>判断null值。is null和is not null可以判断null值
排序查询
语法:
select 查询列表
from 表
(where 筛选条件)
order by 排序列表 (asc 升序 | desc 降序)
特点:
1、如果不标明则默认为升序
2、order by 字句中可以放单个字段,多个字段,表达式,函数,别名
3、order by一般放在查询语句的最后面,limit子句除外
#查询员工信息,工资从高到低
SELECT * FROM employees ORDER BY salary DESC;