MYSQL 高级SQL语句

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

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

语法: select * from biao1 inner join biao2 on biao1的字段名=biao2的字段名;

 

左连接:left join

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

语法:select * from biao1 left join biao2 on biao1的字段名=biao2的字段名;

 

右连接:right join

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

语法:select * from biao1 right join biao2 on biao1的字段名=biao2的字段名;

 

存储过程:

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

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

  • 以DELIMITER开始和结束

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

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

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

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

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

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

相关文章

数字图像处理-形态学图像处理

形态学图像处理 一、基础知识1.1 什么是形态学操作 二、腐蚀与膨胀2.1 腐蚀2.2 膨胀 三、开操作与闭操作3.1 开操作3.2 闭操作3.3 实验对比 四、一些基本的形态学算法4.1边界提取4.2空洞填充4.3 凸壳 一、基础知识 1.1 什么是形态学操作 数字图像处理中的形态学操作是一组用于…

Linux CPU线程绑核

为了加快程序的运行速度和充分利用CPU资源&#xff0c;我们可以人为将不同线程绑定在不同的cup上&#xff0c;例如有两个线程A,B&#xff0c;其中A已经在CPU0上运行&#xff0c;并且CPU0上还有其他的任务&#xff0c;那么我们可以将线程B绑到CPU1上&#xff0c;这样就可以减轻C…

链路追踪Skywalking快速入门

目录 1 Skywalking概述1.1 微服务系统监控三要素1.2 什么是链路追踪1.2.1 链路追踪1.2.2 OpenTracing1、数据模型&#xff1a;2、核心接口语义 1.3 常见APM系统1.4 Skywalking介绍1、SkyWalking 核心功能&#xff1a;2、SkyWalking 特点&#xff1a;3、Skywalking架构图&#x…

Medium: 9 Important Things to Remember for AB Test

There are lots of things that can go wrong [存在隐患] when you try to create AB tests. Goal & Motivation Making it clear helps align the team toward the goal. Hypothesis Your hypothesis should be short and to the point. It should not run into a coup…

直播平台源码开发搭建APP的DASH协议:流媒体技术其中一环

在直播平台源码APP中&#xff0c;有着许许多多、多种多样的功能&#xff0c;比如短视频功能&#xff0c;帮助我们去获取信息&#xff0c;看到全世界用户身边发生的事情或是他们的生活&#xff1b;又比如直播功能&#xff0c;为用户提供了实时的娱乐享受&#xff0c;还让一些用户…

【JavaEE基础学习打卡07】JDBC之应用分层设计浅尝!

目录 前言一、简单说说应用分层二、实体层1.O/R映射2.O/R映射实践三、数据访问层1.DAO层2.DAO层实战总结前言 📜 本系列教程适用于JavaWeb初学者、爱好者,小白白。我们的天赋并不高,可贵在努力,坚持不放弃。坚信量最终引发质变,厚积薄发。 🚀 文中白话居多,尽量以小白…

EVA: Visual Representation Fantasies from BAAI

本文做个简单总结&#xff0c;博主不是做自监督领域的&#xff0c;如果错误&#xff0c;欢迎指正。 链接 Code&#xff1a; Official&#xff1a;baaivision/EVA MMpretrain&#xff1a;open-mmlab/mmpretrain/tree/main/configs/eva02 Paper&#xff1a; EVA01&#xff1a;…

deepfm内容理解

对于CTR问题&#xff0c;被证明的最有效的提升任务表现的策略是特征组合(Feature Interaction)&#xff1b; 两个问题&#xff1a; 如何更好地学习特征组合&#xff0c;进而更加精确地描述数据的特点&#xff1b; 如何更高效的学习特征组合。 DNN局限 &#xff1a;当我们使…

vue-别名路径联想提示的配置

在根路径下&#xff0c;新建 jsconfig.json 文件&#xff0c;即可 在输入 自动联想到src目录。 代码如下&#xff1a; // 别名路径联想提示&#xff1a;输入自动联想 {"compilerOptions":{"baseUrl":"./","paths": {"/*":[…

基于github上go版本的LoraWAN Server安装及使用

