linux MySQL高阶语句

news2024/12/26 10:44:34

linux MySQL高阶语句

  • 1、MySQL高级语言
    • 1.1order by排序
    • 1.2group by分组
    • 1.3limit前几行
    • 1.4as别名
    • 1.5通配符
    • 1.6子查询
    • 1.7in
    • 1.8not in
    • 1.9exists
  • 2、视图
    • 2.1视图概念
    • 2.2功能
    • 2.3应用场景
    • 2.4视图和表的区别和联系
    • 2.5创建视图
  • 3、null值
    • 3.1null值
    • 3.2null值与空值的区别
    • 3.3验证null和空值
  • 4、连接
    • 4.1连接概念
    • 4.2连接分类
    • 4.3主连接
    • 4.4左连接
    • 3.5右连接
  • 5、总结

1、MySQL高级语言

MySQL高级语句可以用在查询复合语句,可以更好的完成需求,主要采用嵌套和通配符方式。

1.1order by排序

ASC 是按照升序进行排序的,是默认的排序方式,即 ASC 可以省略。SELECT 语句中如果没有指定具体的排序方式,则默认按ASC方式进行排序。
DESC 是按降序方式进 行排列。当然 ORDER BY 前面也可以使用 WHERE 子句对查询结果进一步过滤。

原表:
在这里插入图片描述

默认顺序排序:默认正序排列

在这里插入图片描述

倒叙排列

在这里插入图片描述

条件排序

在这里插入图片描述

双层排序

在这里插入图片描述

条件双层排序

先按照条件找到address为nanjing的,按照id进行正序排列,在按照score正序排列
在这里插入图片描述

简单区间判断:and和or(并且和或)

在这里插入图片描述
在这里插入图片描述

条件嵌套区间

在这里插入图片描述

查询不重复记录

distinct查询不重复字段
在这里插入图片描述

1.2group by分组

计数(COUNT)、 求和(SUM)、求平均数(AVG)、最大值(MAX)、最小值(MIN)

count计数

address属性有7各字段
在这里插入图片描述

count计数分组

按照hobbid重复的分为一组,每组多少个
在这里插入图片描述

条件count计数分组

先筛选出成绩大于50的,在进行分组
在这里插入图片描述

count分组排序

先进行分组,在进行排序
在这里插入图片描述

1.3limit前几行

limti前3行

在这里插入图片描述

显示第三行到第五行

在这里插入图片描述

查询排序后的前三行

在这里插入图片描述

查询排序后三行

在这里插入图片描述

1.4as别名

在 MySQL 查询时,当表的名字比较长或者表内某些字段比较长时,为了方便书写或者 多次使用相同的表,可以给字段列或表设置别名。使用的时候直接使用别名,简洁明了,增强可读性。
不使用as也是可以,默认加as。

打印属性别名的表

在这里插入图片描述

无as别名

在这里插入图片描述

as复制表

同样是没有key属性
在这里插入图片描述

条件判断复制

在这里插入图片描述

1.5通配符

通常通配符都是跟 LIKE 一起使用的,并协同 WHERE 子句共同来完成查询任务。常用的通配符有两个,分别是:
%:百分号表示零个、一个或多个字符 *
_:下划线表示单个字符 .

查询指定开头未知位数

在这里插入图片描述

查询指定位数

查询指定位数l开头,后跟三位
在这里插入图片描述

查询中间字符

在这里插入图片描述

组合使用%_

查询第二位是a的未知位数
在这里插入图片描述

1.6子查询

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

子查询当hobbid大于2

在这里插入图片描述

子查询score大于50

在这里插入图片描述

查询name从student查,id从a表查

在这里插入图片描述

先查数据作为表

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.7in

查询成绩大于50的

在这里插入图片描述

添加数据

在这里插入图片描述
在这里插入图片描述

修改数据

在这里插入图片描述

大批量修改数据

在这里插入图片描述
id大于3的全部修改
在这里插入图片描述

删除数据

在这里插入图片描述
id大于3的全部删除
在这里插入图片描述

1.8not in

查询id不是1的数据

在这里插入图片描述

添加数据

在这里插入图片描述
在这里插入图片描述

更新数据

将id不为1的成绩改为99

在这里插入图片描述
在这里插入图片描述

删除数据

删除除id为1的数据
在这里插入图片描述

