网络安全 Day24-select高级用法和多表连接

select高级用法和多表连接

  • 1. select 多子句单表高级实践
    • 1.1 select 多子句高级语法
    • 1.2 聚合函数
    • 1.3 group by 实践
    • 1.4 having 筛选
    • 1.5 order by 排序
    • 1.6 limit
  • 2. 多表连接

1. select 多子句单表高级实践

1.1 select 多子句高级语法

  1. where 和 having 区别是后者是分组后进行排名
  2. select 语法: select <字段1, 字段2, ...> from <表名> [where 条件]
  3. 其他语句
    1. group by 分组条件: 分组对指定列分组
    2. having 条件: 分组后条件判断或过滤
    3. order {col_name | expr | position} [ASC | DESC]: 排序ASC升序, DESC降序
    4. LIMIT {[offset,] row_count | row_count OFFSET offset}: 限制结果集数量

1.2 聚合函数

  1. 什么是聚合函数: 聚合函数是group by 的前提条件

  2. 常用聚合函数

    序号聚合函数用处
    1count()返回指定组中数据的数量, 括号内加列名
    2sum()返回指定组中数据之和, 只能用于数字列
    3avg()返回指定组中的平均值
    4max()返回指定数据的最大值
    5min()返回指定数据的最小值
    6group_concat()返回指定的数据, 按逗号分割为一行

1.3 group by 实践

  • 查看表结构
    MariaDB [world]> desc city;
    +-------------+----------+------+-----+---------+----------------+
    | Field       | Type     | Null | Key | Default | Extra          |
    +-------------+----------+------+-----+---------+----------------+
    | ID          | int(11)  | NO   | PRI | NULL    | auto_increment |
    | Name        | char(35) | NO   |     |         |                |
    | CountryCode | char(3)  | NO   | MUL |         |                |
    | District    | char(20) | NO   |     |         |                |
    | Population  | int(11)  | NO   |     | 0       |                |
    +-------------+----------+------+-----+---------+----------------+
    
  • 统计每个国家的总数
    • 错误
      select countrycode,sum(population) 
      from city;
      
    • 正确
      select countrycode,sum(population) 
      from city 
      group by countrycode;
      
  • 统计中国每个省的城市个数
    SELECT District,COUNT(ID)
    	FROM city 
    	WHERE CountryCode='chn'
    	GROUP BY District;
    
  • 统计中国每个省的人口数
    SELECT District,SUM(Population)
    	FROM city 
    	WHERE CountryCode='chn'
    	GROUP BY District;
    

1.4 having 筛选

  • 用途: 在group by 之后进行筛选
  • 例子
    • 统计中国每个省的城市个数以及城市列表,并把超过十个城市的输出
      SELECT district,COUNT(*),GROUP_CONCAT(NAME) 
        FROM city 
        WHERE countrycode='CHN' GROUP BY district 
        having count(*)>10;
      

1.5 order by 排序

  • 查询中国城市人口并按人口数排序输出
    SELECT NAME,Population
    	FROM city 
    	WHERE CountryCode= 'CHN'
    	ORDER BY Population DESC;
    
  • 统计中国每个省的总人口,过滤输出总人口超过1000w,从大到小排序输出
    SELECT District,SUM(Population)
    	FROM city 
    	WHERE CountryCode= 'CHN'
    	GROUP BY District
    	HAVING SUM(Population)>10000000
    	ORDER BY SUM(Population) DESC;
    

1.6 limit

  • 作用与语法: 用于显示指定数据行数, 一般用于order by排序后, 例如选择top3 或者倒数前3
  • 例子
    • 显示前两行: limit 2
    • 显示3-6行: LIMIT 2,5

