MySQL高阶SQL语句

目录

常用查询

按关键字排序

order by结合where进行条件过滤

  根据多个字段进行排序

用或(or)和且(and)来查询不重复 

用多条件(嵌套)去查询 

去重

 对结果进行分组

限制结果(limit) 

别名(alias)

通配符 


常用查询

按关键字排序

SELECT语句可将数据从 MySQL 数据库中查询出来

对查询的结果进行排序,可用 ORDER BY 语句来对语句实现排序

不仅对某一个字段,也可以针对多个字段

语法
SELECT column1, column2, ... FROM table_name ORDER BY column1, column2, ... 

ASC  DESC

  • ASC 是按照升序进行排序的,是默认的排序方式,即 ASC 可以省略。SELECT 语句中如果没有指定具体的排序方式,则默认按 ASC方式进行排序。
  • DESC 是按降序方式进 行排列。ORDER BY 前面也可以使用 WHERE 子句对查询结果进一 步过滤。

操作

创建环境

创建school的数据库

create database school;

use school;

数据库有一张yiban表,记录了学生的id,姓名,分数,地址和爱好
create table yiban (id int,name varchar(10) primary key not null ,score decimal(5,2),address varchar(20),hobbid int(5));

insert into yiban values(1,'aodaye',80,'beijing',2);
insert into yiban values(2,'wangwu',90,'shengzheng',2);
insert into yiban values(3,'lisi',60,'shanghai',4);
insert into yiban values(4,'dalong',99,'hangzhou',5);
insert into yiban values(5,'danan',98,'laowo',3);
insert into yiban values(6,'wuye',10,'nanjing',3);
insert into yiban values(7,'xiaoki',11,'nanjing',5);

 select * from yiban;

按分数排序,默认不指定是升序排列

分数按降序排列

order by结合where进行条件过滤

筛选地址是北京的学生按分数降序排列 

  根据多个字段进行排序

当第一个字段有相同的数据情况下,可以根据第二个字段进行排序

查询学生信息先按兴趣id降序排列,相同分数的,id按升序排列

 

用或(or)和且(and)来查询不重复 

or

 and

用多条件(嵌套)去查询 

 

去重

distinct 查询不重复记录
语法:

select distinct 字段 from 表名

 对结果进行分组

我们可以通过group by语句配合聚合函数对sql语句查询出来的结果进行分组

语法
SELECT column_name, aggregate_function(column_name)FROM table_name WHERE column_name operator value GROUP BY column_name;

常用聚合函数 

计数(COUNT)、 求和(SUM)、求平均数(AVG)、最大值(MAX)、最小值(MIN)

 计数(COUNT)

  1. select count(name),hobbid from yiban group by hobbid;

  2. #统计yiban表中hobbid字段相同的个数

 

还可以结合where语句(添加条件),去筛选 

结合where语句,筛选分数大于等于80的分组,计算学生个数

结合order by把计算出的个数进行升序排列

查 表里有多少条数据

 select count(*) from yiban

select count(name) from yiban;

求和(SUM)

查看yiban表中成绩总值

 求平均数(AVG)

select avg(score) from yiban;

求出yiban表中的平均成绩

 最大值(MAX)

select max(score) from yiban;

求出yiban表中的成绩最大值

 最小值(MIN)

select min(score) from yiban;

求出yiban表中成绩的最小值

限制结果(limit) 

语法
SELECT column1, column2, ... FROM table_name LIMIT [offset,] number

 查询所有信息显示前4行记录

 我们的表结构默认字段算一行表示为0。所以用limit时要-1

从第4行开始,往后显示3行内容

我们还可以结合order by,对于做了限制的查询做排序

select * from yiban order by id desc limit 4;
在yiban表中根据id对前五行的数据进行降序排列

别名(alias)

语法
对于列的别名:SELECT column_name AS alias_name FROM table_name;
对于表的别名:SELECT column_name(s) FROM table_name AS alias_name;

select name as 姓名,score 成绩,address 地址 from yiban;
将name,score和address分别做别名

给表做r的别名

select r.name as 姓名,r.score as 成绩 from yiban as r;

通配符 

通配符主要用于替换字符串中的部分字符,

通过部分字符的匹配将相关结果查询出来。

通常跟 LIKE 一起使用的,并协同 WHERE 子句共同来完成查询任务。

常用的通配符有两个:

%:百分号表示零个、一个或多个字符        *
_:下划线表示单个字符                     . 
 

查询名字是d开头的记录

查询名字里是l和s中间有一个字符的记录

查询名字中间有e的记录

“%”和“_”也可以组合使用

查询名字以w开头的记录

相关推荐

  1. MySQL语句

    2024-03-29 17:24:03       16 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-29 17:24:03       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-29 17:24:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-29 17:24:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-29 17:24:03       18 阅读

热门阅读

  1. CAPL如何使用socket套接字实现TCP通信(断开连接)

    2024-03-29 17:24:03       20 阅读
  2. SSL证书部署完成后仍然不安全是怎么回事?

    2024-03-29 17:24:03       17 阅读
  3. 浏览器中的HttpOnly是什么

    2024-03-29 17:24:03       16 阅读
  4. postcss安装和使用

    2024-03-29 17:24:03       18 阅读
  5. 用python调用VideoReTalking实现电影后期制作

    2024-03-29 17:24:03       15 阅读
  6. js和jquery的区别

    2024-03-29 17:24:03       15 阅读
  7. 挡住程序员去路的不是年龄

    2024-03-29 17:24:03       19 阅读
  8. 计算机网络中---基本概念

    2024-03-29 17:24:03       16 阅读