一、安装环境 该版本的LoraWAN Server基于Ubuntu 20.04.6 LTS x86_x64 版本安装 当然也可以在Windows环境中进行安装使用&#xff0c;此处只针对测试使用的Linux的环境进行简要说明&#xff1b; 二、Git源码下载及安装 2.1 下载地址 Github上的下载地址如下&#xff1a;GitHub…

stable diffusion实践操作-提示词-整体环境

系列文章目录 stable diffusion实践操作-提示词 文章目录 系列文章目录前言一、提示词汇总1.1 整体环境11.2 整体环境1 二 、总结 前言 本文主要收纳总结了提示词-整体环境。 一、提示词汇总 1.1 整体环境1 画质背景场景画风镜头[最高质量][透明背景][山][轮廓加深][正面视…

从jdk8 升级到jdk17的问题总结

目录 1. java.lang.reflect.InaccessibleObjectException: 2. java.lang.UnsatisfiedLinkError in autosys 3. java.lang.NoClassDefFoundError: Could not initialize class net.sf.jasperreports.engine.util.JRStyledTextParser 4. java.lang.UnsatisfiedLinkError: **…

【AI理论学习】语言模型:从Word Embedding到ELMo

语言模型&#xff1a;从Word Embedding到ELMo ELMo原理Bi-LM总结参考资料 本文主要介绍一种建立在LSTM基础上的ELMo预训练模型。2013年的Word2Vec及2014年的GloVe的工作中&#xff0c;每个词对应一个vector&#xff0c;对于多义词无能为力。ELMo的工作对于此&#xff0c;提出了…

ChartJS使用-环境搭建(vue)

1、介绍 Chartjs简约不简单的JavaScript的图表库。官网https://chart.nodejs.cn/ Chart.js 带有内置的 TypeScript 类型&#xff0c;并与所有流行的 JavaScript 框架 兼容&#xff0c;包括 React 、Vue 、Svelte 和 Angular 。 你可以直接使用 Chart.js 或利用维护良好的封装程…

Ros noetic 机器人坐标记录运动路径和发布 实战教程(B)

前言: 网上记录Path的写入文件看了一下还挺多的,有用yaml作为载体文件,也有用csv文件的路径信息,也有用txt来记录当前生成的路径信息,载体不重要,反正都是记录的方式,本文主要按yaml的方式写入,本文将撰写csv方式的文件写入格式,完成上一篇文章中的留下的存入…

CentOS 7 编译ZooKeeper C客户端

简介 本文主要讲解&#xff1a;Zookeeper C客户端库在Centos 7上的编译&#xff0c;使用的Zookeeper版本为3.4.13。 工具安装 安装ant 和cppunit-devel工具&#xff1a; [rootlocalhost source_code]# yum install -y cppunit-devel 已加载插件&#xff1a;fastestmirror L…

【Java Web】实现帖子点赞功能——基于Redis

点赞 支持对帖子、评论点赞&#xff1b;第一次点赞&#xff0c;第二次点赞取消&#xff1b; 首页显示点赞数量 统计帖子点赞数量&#xff1b; 详情页显示点赞数量 统计点赞数量&#xff1b;显示点赞状态&#xff1b; 1. LikeService定义一些关于点赞的操作 点赞&#xff1a;…

Git上传新项目

第一步&#xff1a;初始化 Git 仓库 首先&#xff0c;打开终端或命令行界面&#xff0c;然后导航到项目目录。运行下面的命令来初始化一个新的 Git 仓库&#xff1a; git init这将创建一个新的 .git 子目录&#xff0c;其中包含了初始化的 Git 仓库。 第二步&#xff1a;添加…

使用Python 创建 AI Voice Cover

这篇文章提供了使用Python文本到语音库和音频处理库逐步创建歌曲的指南。我们一起为机器赋予声音 —— 使用Python制作AI生成的声音。 介绍 您是否曾经想过&#xff0c;如果您最喜欢的歌曲由机器人演唱会是什么样子&#xff1f;随着人工智能和语音合成的最新进展&#xff0c;现…

什么是原生IP?原生IP与住宅IP有何区别?

相信许多做跨境的都会接触到IP代理&#xff0c;比如电商平台、社媒平台、收款平台等等&#xff0c;都会检测IP。那也会经常听到一些词汇&#xff1a;原生IP、住宅IP&#xff0c;这两者之间有什么区别呢&#xff1f;什么业务需要用到呢&#xff1f;接下来带大家具体了解一下。 什…