文章目录
示例中的stuinfo和employees表结构如下:
表stuinfo
表employees
1、查看数据库中的表
(1)先进到数据库中,再查看表
(2)直接查看表
第二种方式不会改变用户所在的数据库
2、查看所在的数据库
select database()
3、查看表的结构(desc
)
4、查询语句(select
)
(1)查询表中的单个字段
SELECT last_name FROM employees;
(2) 查询表中的多个字段
SELECT last_name,email,phone_number FROM employees;
(3)查询表中的所有字段
SELECT * FROM employees;
(4)在结果中给表字段起别名
方式一(使用AS):
SELECT last_name AS 姓,first_name AS 名,salary AS 工资 FROM employees;
方式二(使用空格):
SELECT last_name 姓,first_name 名,salary 工资 FROM employees;
如果别名含有特殊符号,如空格或者#号,则可以使用单引号(’’)
SELECT salary as 'out put' FROM employees;
(5)结果去重(distinct
)
例如查询员工所在部门:
SELECT department_id FROM employees;
此时输出结果107行,且明显看出有重复数据
使用distinct去重:
SELECT DISTINCT department_id FROM employees;
可以看出结果只剩下12行,且无重复数据
5、+号的作用
mysql中+号只有一个作用:作为运算符
①两个操作数都为数值型,则做加法运算
②其中一方为字符型,则试图将字符型数值转换为数值型,若转换成功,则继续做加法运算;若转换失败,则将字符型数值转换成0
SELECT 'hello'+30;
SELECT 'hello'+'world';
③其中一方为null,则结果为null
SELECT NULL+'2';
SELECT NULL+'HELLO';
6、concat实现连接
7、条件查询
(1)按条件表达式筛选
条件运算符:> ,< ,=, !=,<>,>=,<=
(2)按逻辑表达式筛选
作用:用来连接条件表达式
and,or,not(&&,||,!)
(3)模糊查询
like,一般与通配符搭配使用
如:(1)“ % ”,匹配0个或多个字符
(2)“_”,匹配单个字符
between...and,
(1)提高语句简洁度
(2)包含临界值
in,判断某字段的值是否在in列表中的某一项
is null,is not null
(1)like
如果模糊查询中含有通配符,则使用’\'进行转义
或者使用escape
其中的$可以是任意字符,
(2)between and
(3)in
(4)is null
(4)IFNULL的使用
运行结果:
commission_pct
是奖金率,其值可能是null,如果是null,那么在计算是1+null就是null,则会影响计算结果,例如上述案例中,即使没有奖金,年薪也不应该为null。因此这时候需要为null值的情况进行处理
在这里,使用了IFNULL(commission_pct,0)
,意思是如果commission_pct
是null,则进行修改,赋值为0,如果commission_pct
不为null,则不修改。
运行结果:
8、排序查询
select 查询列表
from 表
[where 筛选条件]
order by 排序列表 [asc | desc]
按别名排序
按函数排序
多字段排序