关系型数据库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.mzph.cn/news/782383.shtml

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

相关文章

ESP8266 控制 LED 亮灭

一、引脚对应 二、按键控制 LED 亮灭 2.1样例1 #include <ESP8266WiFi.h>const int ledPin D2; // LED 连接到 D2 引脚 const int keyPin D4; // 按键连接到 D4 引脚volatile bool flag false; // 记录 LED 状态的标志// 外部中断处理函数 ICACHE_RAM_ATTR void han…

重新温习广软puthon爬虫技术。

下面是我不断试错的一个过程&#xff0c;好多知识点全忘记了&#xff0c;只能不断调实例&#xff0c;不断优化&#xff0c;重构&#xff0c;实现自己的需求。下面是我的运行截图。还是导包的问题。 个人感觉关键的还是这几部&#xff0c;被划了下划线的&#xff0c;存在问题&a…

【智能算法】猎人猎物算法(HPO)原理及实现

目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.结果展示4.参考文献 1.背景 2022年&#xff0c;Naruei等人受到自然界动物猎食过程启发&#xff0c;提出了猎人猎物算法&#xff08;Hunter-Prey Optimization&#xff0c; HPO&#xff09;。 2.算法原理 2.1算法思想 HPO模拟…

输出1到10的阶乘--C语言

#include<stdio.h> int fac(int n){if(n<1){return 1;}elsereturn fac(n-1)*n; } int main(){int i, result;for(i1;i<10;i){resultfac(i);printf("%d!%d\n",i,result);}} 输出结果&#xff1a;

Java并发编程基础_Thread类

线程 Thread.class 1. 线程的六种状态 NEW 尚未启动的线程处于此状态。RUNNABLE 在Java虚拟机中执行的线程处于此状态。BLOCKED 被阻塞等待监视器锁定的线程处于此状态。WAITING 正在等待另一个线程执行特定动作的线程处于此状态。TIMED_WAITING 正在等待另一个线程执行动作达到…

C++中浅拷贝和深拷贝对象复制概念

1.浅拷贝&#xff08;Shallow Copy&#xff09;&#xff1a; 浅拷贝是指在对象复制时&#xff0c;只是复制对象的值&#xff0c;而不会复制对象指向的资源。这意味着对象和其副本会指向同一块内存空间&#xff0c;当一个对象改变时&#xff0c;另一个对象也会受到影响。 #inclu…

回溯算法|216.组合总和III

