mysql高阶语句:

mysql高阶语句:

高级语法的查询语句:

select * from  表名   where limitsdistinct   去重查询like       模糊查询

排序语法:关键字排序

升序和降序

默认的排序方式就是升序

升序:ASC 配合order by语法

select * from 表名 order by 列名 asc; 

降序:DESC 配合order by语法

select * from 表名 order by 列名 desc;

以多个关键字进行排序:

select * from info order by hobbid desc,id;

*以多个列作为排序关键字,只有第一个参数有相同的值,第二个字段才有意义。

where条件的筛选功能(比较符号)

区间判断:

and or

select * from info WHERE score > 70 and score <=90;
select * from info where score > 70 or score <=60;

嵌套多条件:

select * from info where score > 70 or (score > 0 and score < 60);

分组查询,sql查询的结果进行分过,使用group by 语句来实现。

group by 语句配合聚合函数一起。

聚合函数的类型:

统计 count

求和 sum

求平均数 avg

最大值 max

最小值 min

select count(name),hobbid from info group by hobbid;

在聚合函数分组语句中,非聚合函数列不一定需要group by,但group by一定有非聚合函数列。

select count(name),hobbid,score from info where score >=80 group by hobbid;
select count(name),hobbid,score from info  group by hobbid having score >=80;

以兴趣这一列作为分组,计算成绩的平均分,统计的结果筛选出分组的平均成绩大于等于60分。

select avg(score),hobbid from info group by hobbid having avg(score) >=60;

统计姓名,以兴趣和分数作为分组,统计出成绩大于80的,然后按照降序,对统计姓名的列进行排序。

select count(name),hobbid,score from info  group by hobbid,score  having score >80 order by name desc;

limit   1,3         #1是位置偏移量(可选参数),如果不设定位置偏移量,默认就从第一行开始,默认的值 0 

使用limit和降序排列,只显示最后三行

select * from info order by id desc limit 3;

表和列的别名:因为在实际工作中,表的名字和列的名字可能会很长,书写起来不太方便,多次声明表和列时,完整的展示太复杂,设置别名可以使书写简化了

可读性增加了,简介明了。

对列名起别名:

select name as 姓名,score as 成绩 from info;
select name 姓名,score 成绩 from info;
#as是可以不加的

对表名起别名:

select i.name 姓名,i.score 成绩 from info i;
select i.name 姓名,i.score 成绩 from info as i;

对表进行复制:

create table test as select * from info;
create table test1 as select * from info where score >= 60;

通配符:

like 模糊查询

%:表示零个,一个或者多个字符 *

_ :表示单个字符。

select * from info where address like 's%';
select * from info where address like 's_';

子查询:(内查询,嵌套查询)

select语句当中又嵌套了一个select

嵌套的select才是子查询,先执行子查询的语句,外部的select再根据子条件的结果进行过滤查找。

子查询可以是多个表,也可以是同一张表。

关联语句 in

select id,name,score from info where id in ( select id from info where score >=80);
select id,name,score from info where id in ( select id from test1 where score >=80);
update info set score = 80 where id in (select id from test where id = 4 );

not in

select id,name,score from info where id not in ( select id from info where score >=80);
select id,name,score from info where id not in ( select id from test1 where score >=80);

exists 判断子查询的结果是否为空,不为空返回true,空返回false

select count(*) from info where exists (select id from test1 where score >80);
#这里不是in和not in 会传给主表。
这里是判断条件,存在才执行,不存在,结果为空则不执行。

查询分数,如果分数小于50的则统计info的字段数。

select count(*) from info where score in (select score from info where score < 50);

在子查询当中多表查询和别名:

info表和test表,这两张表id部分相同。然后根据id相同的部分,查询info表的id的值。

select * from info where id in (select id from test id);

info表和test表,这两张表id部分相同。然后根据id相同的部分,查询info表的id的值,查询出info表成绩大于80的数据。

select id,score from info where score > 80 and id in (select id from test id);

查询info表的平均成绩。

select avg(score) from info where score > 80 and id  in (select id from test id);

mysql的视图:

视图是一个虚拟表,表的数据基于查询的结果生成。

视图可以简化复杂的查询,隐藏复杂的细节。访问数据更安全。

视图表是多表数据的结合体。

视图和表之间的区别:

1、存储方式,表是实际的数据行,视图不存储数据,仅仅是查询结果的虚拟表

2、数据更新,更新表可以直接更新视图表的数据。

3、占用空间,表实际占用空间,视图不占用空间,只是一个动态结果的展示。

视图表的数据可能是一张表的部分查询数据,也可能是多个表的一部分查询数据。

查询当前数据库中的视图表:

show full tables in xy102 where table_type like 'VIEW';

创建视图表

create view test2 as select * from info where score >= 80;

查看视图表中的数据

select * from test2;

创建一张视图表,视图表包含 id name address ,从info和test当中的name值相同的部分创建。