1.9exists

这个关键字在子查询时,主要用于判断子查询的结果集是否为空。如果不为空, 则返回 TRUE;反之,则返回 FALSE

判断id是否有大于1的,有返回所有数据,统计个数

在这里插入图片描述

判断id没有小于1的,返回空表

在这里插入图片描述

2、视图

2.1视图概念

数据库中的虚拟表,这张虚拟表中不包含真实数据,只是做了真实数据的映射。
视图可以理解为镜花水月/倒影,动态保存结果集(数据)
视图(view)是在基本表之上建立的表,它的结构(即所定义的列)和内容(即所有数据行)都来自基本表,它依据基本表存在而存在。一个视图可以对应一个基本表,也可以对应多个基本表。
视图是基本表的抽象和在逻辑意义上建立的新关系。

2.2功能

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

2.3应用场景

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

2.4视图和表的区别和联系

①、视图是已经编译好的sql语句。而表不是
②、视图没有实际的物理记录。而表有show table status\G
③、表只用物理空间而视图不占用物理空间,视图只是逻辑概念的存在,表可以及时对它进行修改,但视图只能有创建的语句来修改
④、视图是查看数据表的一种方法,可以查询数据表中某些字段构成的数据,只是一些SQL语句的集合。从安全的角度说,视图可以不给用户接触数据表,从而不知道表结构。
⑤、表属于全局模式中的表,是实表;视图属于局部模式的表,是虚表。
⑥、视图的建立和删除只影响视图本身,不影响对应的基本表。(但是更新视图数据,是会影响到基本表的)

2.5创建视图

创建视图

在这里插入图片描述

查看表结构

在这里插入图片描述

查看表状态

在这里插入图片描述
在这里插入图片描述

查询视图

在这里插入图片描述

多表创建视图

从多张表提取数据,创建视图
在这里插入图片描述

修改原表数据

视图数据会变
修改原表数据
在这里插入图片描述
视图数据也变化
在这里插入图片描述

修改视图数据

在这里插入图片描述
原表也发生变化
在这里插入图片描述

3、null值

3.1null值

在 SQL 语句使用过程中,经常会碰到 NULL 这几个字符。通常使用 NULL 来表示缺失 的值,也就是在表中该字段是没有值的。如果在创建表时,限制某些字段不为空,则可以使用 NOT NULL 关键字,不使用则默认可以为空。在向表内插入记录或者更新记录时,如果该字段没有 NOT NULL 并且没有值,这时候新记录的该字段将被保存为 NULL。需要注意 的是,NULL 值与数字 0 或者空白(spaces)的字段是不同的,值为 NULL 的字段是没有 值的。在 SQL 语句中,使用 IS NULL 可以判断表内的某个字段是不是 NULL 值,相反的用 IS NOT NULL 可以判断不是 NULL 值。

3.2null值与空值的区别

空值长度为0,不占空间,NULL值的长度为null,占用空间
 is null无法判断空值
 空值使用"=“或者”<>"来处理(!=)
 count()计算时,NULL会忽略,空值会加入计算

3.3验证null和空值

先查看表结构可以为null

在这里插入图片描述
可以看到null不被计算
在这里插入图片描述

添加空值

在这里插入图片描述
会被计算
在这里插入图片描述
可以查询到null值数据
在这里插入图片描述

查询不为空的数据

在这里插入图片描述

4、连接

4.1连接概念

MySQL 的连接查询,通常都是将来自两个或多个表的记录行结合起来,基于这些表之间的 共同字段,进行数据的拼接。首先,要确定一个主表作为结果集,然后将其他表的行有选择 性的连接到选定的主表结果集上。

4.2连接分类

(1)内连接:显示相同内容
(2)左连接:显示左表和相同部分
(3)右连接:显示右表和相同部分

4.3主连接

使用inner join连接,一般在from之后
显示两表name相同部分数据
在这里插入图片描述

4.4左连接

左连接也可以被称为左外连接,在 FROM 子句中使用 LEFT JOIN 或者 LEFT OUTER JOIN 关键字来表示。左连接以左侧表为基础表,接收左表的所有行,并用这些行与右侧参 考表中的记录进行匹配,也就是说匹配左表中的所有行以及右表中符合条件的行。
在这里插入图片描述
左连接中左表的记录将会全部表示出来,而右表只会显示符合搜索条件的记录,右表记录不足的地方均为 NULL。

