MYSQL 高级SQL语句

news2024/11/16 0:32:15

1、按关键字排序:

  • order by 语句用来实现 ,前面可以使用where字句使查询结果进一步过滤

  • asc 是按照升序排序 , 默认的

  • desc 是按照降序排序

order by的语法结构 
例:select name,score from ku order by score desc;
表示将数值以降序的形式,显示ku中的名称和数值

排序前,数值没有规律性

排序后,数值是按照从大到小排列

2、区间判断查询 不重复记录

  • and表示且,两边条件都要满足
  • or表示或 ,只要满足一边条件即可
  • distinct:查询不重复记录

3、对结果进行分组

查询sql结果,对结果进行分组 group by 来实现,通常结合聚合函数一起使用

聚合函数:

count 计数、sum 求和、avg 平均数、max 最大值、min最小值

例:select count(*) from ku;
表示显示ku中一共有多少数据

4、限制结果条目

limit 限制输出记过记录

例:select * from ku limit 3;
表示显示ku中前三行的所有有数据

select * from ku limit 3,2;
表示显示ku中第三行的后两行所有数据

5、设置别名 (alias → as)

在mysql查询的时候,表和字段做一个别名 原因是表和列的字段比较长

as可以起到的作用:
  • 创建表的时候,插入表的数据

  • 可以克隆表的数据和表结构,但是约束没有完全复制过来

对于列的别名:
例:select name as 姓名, score as 地址 from aaa;

对于表的别名:
例:select b.name as 姓名, b.score as 地址 from 表名 as b;

新建一个表,将后面的命令结果数据插入到新建表中(相当于复制一张表)

​方法一:create table 新建表名 as select * from 复制的表名;
方法二:create table 新建表名(select * from 复制的表名);
 

指定数据插入

例:create table 新建表名 as select * from 复制的表名 where score<60;
表示创建一个新的表,将复制的表中数值小于60的数据,复制到新的表中

6、通配符

       通配符主要用于替换字符串中的部分字符,通过部分字符的匹配快速查找数据库中的内容 ​ 通常通配符都是跟 like 一起使用的,并协同 where语句共同来完成查询任务。常用的通配符有两个:

  • %表示零个、一个或多个字符 (类似于 ' * ')

  • _ 表示单个字符 (类似于 ' . ')

    【注 :可以组合使用】

例:select name,score,address from ku where address like 'n%';
表示ku中地址以 'n' 开头的数据,显示出其名称、数值和地址

例:select id,name,address from ku where address like 'shangh_ _';
表示ku中地址以 'shangh' 开头的数据,显示出其序列、名称和地址

7、子查询

  • 子查询也被称作 内查询 或者 嵌套查询 ,是指在一个查询语句里面还嵌套着另一个查询语句。
  • 子查询语句是先于主查询语句被执行的,其结果作为外层的条件返回给主查询进行下一 步的查询过滤,最内层的子查询最优先处理

       【ps:子语句可以与主语句所查询的表相同,也可以是不同表】

in 表示将主表和 子表进行关联/连接 ,用来判断某个值是否在给定结果集中,通常结合子查询来进行使用
​
例:select name,score from ku where id in (select id from ku where score>60);
表示查询ku中数值大于60的数据,显示其名称和数值
​
主语句: elect name,score from ku
子语句(集合): select id from ku where score>60
in: 将主表和子表关联/连接的语法
PS:子语句中的sql语句是为了,最后过滤出一个结果集,用于主语句的判断条件

 

not in 表示取反
例: update biao3 set score=100 where id not in (select id from ku where id>2);
表示查询ku中小于2的序列,将这个序列带入表3中,将其的数值改为100
​
先进行子语句:select id from ku where id>2  #查询ku中id大于2的
再进行:where id not in     #取反 【相当于只有1和2】
最后进行:update biao3 set score=1000  #将biao3中1、2的值改成100

 

EXISTS :作为判断,主要用于判断子查询的结果集是否为空。如果不为空, 则返回 true;反之则返回 false
例:select count(*) from ku where exists(select * from ku where score>60);
表示查询ku中数据的数值,如果有大于60的,则列出ku中的数据行数

8、视图

视图:优化操作 + 安全方案

  • 数据库中的虚拟表,这张虚拟表中不包含真实数据,只是做了真实数据的映射
  • 视图可以理解为镜花水月/倒影,动态保存结果集 ( 数据 )
作用场景[图]:
  • 针对不同的人( 权限身份 ),提供不同结果集的”表”( 以表格的形式展示 )

作用范围:
select * from 表名;  #展示的部分是具体某张表

select * from view name;  #展示的是一张或多张表
功能:

        简化查询结果集、灵活查询、可以针对不同用户呈现不同结果集、相对有更高的安全性本质而言视图是一种select (结果集的呈现)

【ps:视图适合于多表连接浏览时使用,不适合增、删、改,而存储过程适合于使用较频繁的SQL语句,这样可以提高执行效率!】

视图和表的区别和联系

