MySQL基础语法之单表查询

MySQL基础语法之单表查询

总结了 MySQL 中对一张表进行查询操作的语法

简单查询

基本语法

select 字段,字段,字段,...
from 表名;
  • 查询一个字段
 select name from user
  • 查询多个字段
 select name,age,id from user
  • 查询所有字段
select * from user

条件查询

基本语法
执行顺序 from > where > select

select 字段,字段,字段,...
from 表名
where 条件;
  • 等号操作符
select name,age
from user
where id = 1;
  • 不等操作符

不等操作有两种,分别是 != 和 <>

select name,age
from user
where id != 1; 或者 id <> 1;
  • between…and…操作符
select name,age
from user
where id between 1 and 3;  //表示id在1到3之间的所有数据
  • is null 和 is not null
select name,age
from user
where 
	id is null;  //显示id为空的所有数据
	id is not null;  //显示id不为空的所有数据
  • and 的使用
select name,age
from user
where id = 1 and sex = '男';  //将两个条件并起来查询数据
  • or 的使用
select name,age
from user
where id = 1 or id = 3;  //将id为1或id为3的数据都查询出来
  • in 和 not in 的使用
select name,age
from user
where id in (1,3);  //将id为1或id为3的数据都查询出来 跟or的用法差不多
  • like 的使用

Like 可以实现模糊查询,like 支持%和下划线匹配;
%匹配任意字符出现的个数;
下划线只匹配一个字符;
如果查询的数据中存在下划线 并且要查询这个数据 那么需要转义字符加下划线来表示。

select name,age
from user
where 
	name like '王%';  //将王姓的全部查询出来
	name like '%明%';  //将名字中存在明的全部查询出来
	name like '_明%'  //将第二个字为明的全部查出来
	name like '%\_%'  //将名字中有下划线的全部查出来

数据排序查询

基本语法
执行顺序 from > where > select > order by

select 字段,字段,字段,...
from 表名
where 条件
order by 要排序的字段
  • 单一字段升序、降序查询

没有条件


select name,age
from user
order by
	id ;  //根据 id 升序查询(不写默认升序)
	id asc;  //根据 id 升序查询
	id desc;  //根据 id 降序查询

有条件

select name,age
from user
where id > 1  //id 大于1后再查询 
order by
	id ;  //根据 id 升序查询(不写默认升序)
	id asc;  //根据 id 升序查询
	id desc; //根据 id 降序查询
  • 多个字段升序、降序查询

没有条件(可以存在条件)

select name,age
from user
order by
	id , age desc;  //先左再右 先 id 升序,后 age 将序(不写默认升序)
	id asc,age desc; 
	id desc,age asc; 

聚合函数的使用

函数使用
max取某个字段的最大值
min取某给字段的最小值
sum取某个字段的总和
count取得记录数
avg取某个字段的平均数

基本语法

select 函数(字段),函数(字段),字段,...
from 表名
select max(age)
from user  //取得年龄的最大值

其它函数一样使用

select max(age),sum(age)
from user  //取得年龄的最大值和年龄之和

分组查询

基本语法
执行顺序 from > where > group by > select
如果需要排序
执行顺序 from > where > group by > select > order by (排序总是在最后)

分组是基于聚合函数查询的

  • group by 的使用
select 字段,函数(字段)
from 表名
where 条件 // (如果要加上条件就加上条件)
group by 字段
order by 字段;  // (如果要排序就加上排序)

测试

select class_name,avg(age)
from user
group by class_name;  //查询每个班级的平均年龄
select class_name,avg(age)
from user
where age > 18;
group by class_name; //查询每个班级的18岁之后平均年龄
  • having 的使用
select 字段,函数(字段)
from 表名
where 条件  //(如果要加上条件就加上条件)
group by 字段
having 条件  //(看情况而定加还是不加)
order by 字段;  //(如果要排序就加上排序)

测试

select class_name,avg(age)
from user
group by class_name; 
having avg(age) > 18; //查询平均年龄大于18的班级

外加一点 查询之后改变查询出来的字段名,但不改变数据库的字段名

基本语法

select 字段 as 新字段名
from 表名;

测试

select name as newname
from user;  //查询出来之后会显示字段名为 newname

总结

写sql语句要有耐心,要仔细,加油!!!

多表连接查询的操作在这:https://blog.csdn.net/qq_45334037/article/details/117374808

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值