2. 多表连接

  • 什么是多表连接: 将多张表用一个相同字段拼接成一张表
  • 连接的分类
    在这里插入图片描述
  • 语法: select 字段1,字段2 from 表1 join 表2 on(注意此时的字段表示方法都应该是: 表.字段)
  • 练习请参考: https://www.cnblogs.com/oldboy666/p/15637461.html
  • 例子
    • 查询oldboy老师教的学生名
      SELECT teacher.tname,GROUP_CONCAT(student.sname)
      FROM teacher
      JOIN course
      ON teacher.tno=course.tno
      JOIN sc 
      ON course.cno=sc.cno
      JOIN student
      ON sc.sno=student.sno
      WHERE teacher.tname='oldboy'
      GROUP BY teacher.tno;
      
    • 查询oldboy所教课程的平均分数
      SELECT teacher.tname,AVG(sc.score) 
      FROM teacher
      JOIN course
      ON teacher.tno=course.tno
      JOIN sc 
      ON course.cno=sc.cno
      WHERE teacher.tname='oldboy'
      GROUP BY teacher.tno;
      
    • 查询oldboy老师教的学生名
      SELECT teacher.tname,GROUP_CONCAT(student.sname)
      FROM teacher
      JOIN course
      ON teacher.tno=course.tno
      JOIN sc 
      ON course.cno=sc.cno
      JOIN student
      ON sc.sno=student.sno
      WHERE teacher.tname='oldboy'
      GROUP BY teacher.tno;
      

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

JAVASE---类和对象