区别:
  • 视图是已经编译好的sql语句。而表不是

  • 视图没有实际的物理记录。而表有 show table status \G

  • 表只用物理空间而视图不占用物理空间,视图只是逻辑概念的存在,表可以及时对它进行修改,但视图只能有创建的语句来修改

  • 视图是查看数据表的一种方法,可以查询数据表中某些字段构成的数据,只是一些SQL语句的集合。从安全的角度说,视图可以不给用户接触数据表,从而不知道表结构。

  • 表属于全局模式中的表,是实表:视图属于局部模式的表,是虚表

  • 视图的建立和删除只影响视图本身,不影响对应的基本表。(但是更新视图数据,是会影响到基本表的)

联系:

视图(view)是在基本表之上建立的表,它的结构(即所定义的列)和内容即所有数据行)都来自基本表,它依据基本表存在而存在一个视图可以对应一个基本表,也可以对应多个基本表。视图是基本表的抽象和在逻辑意义上建立的新关系。

示例:需求: 满足80分的学生展示在视图中

删除视图:

命令 drop view if exists 视图名;


 

9、null值

nu11值与空值的区别 ( 空气与真空 )

空值长度为0,不占空间,NULI值的长度为null,占用空间 

内查询/内连接:inner join

  • 输出匹配的共同字段/共同数据  

左连接:left join

  • 将两张表的内容进行匹配,按照sql语句进行查询,查询的顺序【左 → 右】 输出左表的全部内容和右表共同的数据内容

右连接:right join

  • 将两张表的内容进行匹配,按照sql语句进行查询,查询的顺序【右→左】 输出右表的全部内容和左表共同的数据内容 

存储过程:

  • 存储过程的主体都分,被称为过程体

  • 以BEGIN开始,以END结束,若只有一条SQL语句,则可以省略BEGIN-END

  • 以DELIMITER开始和结束

存储过程参数
  • IN:输入参数:表示调用者向过程传入值《传入值可以是字面量或变量)

  • OUT : 输出参数:表示过程向调用者传出值(可以返回多个值) (传出值只能是变量)

  • INOUT :输入输出参数:既表示调用者向过程传入值,又表示过程向调用者传出值(值只能是变量)

    即表示调用者向过程传入值,又表示过程向调用者传出值 ( 只能是变量 )

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

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

相关文章

飞书接入ChatGPT,实现智能化问答助手功能,提供高效的解答服务

文章目录 前言环境列表1.飞书设置2.克隆feishu-chatgpt项目3.配置config.yaml文件4.运行feishu-chatgpt项目5.安装cpolar内网穿透6.固定公网地址7.机器人权限配置8.创建版本9.创建测试企业10. 机器人测试 前言 在飞书中创建chatGPT机器人并且对话&#xff0c;在下面操作步骤中…

【源码分析】zeebe actor模型源码解读

zeebe actor 模型&#x1f64b;‍♂️ 如果有阅读过zeebe 源码的朋友一定能够经常看到actor.run() 之类的语法&#xff0c;那么这篇文章就围绕actor.run 方法&#xff0c;说说zeebe actor 的模型。 环境⛅ zeebe release-8.1.14 actor.run() 是怎么开始的&#x1f308; Lon…

APP出海推广前要做哪些事?

一个移动应用APP从开发完成到成功出海&#xff0c;中间要经历哪些过程&#xff1f;上架应用商店、数据对接、各渠道推广要做些什么&#xff1f; 1、上架应用市场 对于想要出海的APP开发商来说&#xff0c;谷歌应用商店Google Play和苹果应用商店Apple APP Store是主要的发行渠…

QT 插件化图像算法研究平台

因工作和生活需要&#xff0c;做了一个插件化的图像算法研究平台。 相关技术如下&#xff1a; 一、插件化 实现了基本的插件框架&#xff0c;能载入插件、加载菜单。 主程序只有插件载入功能。 主窗体、其它任何功能及窗体均由各种插件提供。 二、Opencv相关插件&#xf…

JVM的故事——虚拟机类加载机制

虚拟机类加载机制 文章目录 虚拟机类加载机制一、概述二、类加载的时机三、类加载的过程四、类加载器 一、概述 本章将要讲解class文件如何进入虚拟机以及虚拟机如何处理这些class文件。Java虚拟机把class文件加载到内存&#xff0c;并对数据进行校验、转换解析和初始化&#…

Qt+C++桌面计算器源码

程序示例精选 QtC桌面计算器源码 如需安装运行环境或远程调试&#xff0c;见文章底部个人QQ名片&#xff0c;由专业技术人员远程协助&#xff01; 前言 这篇博客针对<<QtC桌面计算器源码>>编写代码&#xff0c;代码整洁&#xff0c;规则&#xff0c;易读。 学习与…

素数之谜揭秘:一文详解试除法判断素数

这是我非常喜欢的一道编程题目。不要小看这道题&#xff0c;它看似简单&#xff0c;实则奥妙无穷。由于这是C语言的入门篇&#xff0c;只介绍最简单&#xff0c;也最容易想到的方法&#xff1a;试除法。但哪怕是试除法&#xff0c;也有不少变化。 要想了解试除法&#xff0c;首…

Flowable7 设计器