力扣题目链接 class Solution { private:vector<vector<int>> result; // 存放结果集vector<int> path; // 符合条件的结果// targetSum&#xff1a;目标和&#xff0c;也就是题目中的n。// k&#xff1a;题目中要求k个数的集合。// sum&#xff1a;已经收集…

OpenKylin安装Kafka

一、操作系统 openKylin 1.0.1 X86 二、下载安装包 # 安装依赖jdk sudo apt-get update sudo apt-get install default-jdk # 下载kafka mkdir -p /data/software/kafka wget https://archive.apache.org/dist/kafka/2.4.1/kafka_2.13-2.4.1.tgz三、解压安装 # 解压缩Kafka…

springboot项目学习-瑞吉外卖(4)续

1.任务 菜品的添加功能(涉及到两张表的数据添加) 2.菜品添加 功能页面如上&#xff0c;该页面有两个注意点 菜品分类&#xff1a;点击菜品分类后&#xff0c;会展示当前已有菜品&#xff1a;这个功能的实现要从category表里查询数据&#xff0c;然后再做展示口味做法配置&#…

算法题->移动零的C语言和JAVA的双指针解法

使用C语言和JAVA代码通过双指针进行解题 题目描述:给定一个数组 nums&#xff0c;编写一个函数将所有 0 移动到数组的末尾&#xff0c;同时保持非零元素的相对顺序。 理解题意:不改变数组中非零元素的顺序,并把0元素放在非零元素后面. 链接: https://leetcode.cn/problems/m…

Linux——将云服务器作为跳板机,frp实现内网穿透

文章目录 操作步骤1. 准备工作&#xff1a;2. 配置frp服务器端&#xff1a;3. 配置frp客户端&#xff1a;4. 启动frp客户端&#xff1a;5. 测试连接&#xff1a;6. 安全注意事项&#xff1a; 云服务器性能分析阿里云具体操作步骤1. 购买&#xff1a;2. 登录&#xff1a;3. 首次…

springboot企业级抽奖项目业务四 (缓存预热)

缓存预热 为什么要做预热: 当活动真正开始时&#xff0c;需要超高的并发访问活动相关信息 必须把必要的数据提前加载进redis 预热的策略: 在msg中写一个定时任务 每分钟扫描一遍card_game表 把(开始时间 > 当前时间)&& (开始时间 < 当前时间1分钟)的活动及相…

CrossOver软件2024免费 最新版本详细介绍 CrossOver软件好用吗 Mac电脑玩Windows游戏

CrossOver是一款由CodeWeavers公司开发的软件&#xff0c;它可以在Mac和Linux等操作系统上运行Windows软件&#xff0c;而无需在计算机上安装Windows操作系统。这款软件的核心技术是Wine&#xff0c;它是一种在Linux和macOS等操作系统上运行Windows应用程序的开源软件。 Cross…

大语言模型---强化学习

本文章参考&#xff0c;原文链接&#xff1a;https://blog.csdn.net/qq_35812205/article/details/133563158 SFT使用交叉熵损失函数&#xff0c;目标是调整参数使模型输出与标准答案一致&#xff0c;不能从整体把控output质量 RLHF&#xff08;分为奖励模型训练、近端策略优化…

HarmonyOS 应用开发之FA模型绑定Stage模型ServiceExtensionAbility

本文介绍FA模型的三种应用组件如何绑定Stage模型的ServiceExtensionAbility组件。 PageAbility关联访问ServiceExtensionAbility PageAbility关联访问ServiceExtensionAbility和PageAbility关联访问ServiceAbility的方式完全相同。 import featureAbility from ohos.ability…

Adaboost集成学习 | Matlab实现基于ELM-Adaboost极限学习机结合Adaboost集成学习时间序列预测(股票价格预测)

目录 效果一览基本介绍模型设计程序设计参考资料效果一览 基本介绍 基于ELM-Adaboost极限学习机结合Adaboost集成学习时间序列预测(股票价格预测) 单变量时间序列单步预测。 ELM(Extreme Learning Machine,极限学习机)和AdaBoost(Adaptive Boosting,自适应提升)都是机…

c++----list模拟实现

目录 1. list的基本介绍 2. list的基本使用 2.1 list的构造 用法示例 2.2 list迭代器 用法示例 2.3. list容量&#xff08;capacity&#xff09;与访问&#xff08;access) 用法示例 2.4 list modifiers 用法示例 2.5 list的迭代器失效 3.list的模拟实现 3.1…

使用Python实现ID3决策树中特征选择的先后顺序,字节跳动面试真题

def empty1(pri_data): hair [] #[‘长’, ‘短’, ‘短’, ‘长’, ‘短’, ‘短’, ‘长’, ‘长’] voice [] #[‘粗’, ‘粗’, ‘粗’, ‘细’, ‘细’, ‘粗’, ‘粗’, ‘粗’] sex [] #[‘男’, ‘男’, ‘男’, ‘女’, ‘女’, ‘女’, ‘女’, ‘女’] for o…

leetcode.209.长度最小的子数组

题目 给定一个含有 n 个正整数的数组和一个正整数 s &#xff0c;找出该数组中满足其和 ≥ s 的长度最小的 连续 子数组&#xff0c;并返回其长度。如果不存在符合条件的子数组&#xff0c;返回 0。 示例&#xff1a; 输入&#xff1a;s 7, nums [2,3,1,2,4,3] 输出&#…

sqli第24关二次注入

注入点 # Validating the user input........$username $_SESSION["username"];$curr_pass mysql_real_escape_string($_POST[current_password]);$pass mysql_real_escape_string($_POST[password]);$re_pass mysql_real_escape_string($_POST[re_password]);if($p…