MySQL数据库的单表查询操作

本文以admin、beauty、boys为例来讲述MySQL数据库的查询操作

admin表
在这里插入图片描述
beauty表
在这里插入图片描述
boys表
在这里插入图片描述

1、基础查询

1.1查询boys表中所有数据

SELECT *FROM boys;

在这里插入图片描述

1.2查询boys表中部分字段
查询boys表中的id和namea字段

select id,namea from boys;

在这里插入图片描述
1.3为字段起别名
为id和namea分别起别名为序号和名字,注意as可以省略

select id as 序号,namea as 名字 from boys;

在这里插入图片描述
1.4去掉重复内容
去掉beauty表中boyfriend_id字段的重复内容

SELECT DISTINCT boyfriend_id FROM beauty;

在这里插入图片描述
1.5连接显示
连接显示就是将两列数据合并成一列来显示,MySQL中通过concat()函数来实现合并操作。
下面语句为,把boys表中的id和namea字段连接显示,

SELECT CONCAT('编号:',id,'名字:',namea) AS 帅哥 FROM boys;

在这里插入图片描述

2条件查询

条件查询,通过WHERE关键字指定筛选条件
1、按条件表达式查询
条件运算符:

、< 、>=、 <=、 =、 !=、 <>、 ,<=>安全等于,用于判断是否为null

案例1:在boys表中查询女朋友个数大于1的人的信息

SELECT * FROM boys
WHERE girl_count >1;

在这里插入图片描述
案例2:在beauty中查询没有工资的人

SELECT NAME FROM beauty
WHERE salary <=>NULL;

在这里插入图片描述
2、按逻辑表达式查询
逻辑运算符:
and、&& 两个条件都为true,结果为true,反之为false
or、|| 两个条件只要有一个为true,结果为true,反之为false
not、! 如果连接的条件本身为false,结果为true,反之为false
//优先级
not > and > or

案例1:在beauty表中查询月薪在4000到5000的人的名字

SELECT NAME FROM beauty
WHERE salary >= 3000 AND salary <= 5500;

在这里插入图片描述
案例2:在beauty表中查询工资不在4000到5000之间的人的名字

SELECT NAME FROM beauty
WHERE NOT(salary>=4000 AND salary<=5000);

在这里插入图片描述

3模糊查询

/*
1.like
一般搭配着通配符使用,用作字符型的判断
通配符:
% 任意多个字符
_ 任意单个字符 1

2.between and
特点:在…之间
①等价于 使用 字段>=值1 and 字段<=值2
②两个临界值是包含的 [1,10]
③两个临界值不能颠倒顺序

3.in
特点:判断某个字段的值是否在某个列表内
in(值1,值2,…)
等价于 or

4.is null/is not null
*/

like

案例1:查询beauty表的姓名中含有周的人员信息

SELECT NAME FROM beauty
WHERE NAME LIKE '%周%';

在这里插入图片描述
案例2:查询名字中第一个字是王,第三个字是师的人员信息

SELECT *FROM beauty
WHERE NAME LIKE '王_师%';

在这里插入图片描述
注意,如果查询的是特殊符号,需要使用转义字符

between and

案例1:在beauty表中查询工资大于3000,小于5500的人员信息

SELECT * FROM beauty
WHERE salary BETWEEN 3000 AND 5000;

在这里插入图片描述
in

案例1:在beauty表中查询工资是3000,或者是5000的人员信息

SELECT *FROM beauty
WHERE salary IN(3000,5500);

在这里插入图片描述
is null / is not null

案例1:查询没有工资的人员信息

SELECT *FROM beauty
WHERE salary IS NULL;

在这里插入图片描述

4排序查询

排序查询的语法如下:
select 字段|表达式|常量
from 表
【where 条件】
order by 排序的字段;

排序查询可以按表达式、函数、别名、多个字段进行排序

案例1:将beauty表中的人按照薪资多少由大到小进行排序

SELECT	*FROM beauty
ORDER BY salary asc;

在这里插入图片描述

注意:默认为升序排列,若降序排序最后面加desc关键字

案例2:将beauty表中的人员信息按照姓名长度进行降序排序

SELECT	*FROM beauty
ORDER BY LENGTH(NAME) DESC;

在这里插入图片描述

5分组函数与查询

分组函数的分类
max():最大值
min():最小值
sum():和
avg():平均值
count():计算非空的个数

一、查询分组函数
SELECT MAX(salary) 最大值 FROM beauty;
SELECT MIN(salary) 最小值 FROM beauty
SELECT SUM(salary) 和 FROM beauty;
SELECT AVG(salary) 平均值 FROM beauty;
SELECT COUNT(salary) 个数 FROM beauty;
SELECT MAX(salary) 最大值,SUM(salary) 和 FROM beauty;

注意:sum 和 avg 1.只支持数值型2.sum和avg都忽略null值
min 和 max 1.支持任何类型2.max和min都忽略null值

分组语法:
select 分组函数 别名,分组后的字段
from 表
【where 分组前筛选】
group by 分组的字段
【having 分组后筛选】
【order by 排序的字段】
从上到下依次顺序,不能颠倒顺序

案例1:查询beauty表中各个部门的最高工资,及部门id

SELECT MAX(salary), departments_id FROM beauty
GROUP BY departments_id;

在这里插入图片描述
案例:2查询boyfriend_id为9的,各个部门的最最高工资大于4000的部门编号

SELECT departments_id,MIN(salary) FROM beauty
WHERE boyfriend_id = 9
GROUP BY departments_id
HAVING MIN(salary)>4000;

在这里插入图片描述
注意:order by 和 having 都支持使用别名查询

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值