1、flowable7 已经在主版本上移除了Flowable UI相关的包&#xff0c;包含bpm-json相关的所有包和流程设计器相关前端文件。 2、flowable7 版本目前只保留了xml运行相关的包&#xff0c;ui modeler已经移除 3、目前官方给的回复是只能在 flowable 云产品上使用设计器&#xff…

进程的组成:PCB、程序段、数据段

进程的组成:PCB、程序段、数据段 什么是进程 在操作系统中,进程是资源分配和程序执行的基本单位,它是操作系统动态执行的一个程序。 进程是一个动态的概念,当一个程序运行时,它就是一个进程,进程需要相应的系统资源:内存、CPU、文件等等,以保证其能够正确运行。对于同一个程…

短线炒股必杀技

一、短线交易入门基础 1.什么是短线 短线交易博取的是短期差价收益&#xff0c;一般不太关心股票的业绩和潜质&#xff0c;只关心个股近期是否会上涨&#xff0c;具体涨多少。短线投资者以技术派为主&#xff0c;主要依据技术图表进行分析。一般短线投资者的通常持股周期是以几…

设计师都去哪些网站找样机素材

在当今的设计领域&#xff0c;3D样机素材已经成为一个重要的领域。3D样机素材可以让设计师更好地展示他们的设计理念和概念&#xff0c;也可以帮助客户更好地理解设计。为了帮助设计师更容易地创建3D样机素材&#xff0c;以下是我推荐的10个易于使用的3D样机素材网站。 即时设…

那个学C++不没有点大病?一点点癫狂的语法混乱版note和有一点点长的无语的标题,让人怀疑精神状态尼奥

类型转换 切勿混用无符号类型和有符号类型 表达式中两者都有时&#xff0c;有符号类型会转化为无符号类型&#xff0c;当该值为负时会出现非预期结果&#xff1b; unsigned a 1; int b -1; cout<<a*b;//输出 4294967295 //详解: b的源码&#xff1a;100...1 负数转补…

PL端DDR4读写测试实验(未完成)

文章目录 DDR4介绍实验过程编写XDC使用IP核上板验证TODO 参考 DDR4介绍 开发板PL有一颗16bit的DDR4。 先说明硬件信号&#xff08;按该芯片&#xff09;&#xff1a; 信号名说明DQData input/output&#xff0c;双向数据线&#xff08;这个芯片是x16的&#xff0c;使用DQ[15…

SpringBoot初级开发--多环境配置的集成(9)

在Springboot的开发中&#xff0c;我们经常要切换各种各样的环境配置&#xff0c;比如现在是开发环境&#xff0c;然后又切换到生产环境&#xff0c;这个时候用多环境配置就是一个明智的选择。接下来我们沿用上一章的工程来配置多环境配置工程。 1.准备多环境配置文件 这里我…

时序预测 | MATLAB实现基于PSO-GRU、GRU时间序列预测对比

时序预测 | MATLAB实现基于PSO-GRU、GRU时间序列预测对比 目录 时序预测 | MATLAB实现基于PSO-GRU、GRU时间序列预测对比效果一览基本描述程序设计参考资料 效果一览 基本描述 MATLAB实现基于PSO-GRU、GRU时间序列预测对比。 1.MATLAB实现基于PSO-GRU、GRU时间序列预测对比&…

批量剪辑工具:轻松垂直翻转倒立视频画面

你是否曾经遇到这样的情况&#xff1a;拍摄的视频画面是倒立的&#xff0c;但你需要在正立的情况下观看。这时候&#xff0c;你需要一款视频批量剪辑工具来帮助你垂直翻转倒立的视频画面。 首先第一步&#xff0c;我们要打开【视频剪辑高手】&#xff0c;登录账号。 第二步&…

偏置曲柄滑块机构连杆上的双尖点轨迹

偏置曲柄滑块机构是一种常见的机械传动机构&#xff0c;由曲柄、偏置滑块和连杆组成。其中&#xff0c;偏置滑块具有急回特性&#xff0c;可以使机构在运动过程中产生快速的反向运动。 偏置曲柄滑块机构中&#xff0c;连杆上的双尖点轨迹指的是连杆在偏置曲柄滑块机构的运动过…

MOS的减速加速电路设计

引言&#xff1a;在开始讲解MOS的减速加速电路之前&#xff0c;我们还是先来回顾MOS开启与关闭的根本机制。以NMOS为例&#xff0c;开启NMOS本质是对G极进行充电&#xff0c;至Cgs电荷充满&#xff0c;G极才会达到控制端电平值或者开启阈值&#xff0c;关断NMOS时&#xff0c;G…

嵌入式开发之syslog和rsyslog构建日志记录

1.syslogd作客户端 BusyBox v1.20.2 (2022-04-06 16:19:14 CST) multi-call binary.Usage: syslogd [OPTIONS]System logging utility-n Run in foreground-O FILE Log to FILE (default:/var/log/messages)-l N Log only messages more urge…

QT DAY 2

window.cpp #include "window.h" #include<QDebug> #include<QIcon> Window::Window(QWidget *parent) //构造函数的定义: QWidget(parent) //显性调用父类的构造函数 {//this->resize(430,330);this->resize(QSize(800,600));// this…