create view test3 as select id,name,address from info where name in (select name from test name);
select * from test3;

视图表就是查询语句的别名,有了视图表可以简化查询的语句。

表的权限是不一样的,库的权限是有控制的。所以查询视图表的权限相对低

既可以保证原表的数据安全,也简化了查询的过程。

删除视图表:

drop view 视图表名;

连接查询:

两张表或者多个表的记录结合起来,基于这些表共同的字段,进行数据的拼接。

首选,要确定一个主表作为结果集,然后把其他表的行有选择性的选定到主表的结果上。

内连接:两张表或者多张表之间符合条件的数据记录的集合。

select a.a_id,a.a_name from test1 a inner join test2 b on a.a_name=b.b_name;

取两个表或者多个表之间的交集。

左连接:左外连接,left jion left outer join

左连接以左表为基础,接收左表的所有行,以左表的记录和右表的记录进行匹配。

匹配左表的所有,以及右表中符合条件的行,不符合的显示null。

select * from test1 left join test2 on a_name=b_name; 

以比较条件为标准,展示结果。两个表相同的部分展示出来,做拼接。不同的结果显示null。

右连接:右外连接,right jion right outer join

左连接以左表为基础,接收左表的所有行,以左表的记录和右表的记录进行匹配。

匹配左表的所有,以及右表中符合条件的行,不符合的显示null。

select * from test1 RIGHT join test2 on a_name=b_name; 

以比较条件为标准,展示结果。两个表相同的部分展示出来,做拼接。不同的结果显示null。

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

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

相关文章

Python爬虫掌握-----4实战(爬取视频)

我们使用爬虫时难免会遇到爬取视频的情况&#xff0c;其实爬取图片视频&#xff0c;内容都是一样的。这里以b站视频为例。 一、开始 1.找到url&#xff0c;请求url 防盗链&#xff0c;需要写在UA伪装中 正常的三步&#xff1a; 1.url 2.requests请求 3.UA伪装 import req…

Zabbix基本介绍

文章目录 一、监控为什么需要监控需要监控什么Zabbix使用场景及系统概述zabbix介绍Zabbix功能Zabbix架构Zabbix术语 二、部署安装编译安装 一、监控 为什么需要监控 监控功能 在需要的时刻&#xff0c;提前预警即将出问题,避免故障发生。实时监控系统和业务,当出问题之后&am…

数据库安全:MySQL安全配置,MySQL安全基线检查加固

「作者简介」&#xff1a;冬奥会网络安全中国代表队&#xff0c;CSDN Top100&#xff0c;就职奇安信多年&#xff0c;以实战工作为基础著作 《网络安全自学教程》&#xff0c;适合基础薄弱的同学系统化的学习网络安全&#xff0c;用最短的时间掌握最核心的技术。 这一章节我们需…

配置Linux客户端免密登录服务端Linux主机的root用户

1.安装shh服务 首先安装shh服务&#xff0c;redhat端通过下面代码进行安装服务 sudo yum install sshd sudo yum install openssh-server 2.生成密钥&#xff08;公钥&#xff0b;私钥&#xff09; 执行ssh-keygen命令&#xff0c;会生成id_rsa&#xff08;私钥&#xff0…

并发编程--synchronized介绍

1.初步认识synchronized 先来看下利用 synchronized 实现 同步的基 础 &#xff1a; Java 中的每一个 对 象都可以作 为锁 。具体表 现 为 以下 3 种形式。 &#xff1a; 对于普通同步方法&#xff0c; 锁 是当前 实 例 对 象。 对于静 态 同步方法&#xff0c; 锁 是当前 类…

python-首字母移位(PythonTip)

[题目描述] 编写一个程序&#xff0c;将句子中每个单词的首字母移位到下一个单词。定义函数shift_first_letter()&#xff0c;参数为sentence&#xff08;字符串&#xff09;。在函数内&#xff0c;将句子中每个单词的首字母移位到下一个单词。最后一个单词的首字母移位到句子的…

SQL 注入漏洞详解 - Union 注入

1)漏洞简介 SQL 注入简介 SQL 注入 即是指 Web 应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在 Web 应用程序中事先定义好的查询语句的结尾上添加额外的 SQL 语句,在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查询,…

记录|C#+winform创建扁平化风格界面

本项目的C#内容是自己跟做的&#xff0c;自己做的内容已经打包&#xff0c;可以通过自己跟做写的Dashboard界面&#xff0c;C#下的winform模式下载获得&#xff0c;但是需要花费3个积分 目录 前言一、左边设置和步骤界面步骤Step1.Step2.Step3.Step4Step5 二、右边属性和步骤属…

【BUG】已解决:ModuleNotFoundError: No module named ‘requests‘

