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

news2024/10/10 8:27:13

目录

一.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.coloradmin.cn/o/1554327.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C语言】内存函数(memmove)的使用和模拟实现

目录 前言memmove定义1.在cplusplus中的定义 memmove的模拟实现1、思路2、难点3、解决方法 模拟实现代码 前言 这篇文章讲述了memcpy的使用、模拟实现和一个未解决的问题内存函数(memcpy)的使用和模拟实现 当我们使用我们模拟的my_memcpy拷贝&#xff0c;当源拷贝地址与目标拷…

C语言编译与链接

前言 我们想一个问题&#xff0c;我们写的C语言代码都是文本信息&#xff0c;电脑能直接执行c语言代码吗&#xff1f;肯定不能啊&#xff0c;计算机能执行的是二进制指令&#xff0c;所以将C语言转化为二进制指令需要一段过程&#xff0c;这篇博客讲一下编译与链接&#xff0c;…

ISAC代码仿真学习笔记

文章目录 A. MIMO Communication ModelB. MIMO Radar Model III. Joint Waveform and Phase Shift Matrix Design for Given Radar BeampatternA. Problem FormulationB. Proposed Algorithm IV. JOINT DESIGN WITH TRADE-OFF BETWEEN RADAR AND COMMUNICATION PERFORMANCEA. P…

boost::asio::ip::tcp/udp::socket::release 函数为什么限制 Windows 8.1 才可以调用?

如本文题目所示&#xff0c;这是因为只有在 Windows 8.1&#xff08;Windows Server 2012 RC&#xff09;及以上 Windows 操作版本才提供了运行时&#xff0c;修改/删除完成端口关联的ABI接口。 boost::asio 在 release 函数底层实现之中是调用了 FileReplaceCompletionInform…

Ubuntu20安装python3.10

1、添加 deadsnakes PPA 到源列表 add-apt-repository ppa:deadsnakes/ppa apt update 2、安装 apt install python3.10 3设置默认版本为 Python3.10 查看所有python版本 ls -l /usr/bin/python* update-alternatives --install /usr/bin/python3 python3 /usr/bin/pytho…

java-pytorch 使用手动下载FashionMNIST数据集进行测试

java-pytorch 使用手动下载FashionMNIST数据集进行测试 先定义训练数据和测试数据的位置查看一下读取到的标签数据格式使用loc和iloc访问下数据&#xff0c;便于下面操作使用read_image函数查看下图片的数据大小开始写数据集使用DataLoader去加载我们自己的数据看下加载后的dat…

亚马逊跨境电商迎来崭新时代,武汉星起航携手卖家共赴新征程

随着全球经济一体化的深入发展&#xff0c;跨境电商已成为推动国际贸易的重要力量。据最新数据显示&#xff0c;2023年中国跨境电商出口规模达到1.83万亿元&#xff0c;同比增长19.6%&#xff0c;增速远超电商行业整体水平。在这一背景下&#xff0c;2024年有望成为中国跨境电商…

ForkJoinPool、CAS原子操作

ForkJoinPool ForkJoinPool是由JDK1.7后提供多线程并行执行任务的框架。可以理解为一种特殊的线程池。 1.任务分割&#xff1a;Fork&#xff08;分岔&#xff09;&#xff0c;先把大的任务分割成足够小的子任务&#xff0c;如果子任务比较大的话还要对子任务进行继续分割。 …

构造器练习

练习一 题目 案例&#xff1a; (1)定义Student类,有4个属性&#xff1a;String name;int age;String school;String major;(2)定义Student类的3个构造器:- 第一个构造器Student(String n, int a)设置类的name和age属性&#xff1b; - 第二个构造器Student(String n, int a, St…

大话设计模式之策略模式

策略模式是一种行为设计模式&#xff0c;它允许在运行时选择算法的行为。这种模式定义了一族算法&#xff0c;将每个算法都封装起来&#xff0c;并且使它们之间可以互相替换。 在策略模式中&#xff0c;一个类的行为或其算法可以在运行时改变。这种模式包含以下角色&#xff1…