3.5右连接

右连接也被称为右外连接,在 FROM 子句中使用 RIGHT JOIN 或者 RIGHT OUTER JOIN 关键字来表示。右连接跟左连接正好相反,它是以右表为基础表,用于接收右表中的所有行,并用这些记录与左表中的行进行匹配
在这里插入图片描述
只显示右表所有数据和相同数据

5、总结

MySQL数据库高级语句可以完成排序,分组,通配符,子程序,视图。可以更好的完成管理数据库需求。

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

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

相关文章

MYSQL的CRUD语句(含c++代码)

一.MySQl表的创建与删除 创建语句与删除语句 注意&#xff1a; 主键的数据类型&#xff0c;不可以是变长度类型需要()限制长度&#xff0c;表名字需要使用符号来包围。 二.MySQl数据插入 三.MySQl数据删除 四.MySQl数据更新 使用语句 SET SQL_SAFE_UPDATES 0; show variabl…

Makefile核心(第一节)

文章目录 前言Makefile核心举例讲解结束 前言 曾以为学习过程是痛苦的&#xff0c;其实真正静下心来是美好的&#xff0c;虽然很枯燥&#xff0c;但生活就是这样&#xff0c;不学习还能干吗呢…… ——张顺 makefile是相当重要的&#xff0c;只要你要写大工程&#xff0c;就必须…

十天学完基础数据结构-第三天(数组(Array))

数组的基本概念 数组是一种线性数据结构&#xff0c;用于存储相同数据类型的元素。它具有以下基本概念&#xff1a; 元素&#xff1a;数组中的每个数据项称为元素&#xff0c;可以是整数、浮点数、字符等。 索引&#xff1a;每个元素在数组中都有一个唯一的位置&#xff0c;称…

JavaScript系列从入门到精通系列第十四篇:JavaScript中函数的简介以及函数的声明方式以及函数的调用

文章目录 一&#xff1a;函数的简介 1&#xff1a;概念和简介 2&#xff1a;创建一个函数对象 3&#xff1a;调用函数对象 4&#xff1a;函数对象的普通功能 5&#xff1a;使用函数声明来创建一个函数对象 6&#xff1a;使用函数声明创建一个匿名函数 一&#xff1a;函…

2023最新使用微信小程序完成一键授权登录

前言&#xff1a; 使用开发工具&#xff1a;小程序。在我这一篇已经详细介绍了小程序的安装介绍http://t.csdnimg.cn/IEVc0今天我给大家带来的是微信的一键授权登录&#xff0c;保存用户信息&#xff0c;退出的功能&#xff01;&#xff01;&#xff01;希望看完了这篇博客能够…

【python海洋专题十】Cartopy画特定区域的地形等深线图

【python海洋专题十】Cartopy画特定区域的地形等深线图 海洋与大气科学 前几期可以认为关于平面的元素画法&#x1f197;了 本期关于特定区域平面画法 全球区域水深图 本期内容 画某元素特定区域的平面图&#xff1a;我有两个方法&#xff1a; 第一个&#xff1a;裁剪nc文…

嵌入式学习笔记(45) NandFlash的接口

9.1.1 Nand的型号与命名 (1)K9F2G08&#xff1a;K9F表示是三星公司的NandFlash系列。2G表示Nand的大小是2Gbit(256MB)。08表示Nand是8位的&#xff08;数据线有8根&#xff09;。 (2)Nand命名中可以看出&#xff0c;厂家、系列型号、容量大小、数据位数 9.1.2 Nand的数据位 …

机器视觉工程师,努力方向错了,白费

努力方向错了&#xff0c;白费。 在这个知识经济&#xff0c;知识付费&#xff0c;知识大V横行的时代&#xff0c;知识似乎遍地都是。但你有没有想过&#xff0c;微博里的段子是不是知识&#xff1f;微信里的爆款文章是不是知识&#xff1f;得到App里的音频是不是知识&#xf…

OpenGLES:绘制一个混色旋转的3D球体

一.概述 前面几篇博文讲解了如何使用OpenGLES实现不同的3D图形 本篇博文讲解怎样实现3D世界的代表图形&#xff1a;一个混色旋转的3D球体 二.球体解析 2.1 极限正多面体 如果有学习过我前几篇3D图形绘制的博文&#xff0c;就知道要想绘制一个3D图形&#xff0c;首先要做的…

