mysql 之进阶查询语句

本文介绍了MySQL的高级查询语句,包括ORDER BY进行排序,AND和OR进行条件判断,DISTINCT去除重复记录,GROUP BY进行分组,LIMIT限制输出条目,以及使用ALIAS设置别名。此外,还讲解了子查询的使用,如SELECT、INSERT、UPDATE、DELETE以及EXISTS的操作。最后提到了视图的概念和创建,以及NULL值的处理。
摘要由CSDN通过智能技术生成

目录

一、常用查询

1、order by按关键字排序 

1、升序排序

2、降序排序 (order by ... desc)

3、结合 where 进行条件过滤再排序

4、多字段 倒序排序

2、and和or判断

1、and和 or 的使用

2、嵌套、多条件使用 

3、distinct 查询不重复记录

4、group by 对结果进行分组

5、limit限制结果输出条目

6、设置别名(alias简写as)

1、给字段设置别名

2、查询表的记录数量,以别名显示

3、使用as,将查询的数据导入到另一个表内

7、通配符查询

二、子查询 

1、select查询

1、相同表查询

2、多表查询

3、not取反,将子查询的结果,进行取反操作

4、结合as别名进行子查询

2、insert插入

3、update修改

4、delete删除

5、exists布尔输出

三、mysql视图

1、介绍视图

2、视图与表的区别

3、视图与表的联系

4、单表创建视图

5、多表创建视图

6、修改视图或原表内容

1、修改原表的内容

2、修改视图信息

3、删除视图内信息

7、删除视图表

四、NULL值

1、修改NULL值

2、查询空值与非空值


一、常用查询

对MySQL数据库的查询,除了基本的查询外,有时候需要对查询的结果集进行处理。例如只取10条数据、对查询结果进行排序或分组等等。

1、order by按关键字排序 

使用SELECT语句可以将需要的数据从MySQL数据库中查询出来,如果对查询的结果进行排序,可以使用 order by 语句来对语句实现排序,并最终将排序的结果返回给用户。这个语句的排序不光可以针对某一个字段,也可以针对多个字段。

select 字段1,字段2… from 表名 order by 字段1,字段2…【asc】

#查询结构以升序方式显示,asc可以省略

select 字段1,字段2… from 表名 order by 字段1,字段2…desc

#查询结构以降序方式显示

ASC是按照升序进行排序,是默认的排序方式,即ASC可以省略
select语句中如果没有指定具体的排序方式,则默认按ASC方式进行排序。
desc是安降序方式进行排序,
order by 前面也可以使用weher子句对查询结构进一步过滤

1、升序排序

create table test1(id int(10) not null,name varchar(15) not null,age int(3),score decimal(4,1),address varchar(20));

insert into test1 values(3,'美女',18,81,'南京');
insert into test1 values(1,'帅哥',20,50,'北京');

insert into test1 values(2,'靓妞',21,75,'天津');

insert into test1 values(4,'靓辣妹',23,92,'重庆');

select *from test1;

select id,name,age from test1 order by id asc;  基于id进行升序排列

2、降序排序 (order by ... desc)

select *from test1;

select id,name,score from test1 order by score desc

3、结合 where 进行条件过滤再排序

insert into test1 values(5,'小姐姐',17,21,'南京');

insert into test1 values(6,'小哥哥',25,99.1,'南京');

select *from test1;

select id,name,score,address from test1 where address='南京' order by score desc

address 为南京的 score进行降序

4、多字段 倒序排序

order by 语句也可以使用多个字段来进行排序,当排序的第一个字段相同的记录有多条的情况下,这些多条的记录再按照第二个字段进行排序,order by 后面跟多个字段时,字段之间使用英文逗号隔开,优先级是按先后顺序而定, 但order by 之后的第一个参数只有在出现相同值时,第二个字段才有意义

update test1 set address='重庆' where id=5;

insert into test1 values(7,'牛牛',32,77,'天津');
select *from test1;

select id,name,score,address from test1 order by address,score desc;

先按address进行降序排序,如address有相同就按score进行降序排序

2、and和or判断

在大型数据库中,有时查询数据需要数据符合某些特点条件
AND/OR 且/或 和shell脚本中一样使用方法

1、and和 or 的使用

select * from test1;

select id,name,score,address from test1 where score>=80; 查看score>=80

select id,name,score,address from test1 where score>=80 order by score desc;  查看score>=80 并进行倒序排列

 mysql> * from test1;

 select id,name,score,address from test1 where score>=80 and score<100;  查看[80,100)

 select id,name,score from test1 where score<60 or score>80;

2、嵌套、多条件使用 

select name,id,score from test1 where score<60 or (score>80 and score<100);

select name,id,score from test1 where score<60 or (score>80 and score<100) order by score desc;
 select * from test1;

select name,id,score from test1 where score>60 or (score>80 and score<100); 

select name,id,score from test1 where score>60 and (score>80 and score<100);

3、distinct 查询不重复记录

select distinct 字段 from 表名;
distinct 必须放在最开头
distinct 只能使用需要去重的字段进行操作
distinct 去重多个字段时,含义是:几个字段同时重复时才能被过滤,会默认按左边第一个字段为依据。
select distinct address from test1;  去掉重复的address

4、group by 对结果进行分组

通过 SQL 查询出来的结果,还可以对其进行分组,使用 GROUP BY 语句来实现 ,GROUP BY 通常都是结合聚合函数一起使用的,常用的聚合函数包括:计数(COUNT)求和(SUM)、求平均数(AVG)最大值(MAX)最小值(MIN),GROUP BY 分组的时候可以按一个或多个字段对结果进行分组处理。

对于group by后面的字段的查询结果进行汇总分组,通常是结合聚合函数一起使用的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值