关系型数据库mysql(7)sql高级语句①

目录

一.MySQL常用查询

1.按关键字(字段)进行升降排序

按分数排序 (默认为升序)

 按分数升序显示

按分数降序显示

 根据条件进行排序(加上where)

 根据多个字段进行排序

​编辑

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

或(or)

且(and) 

3.用多条件(嵌套)去查询

4.去重

5.对结果进行分组

计数(COUNT)

求和(SUM)

求平均数(AVG)

 最大值(MAX)

 最小值(MIN)

6.限制结果(limit)

7.别名(alias)

8.通配符 

二.总结

1.Mysql常用SQL语句

2.Mysql高级SQL语句

2.1排序——Order by

2.2且或嵌套

2.3分组——Group by

2.4限制行——Limit

2.5别名——alias

2.6通配符


一.MySQL常用查询

1.按关键字(字段)进行升降排序

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

语法

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

创建我们需要的环境

create database school;  #创建school的数据库
use school;
create table class (id int(10),name varchar(16) primary key not null,score decimal(5,2),address varchar(40),hobbid int(8));mysql> insert into class values(2,'lisi',80,'suzhou',2);
Query OK, 1 row affected (0.00 sec)mysql> insert into class values(3,'wangwu',80,'wuxi',3);
Query OK, 1 row affected (0.00 sec)mysql> insert into class values(4,'liliu',70,'changzhou',3);
Query OK, 1 row affected (0.00 sec)mysql> insert into class values(5,'tianqi',60,'yangzhou',4);
Query OK, 1 row affected (0.00 sec)mysql> insert into class values(6,'wangba',50,'taizhou',4);
Query OK, 1 row affected (0.00 sec)mysql> insert into class values(7,'sunjiu',40,'lianyungang',5);
Query OK, 1 row affected (0.01 sec)mysql> insert into class values(8,'chenshi',40,'xuzhou',5);
Query OK, 1 row affected (0.00 sec)mysql> insert into class values(9,'qianda',20,'yanchen',6);
Query OK, 1 row affected (0.00 sec)mysql> insert into class values(10,'zhaoer',10,'taizhou',6);
Query OK, 1 row affected (0.00 sec)

 

按分数排序 (默认为升序)
 select name,score from class order by score;
#将class表中的成绩按照名字和成绩字段按升序排列出来

 按分数升序显示
select name,score from class order by score asc;
#将class表中的成绩按照名字和成绩字段按升序排列出来

按分数降序显示
select name,score from class order by score desc;
#将class表中的成绩按照名字和成绩字段按升序降列出来

 根据条件进行排序(加上where)
select name,score from class where address='taizhou' order by score desc;
#将class表中地区为泰州的成绩字段按降序排列出来

 根据多个字段进行排序

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

select id,name,hobbid from class order by hobbid desc,id desc;
#在class表中查询学生信息先按兴趣id降序排列,相同分数的,id也按降序排列

去掉desc,就是默认先按hobbid降序,然后相同的,按升序的id排序

select id,name,hobbid from class order by hobbid desc,id;

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

或(or)
select * from class where score <=60 or score>80;
#查询class表中成绩小于等于60或成绩大于80

且(and) 
select *from class where id>2 and id <5;
#查询class表中id大于2且id小于5的

3.用多条件(嵌套)去查询

 select *from class where id >5 or(score >60 and score <90);
##查询class表中id大于5或成绩大于60且成绩小于90

 select *from class where hobbid >3 and(score >50 or score <80);
#查询class表中hobbid大于3且成绩大于50或小于80的部分

4.去重

语法

select distinct 字段 from 表名﹔
select distinct hobbid from class;
#查询class表中hobbid字段不重复的部分

 

5.对结果进行分组

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

GROUP BY 有一个原则,凡是在 GROUP BY 后面出现的字段,必须在 SELECT 后面出现; 凡是在 SELECT 后面出现的、且未在聚合函数中出现的字段,必须出现在 GROUP BY 后面

语法

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)
select count(name),hobbid from class group by hobbid;
#统计class表中hobbid字段相同的个数

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

select count(name),from class where score <60 group by hobbid;
#筛选出成绩小于60的分组并计算出个数

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

select count(name),score,hobbid from class where score <=60 group by hobbid order by score asc;
#将class表上成绩小于等于60的人数按照score进行分组并按照升序排列

查 表里有多少条数据

select count(*) from class;

 

select count(name) from class;

求和(SUM)
 select sum(score) from class;
#查看class表中成绩总值

求平均数(AVG)
select avg(score)from class;
#求出class表中的平均成绩

 最大值(MAX)
 select max(score)from class;
#求出class表中的成绩最大值

 最小值(MIN)
select min(score) from class;
#求出class表中成绩的最小值

6.限制结果(limit)

语法

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

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

 

 select * from class limit 4;
#查询所有信息前五行记录

 select * from class limit 4,4;
#从第五行开始,往后显示4行内容

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

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

 