ModuleNotFoundError: No module named ‘requests‘ 目录 ModuleNotFoundError: No module named ‘requests‘ 【常见模块错误】 【解决方案】 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我的主页&#xff0c;我是博主英杰&#xff0c;211科班出身&a…

Python怎样读取URL生成PDF

1. 安装依赖的exe 需要在这个网址&#xff0c;安装一个exe包&#xff0c;地址&#xff1a;https://wkhtmltopdf.org/ 进入网址后&#xff0c;点这个位置&#xff1a; 选择一个你的操作系统的下载链接&#xff1a; 安装后的exe文件&#xff1a; C:\Program Files\wkhtmltopdf…

记录解决springboot项目上传图片到本地,在html里不能回显的问题

项目场景&#xff1a; 项目场景&#xff1a;在我的博客系统里&#xff1a;有个相册模块&#xff1a;需要把图片上传到项目里&#xff0c;在html页面上显示 解决方案 1.建一个文件夹 例如在windows系统下。可以在项目根目录下建个photos文件夹&#xff0c;把上传的图片文件…

华为OD2024D卷机试题汇总,含D量50%+,按算法分类刷题,事半功倍

目录 专栏导读华为OD机试算法题太多了&#xff0c;知识点繁杂&#xff0c;如何刷题更有效率呢&#xff1f; 一、逻辑分析二、数据结构1、线性表① 数组② 双指针 2、map与list3、队列4、链表5、栈6、滑动窗口7、二叉树8、并查集9、矩阵 三、算法1、基础算法① 贪心思维② 二分查…

SAP 贷项销售订单简介

SAP 贷项销售订单简介 1. 什么是销售贷方销售订单?2. 创建销售贷方销售订单的场景3. 销售贷方销售订单的创建流程直接创建发票---VF01将会计凭证过账到会计核算查看贷项销售订单凭证流查看客户明细---FBL5N贷项后台配置SAP销售贷方销售订单(Sales Credit Memo Request)是销售…

Windows定时任务实现关闭和开启声音

目录 1. 下载并放置 nircmd.exe1.1 下载 NirCmd&#xff1a;1.2 放置 nircmd.exe&#xff1a; 2. 定时关闭声音2.1 打开任务计划程序&#xff1a;2.2 创建基本任务&#xff1a;2.3 设置任务名称和描述&#xff1a;2.4 触发器&#xff1a;2.5 操作&#xff1a;2.6 设置程序或脚本…

面试官问:Django、Flask、FastAPI,你选哪个?为什么?

如果你是python Web方向的开发工程师&#xff0c;那么在面试中&#xff0c;会经常遇到面试官问这个问题&#xff1a; “在Python的三个流行Web框架&#xff1a;Django、Flask和FastAPI&#xff0c;说说它们的异同&#xff0c;以及你是怎么选择合适的框架&#xff1f;” 异同对…

AndroidStudio 编辑xml布局文件卡死问题解决

之前项目编写的都是正常&#xff0c;升级AndroidStudio后编辑布局文件就卡死&#xff0c;还以为是AndroidStudio文件。 其实不然&#xff0c;我给整个项目增加了版权声明。所以全部跟新后&#xff0c;布局文件也增加了版权声明。估计AndroidStudio在 解析布局文件时候因为有版…

【目标检测】Anaconda+PyTorch(GPU)+PyCharm(Yolo5)配置

前言 本文主要介绍在windows系统上的Anaconda、PyTorch、PyCharm、Yolov5关键步骤安装&#xff0c;为使用yolo所需的环境配置完善。同时也算是记录下我的配置流程&#xff0c;为以后用到的时候能笔记查阅。 Anaconda 软件安装 Anaconda官网&#xff1a;https://www.anaconda…

ubuntu源码安装Odoo

序言:时间是我们最宝贵的财富,珍惜手上的每个时分 Odoo具有非常多的安装方式&#xff0c;除了我最爱用的 apt-get install&#xff0c;我们还可以使用git拉取Odoo源码进行安装。 本次示例于ubuntu20.04 Desktop上进行操作&#xff0c;理论上在ubuntu14.04之后都可以用此操作。 …

OpenWrt 配置 Tailscale 内网穿透

前言 Openwrt 安装 zerotier 内网穿透. Tailscale 在 OpenWrt 下配置教程参考 GXNAS 博客 的 OpenWrt安装Tailscale设置内网穿透科学出国外网互访局域网设备。啥都不会难搞 的 【傻呱呱】OpenWrt安装Tailscale。阿髙 的 openwrt设置开机自启 tailscale为例。 Tailscale 安…

【算法】一致性哈希

一、引言 在分布式系统中&#xff0c;数据存储和访问的均匀性、高可用性以及可扩展性一直是核心问题。一致性哈希算法&#xff08;Consistent Hashing&#xff09;是一种分布式算法&#xff0c;因其出色的分布式数据存储特性&#xff0c;被广泛应用于缓存、负载均衡、数据库分片…