1. 面向对象的初步认知 1.1 什么是面向对象 Java是一门纯面向对象的语言(Object Oriented Program&#xff0c;简称OOP)&#xff0c;在面向对象的世界里&#xff0c;一切皆为对象。面向对象是解决问题的一种思想&#xff0c;主要依靠对象之间的交互完成一件事情。用面向对象的…

测试开源C#人脸识别模块ViewFaceCore(5:质量检测和眼睛状态检测)

ViewFaceCore模块中的FaceQuality支持预测人脸质量&#xff0c;最初以为是预测人体体重&#xff0c;实际测试过程中才发现是评估人脸图片质量&#xff0c;主要调用Detect函数执行图片质量检测操作&#xff0c;其函数原型如下所示&#xff1a; //// 摘要:// 人脸质量评估///…

科普 | OSI模型

本文简要地介绍 OSI 模型 1’ 2’ 3。 更新&#xff1a;2023 / 7 / 23 科普 | OSI模型 术语节点链路协议网络拓扑 概念作用结构应用层表示层会话层传输层网络层数据链路层物理层 数据如何流动OSI 和TCP/IP 的对应关系和协议参考链接 术语 节点 节点&#xff08; Node &#…

canvas实现图片平移,缩放的例子

最近有个水印预览的功能&#xff0c;需要用到canvas 绘制&#xff0c;canvas用的不是很熟&#xff0c;配合chatAI 完成功能。 效果如下 代码如下 原先配置是响应式的&#xff0c;提出来了就不显示操作了&#xff0c;模拟值都写死的 界面给大家参考阅读。 <!DOCTYPE html…

element-tree-line el-tree 添加结构线 添加虚线

概览&#xff1a;给element组件添加上虚线&#xff0c;通过使用插件element-tree-line 参考连接&#xff1a; 参考别人的博客 安装插件&#xff1a; # npm npm install element-tree-line -S # yarn yarn add element-tree-line -S main.js全局注册引入插件&#xff1a; imp…

PCL点云处理之最小二乘空间直线拟合(3D) (二百零二)

PCL点云处理之最小二乘空间直线拟合(3D) (二百零二) 一、算法简介二、实现代码三、效果展示一、算法简介 对于空间中的这样一组点:大致呈直线分布,散乱分布在直线左右, 我们可采用最小二乘方法拟合直线,更进一步地,可以通过点到直线的投影,最终得到一组严格呈直线分布…

气象名词解释

文章目录 SAMPSAAMO SAM SAM(Southern Annualr Mode) 南半球环状模&#xff0c;是南半球大气环流和气候变异的一种重要现象。具有如下特点&#xff1a; 主要特点&#xff1a; 赤道附近环流&#xff1a;在 SAM 正相位期间&#xff0c;赤道附近的环流增强&#xff0c;称为正 SA…

使用多数据源dynamic-datasource-spring-boot-starter遇到的问题记录

记录使用多数据源dynamic-datasource-spring-boot-starter遇到的问题&#xff1a; 1、工程启动失败 缺少clickhouse连接驱动&#xff0c;引入对应的maven依赖 <!--ck连接驱动--><dependency><groupId>ru.yandex.clickhouse</groupId><artifactId>…

vue3搭建Arco design UI框架

技术&#xff1a;Vue3.2.40 UI框架&#xff1a;Arco design 2.44.7 需要安装:yarn 1.22.19 和npm 8.19.4 1.第一步安装本地全局arco脚手架 管理员运行CMD npm i -g arco-cli安装成功后如下&#xff1a; 2.第二步在需要存放项目的文件夹拉取项目 我这里把项目存放在 D:\W…

【Android】APP网络优化学习笔记

网络优化原因 进行网络优化对于移动应用程序而言非常重要&#xff0c;原因如下&#xff1a; 用户体验&#xff1a; 网络连接是移动应用程序的核心功能之一。通过进行网络优化&#xff0c;可以提高应用的加载速度和响应速度&#xff0c;减少用户等待时间&#xff0c;提供更流…

学习笔记|大模型优质Prompt开发与应用课(二)|第四节:大模型帮你写代码,小白也能做程序

文章目录 01软件开发产业趋势与技术革新软件开发产业趋势与技术革新技术性人才很受欢迎软件开发产业趋势与技术革新技术门槛越来越低 02 大模型驱动的软件开发需求分析prompt 产品设计开发和测试prompt输出回复promptpromptprompt回复 发布和部署promptprompt 维护和更新prompt…

BES2700 SDK绝对时间获取方法

1 代码 2 实验 log 需要换算下

垃圾焚烧设备PLC数据采集远程监控系统解决方案

PLC可以应用于各种污染废物处理设备的自动化控制&#xff0c;如污水处理、垃圾焚烧、空气处理等。例如&#xff0c;通过对垃圾焚烧PLC设备的数据采集&#xff0c;可以实现对垃圾焚烧的温度、时间、氧气流量等数据的远程监控和实时预警&#xff0c;有效提高垃圾焚烧效率和环保效…

最全的3D动画软件介绍来了!良心总结9款3D动画制作必备软件

现在&#xff0c;市面上流行着的3D动画软件如此之多&#xff0c;以至于很难敲定到底哪一款更适合自己或自己的团队。本篇文章带来了一些热门的、被视为行业标准的3D动画软件的介绍&#xff0c;帮助您更好地做出选择。 不仅如此&#xff0c;您还能从文章中了解到在数字内容创建…

day44-Custom Range Slider(自定义范围滑块)

50 天学习 50 个项目 - HTMLCSS and JavaScript day44-Custom Range Slider&#xff08;自定义范围滑块&#xff09; 效果 index.html <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewp…

从 0 到 1!得物如何打造通用大模型训练和推理平台

1.背景 近期&#xff0c;GPT 大模型的发布给自然语言处理&#xff08;NLP&#xff09;领域带来了令人震撼的体验。随着这一事件的发生&#xff0c;一系列开源大模型也迅速崛起。依据一些评估机构的评估&#xff0c;这些开源模型大模型的表现也相当不错。一些大模型的评测情况可…

Git移除commit过的大文件

前言&#xff1a;在提交推送本地更改至仓库时&#xff0c;误将大文件给提交了&#xff0c;导致push时报错文件过大&#xff0c;因此需要将已经commit的大文件移除后再push 若已知要删除的文件或文件夹路径&#xff0c;则可以从第4步开始 1.对仓库进行gc操作 $ git gc 2.查询…

【使用深度学习的城市声音分类】使用从提取音频特征(频谱图)中提取的深度学习进行声音分类研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

Helm KinD kubectl krew Istio急速安装

本篇更新网上许多安装失效的工具&#xff0c;如krew和KinD。 本篇测试使用时间为2023/7/20&#xff0c;基本都为最新版本或最新稳定版本。 前置 Helm 是 Kubernetes 的一个包管理工具&#xff0c;用于简化 Kubernetes 应用的部署和管理。Helm 使用名为 "chart" 的打…

Vue+Nodejs+Express+Minio 实现本地图片上传

安装Minio,Minio server和Minio client都要下载可以自定义安装目录 安装完成之后,可以将minio配置成环境变量方便使用 配置了环境变量启动命令式 minio server start,默认账号密码minioadmin和minioadmin,点击9000端口的这个链接,即可访问客户端 nodejs连接Minio,简易服务进…