select * from class order by hobbid desc limit 4;
#在class表中根据hobbid对前五行进行降序排列

 在生产环境中,我们删除数据时,最好先查,是否是我们要删除的数据,避免事故发生,数据无价

7.别名(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 class;
#将name,score和address分别做别名

select name as 姓名,score 成绩,address 地址 from class as k;  
#给表做k的别名

8.通配符 

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

有通配符的时候一定要带有like 

select name from class where name like 'z%';
#查询以’z‘开头的name字段

select name from class where name like '%u';
#查询以‘u’结尾的name字段

select name from class where name like'zhan_s_n';
#查询以zhan..s.n的name字段

select name from class where name like 'zhang___';
#查询zhang后面三个字符的name字段

select name from class where name like '%h%';
#查询name字段中含有h的记录

 

select name from class where name like 'z%_';
#查询以z开头的name字段

二.总结

1.Mysql常用SQL语句

  • Select:显示数据表中单个或多个字段列的数据内容
  • Distinct:去重
  • Where:条件判断
  • In:根据已知的数据和字段列进行查询
  • Between:介于两个字段列或者两个值之间的数据

2.Mysql高级SQL语句

2.1排序——Order by
  • Asc:升序
  • Desc:降序
2.2且或嵌套
  • And:且,并列,需要同时满足两个判断条件
  • Or:或,满足一个判断条件即可
  • ():嵌套,优先满足嵌套内的判断条件,再判断嵌套外的条件判断是否满足
2.3分组——Group by

聚合函数

  • Count:计数
  • Sum:求和
  • Max:最大值
  • Min:最小值
  • Avg:平均值
2.4限制行——Limit
2.5别名——alias
2.6通配符
  • %:任意字符
  • _:单个字符

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/291996.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python Flask框架 -- flask-migrate迁移ORM模型

# 之前使用的这个db.create_all()很有局限性&#xff0c;它不能把在class里修改的东西同步上数据库&#xff0c;所以不用了 # with app.app_context(): # 请求应用上下文 # db.create_all() # 把所有的表同步到数据库中去 例如&#xff0c;在User类中增加一个email字段&…

C语言例1-3:设 int a; ,语句 for(a=0;a==0;a++); 和语句 for(a=0;a=0;a++); 执行的循环次数分别是

答案&#xff1a;1,0 代码如下&#xff1a; #include<stdio.h> int main(void) {int a;for(a0;a0;a){printf("1\n");} return 0; } 结果如下&#xff1a; 代码如下&#xff1a; #include<stdio.h> int main(void) {int a;for(a0;a0;a){printf("…

【前端】layui学习笔记

参考视频&#xff1a;LayUI 1.介绍 官网&#xff1a;http://layui.apixx.net/index.html 国人16年开发的框架,拿来即用,门槛低 … 2. LayUi的安装及使用 Layui 是一套开源的 Web UI 组件库&#xff0c;采用自身轻量级模块化规范&#xff0c;遵循原生态的 HTML/CSS/JavaScript…

深入解析大语言模型显存占用:训练与推理

深入解析大语言模型显存占用&#xff1a;训练与推理 文章脉络 估算模型保存大小 估算模型在训练时占用显存的大小 全量参数训练 PEFT训练 估算模型在推理时占用显存的大小 总结 对于NLP领域的从业者和研究人员来说&#xff0c;有没有遇到过这样一个场景&#xff0c;你的…

C语言例1-11:语句 while(!a); 中的表达式 !a 可以替换为

A. a!1 B. a!0 C. a0 D. a1 答案&#xff1a;C while()成真才执行&#xff0c;所以!a1 &#xff0c;也就是 a0 原代码如下&#xff1a; #include<stdio.h> int main(void) {int a0;while(!a){a;printf("a\n");} return 0; } 结果如…

平台介绍-搭建赛事运营平台(8)

平台介绍-搭建赛事运营平台&#xff08;5&#xff09;提到了字典是分级的&#xff0c;本篇具体介绍实现。 平台级别的代码是存储在核心库中&#xff0c;品牌级别的代码是存储在品牌库中&#xff08;注意代码类是一样的&#xff09;。这部分底层功能封装为jar包&#xff0c;然后…

算法打卡day21(开始回溯)

今日任务&#xff1a; 1&#xff09;77.组合 77.组合 题目链接&#xff1a;77. 组合 - 力扣&#xff08;LeetCode&#xff09; 文章讲解&#xff1a;代码随想录 (programmercarl.com) 视频讲解&#xff1a;带你学透回溯算法-组合问题&#xff08;对应力扣题目&#xff1a;77…

Stable Diffusion之核心基础知识和网络结构解析

Stable Diffusion核心基础知识和网络结构解析 一. Stable Diffusion核心基础知识1.1 Stable Diffusion模型工作流程1. 文生图(txt2img)2. 图生图3. 图像优化模块 1.2 Stable Diffusion模型核心基础原理1. 扩散模型的基本原理2. 前向扩散过程详解3. 反向扩散过程详解4. 引入Late…

axios+springboot上传图片到本地(vue)

结果&#xff1a; 前端文件&#xff1a; <template> <div> <input type"file" id"file" ref"file" v-on:change"handleFileUpload()"/> <button click"submitFile">上传</button> </div&g…

3D汽车模型线上三维互动展示提供视觉盛宴

VR全景虚拟看车软件正在引领汽车展览行业迈向一个全新的时代&#xff0c;它不仅颠覆了传统展览的局限&#xff0c;还为参展者提供了前所未有的高效、便捷和互动体验。借助于尖端的vr虚拟现实技术、逼真的web3d开发、先进的云计算能力以及强大的大数据处理&#xff0c;这一在线展…

某东推荐的十大3C热榜第一名!2024随身wifi靠谱品牌推荐!2024随身wifi怎么选?

一、鼠标金榜&#xff1a;戴尔 商务办公有线鼠标 售价:19.9&#xffe5; 50万人好评 二、平板电脑金榜&#xff1a;Apple iPod 10.2英寸 售价:2939&#xffe5; 200万人好评 三、随身WiFi金榜&#xff1a;格行随身WiFi 售价:69&#xffe5; 15万人好评 四、游戏本金榜&#xff…

Android 自定义坐标曲线图(二)

Android 自定义坐标曲线图_android 自定义曲线图-CSDN博客 继上一篇文章&#xff0c;点击折线图上的点&#xff0c;显示提示信息进行修改&#xff0c;之前通过回调&#xff0c;调用外部方法&#xff0c;使用popupwindow或dialog来显示&#xff0c;但是这种方法对于弹框显示的位…

Mysql or与in的区别

创建一个表格 内涵一千万条数据 这张表中&#xff0c;只有id有建立索引&#xff0c;且其余都没有 测试1&#xff1a;使用or的情况下&#xff0c;根据主键进行查询 可以看到根据主键id进行or查询 花费了30-114毫秒&#xff0c;后面30多毫秒可能是因为Mysql的Buffer Pool缓冲池的…

Java并查集详解(附Leetcode 547.省份数量讲解)

一、并查集概念 并查集是一种树型的数据结构&#xff0c;用于处理一些不相交集合的合并及查询问题。 并查集的思想是用一个数组表示了整片森林&#xff08;parent&#xff09;&#xff0c;树的根节点唯一标识了一个集合&#xff0c;我们只要找到了某个元素的的树根&#xff0c;…

Unreal的Quixel Bridge下载速度过慢、下载失败

从Quixel Bridge下载MetaHuman模型&#xff0c;速度非常慢&#xff0c;而且经常下载失败&#xff0c;从头下载。 可以从Quixel Bridge的右上角我的图标->Support->Show Logs打开日志目录 downloaded-assets目录下为下载的资源 bridge-plugin.log文件记录了下载URL和下载…

Webpack生成企业站静态页面 - 项目搭建

现在Web前端流行的三大框架有Angular、React、Vue&#xff0c;很多项目经过这几年的洗礼&#xff0c;已经都 转型使用这三大框架进行开发&#xff0c;那为什么还要写纯静态页面呢&#xff1f;比如Vue中除了SPA单页面开发&#xff0c;也可以使用nuxt.js实现SSR服务端渲染&#x…

RabbitMQ基础笔记

视频链接&#xff1a;【黑马程序员RabbitMQ入门到实战教程】 文章目录 1.初识MQ1.1.同步调用1.2.异步调用1.3.技术选型 2.RabbitMQ2.1.安装2.1.1 Docker2.1.1 Linux2.1.1 Windows 2.2.收发消息2.2.1.交换机2.2.2.队列2.2.3.绑定关系2.2.4.发送消息 2.3.数据隔离2.3.1.用户管理2…

Go 之 Gin 框架

Gin 是一个 Go (Golang) 编写的轻量级 web 框架&#xff0c;运行速度非常快&#xff0c;擅长 Api 接口的高并发&#xff0c;如果项目的规模不大&#xff0c;业务相对简单&#xff0c;这个时候我们也推荐您使用 Gin&#xff0c;特别适合微服务框架。 简单路由配置 package mai…

STM32CubeIDE基础学习-USART串口通信实验(中断方式)

STM32CubeIDE基础学习-USART串口通信实验&#xff08;中断方式&#xff09; 文章目录 STM32CubeIDE基础学习-USART串口通信实验&#xff08;中断方式&#xff09;前言第1章 硬件介绍第2章 工程配置2.1 工程外设配置部分2.2 生成工程代码部分 第3章 代码编写第4章 实验现象总结 …

AMD hipcc 生成各个gpu 微架构汇编语言代码的方法示例

1&#xff0c;gpu vectorAdd 示例 为了简化逻辑&#xff0c;故假设 vector 的 size 与运行配置的thread个熟正好一样多&#xff0c;比如都是512之类的. 1.1 源码 vectorAdd.hip #include <stdio.h> #include <hip/hip_runtime.h>__global__ void vectorAdd(con…