2024/3/29 IOday2

所有人&#xff0c;今日作业&#xff1a;用fwrite 和 fseek功能&#xff0c;将一张bmp格式的图片更改成 德国国旗 #include <stdio.h> #include <string.h> #include <stdlib.h> int main(int argc, const char *argv[]) {FILE* fpfopen("./rising_free…

android 集合总结

1 集合分类&#xff0c; collection和map两大类,Iterator接口是提供遍历任何Collection的接口&#xff0c;不是map 2 集合类的底层实现 hashset基于hashmap实现&#xff08;只不过HashSet里面的HashMap所有的value都是同一个Object而已&#xff09; treeset由红黑树实现 …

基于STC12C5A60S2系列1T 8051单片机通过单个按键单击次数实现开关机应用

基于STC12C5A60S2系列1T 8051单片机通过单个按键单击次数实现开关机应用 STC12C5A60S2系列1T 8051单片机管脚图STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式及配置STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式介绍基于STC12C5A60S2系列1T 8051单片机通过单个按…

代码随想录刷题day38|斐波那契数爬楼梯最小花费爬楼梯

文章目录 day38学习内容一、动态规划理论基础1.1、动态规划理论基础的几个关键概念&#xff1a;1.2、动态规划五部曲 二、斐波那契数2.1、动态规划五部曲2.1.1、 确定dp数组&#xff08;dp table&#xff09;以及下标的含义2.1.2、确定递推公式2.1.3、 dp数组如何初始化2.1.4、…

带你了解万向锁与欧拉角

万向锁与欧拉角 附赠自动驾驶学习资料和量产经验&#xff1a;链接 前言 上一篇中我们讲了欧拉角与旋转变化&#xff0c;最后留了一个悬念&#xff0c;就是欧拉角在俯仰角为90时会出现万向锁现象&#xff0c;这是欧拉角表征飞行器姿态的一个局限性&#xff0c;今天我们就来谈谈…

Spring-01

Spring 1.Spring是什么? spring是一个开源的Java应用框架&#xff0c;它提供了一套全面的基础设施支持 2.Spring框架的主要特点 1&#xff09;依赖注入&#xff08;Dependency Injection&#xff0c;DI&#xff09; 2&#xff09;面向切面编程&#xff08;AOP&#xff09…

智慧旅游中数据可视化的革新作用

在数字化浪潮席卷全球的今天&#xff0c;数据可视化技术已成为链接信息与用户的重要桥梁&#xff0c;尤其在智慧旅游领域&#xff0c;它的作用更是日益凸显。随着智慧旅游的概念越来越被重视&#xff0c;数据可视化成为其提供高效、直观服务的关键手段之一。本文将探讨数据可视…

K8S安装和部署(kubeadmin安装1主2从)

这里用kubeadmin方式进行安装部署 1. 准备三台服务器 服务器地址 节点名称 192.168.190.200 master 主 192.168.190.201 node1 从 192.168.190.202 node2 从 2. 主机初始化&#xff08;所有主机&#xff09; 2.1根据规划设置主机名 #切换到192.168.190.200 hostnamectl…

每天五分钟卷积神经网络:如何基于滑动窗口技术完成目标的检测?

汽车检测算法 现在我们想要构建一个汽车检测算法,我们希望输入到算法中一张图片,算法就可以帮助我们检测出这张图片中是否有汽车。 数据集 首先创建一个标签训练集,x是样本,y是标签。我们的训练集最好是被剪切过的图片,剪掉汽车以外的部分,使汽车居于中间位置,就是整张…

深入解析Java继承机制:面向对象编程的核心探究【Java面试题】

作为一名对技术充满热情的学习者&#xff0c;我一直以来都深刻地体会到知识的广度和深度。在这个不断演变的数字时代&#xff0c;我远非专家&#xff0c;而是一位不断追求进步的旅行者。通过这篇博客&#xff0c;我想分享我在某个领域的学习经验&#xff0c;与大家共同探讨、共…