基于Java的校园二手书交易平台设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序&#xff08;小蔡coding&#xff09;有保障的售后福利 代码参考源码获取 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作…

挑战自己,编程你的五子棋:Python+Pygame实践经验分享

引言 五子棋&#xff0c;古老而经典&#xff0c;是一种两人对抗的策略棋类游戏。想要体验制作游戏的乐趣吗&#xff1f;本文将详细指导你如何使用Python语言和Pygame库&#xff0c;一步步打造自己的五子棋游戏&#xff01; 1. 开始之前&#xff1a;重要准备 首先&#xff0…

使用DNS查询Web服务器IP地址

浏览器并不具备访问网络的功能&#xff0c;其最终是通过操作系统实现的&#xff0c;委托操作系统访问服务器时提供的并不是浏览器里面输入的域名而是ip地址&#xff0c;因此第一步需要将域名转换为对应的ip地址 域名&#xff1a;www.baidu.com ip地址是一串数字 tcp/ip的网络结…

项目进展(六)-继续学习32位ADC芯片ADS1285

一、数据手册学习 1.1时序图 SPI时序图&#xff0c;这是很重要的一个地方&#xff0c;一定要在代码中将SPI配置成对应的模式。 先放一堆截图在这吧&#xff0c;一些引脚的功能及特性还未看到&#xff0c;等具体了解之后再详细介绍下面几张截图的时序&#xff1a; 1.2 内…

大模型RLHF算法更新换代,DeepMind提出自训练离线强化学习框架ReST

文章链接&#xff1a; https://arxiv.org/abs/2308.08998 大模型&#xff08;LLMs&#xff09;爆火的背后&#xff0c;离不开多种不同基础算法技术的支撑&#xff0c;例如基础语言架构Transformer、自回归语言建模、提示学习和指示学习等等。这些技术造就了像GPT-3、PaLM等基座…

问答雕虫1

问题&#xff1a; 现在有如下表 假设按时间顺序&#xff0c;记录中连续出现0.2 0.3 0.5 0.7四条记录记为一次有效数据组&#xff0c;统计一段时间范围内&#xff0c;有效数据组出现的次数&#xff0c;最终计算有效数据组在整个时间范围内的记录的占比。用mysql语句或者函数如何…

uniapp uni.showToast 一闪而过的问题

问题&#xff1a;在页面跳转uni.navigateBack()等操作的前或后&#xff0c;执行uni.showToast&#xff0c;即使代码中设置2000ms的显示时间&#xff0c;也会一闪而过。 解决&#xff1a;用setTimeout延后navigateBack的执行。

css自学框架之选项卡

这一节我们学习切换选项卡&#xff0c;两种切换方式&#xff0c;一种是单击切换选项&#xff0c;一种是鼠标滑动切换&#xff0c;通过参数来控制&#xff0c;切换方法。 一、参数 属性默认值描述tabBar.myth-tab-header span鼠标触发区域tabCon.myth-tab-content主体区域cla…

C语言动态内存管理

&#x1f435;本篇文章将会对动态内存管理相关知识进行讲解 1. 为什么要存在动态内存管理❓ 目前我们掌握了两种开辟内存的方式&#xff0c;分别为&#xff1a; int a 10;//存放一个值 int arr[] { 1,2,3,4,5,6,7,8,9,10 };//存放一组数 这两种内存开辟方式都是静态的&#…

2023年山东省安全员C证证考试题库及山东省安全员C证试题解析

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2023年山东省安全员C证证考试题库及山东省安全员C证试题解析是安全生产模拟考试一点通结合&#xff08;安监局&#xff09;特种作业人员操作证考试大纲和&#xff08;质检局&#xff09;特种设备作业人员上岗证考试大…

人脸识别:FaceSDK 8.1 Crack

FaceSDK 使 Microsoft Visual C、C#、Objective C、Swift、Java、VB、Delphi 和 Python 开发人员能够为 Web、Windows、Linux、macOS、iOS 和 Android 构建具有人脸识别和基于人脸的 32 位和 64 位应用程序生物特征识别功能 FaceSDK 用于数百个应用程序&#xff0c;用于通过网络…