MySQL【知识改变命运】06

前言:在05这节数据结构里面,我们知道select * from 这个操作很危险,如果数据库很大,会把服务器资源耗尽,接下来提到的查询可以有效的限制返回记录

1:分页查询

分页查询可以有效控制一次查询出来的结果集的记录条数,可以有效缓解减少数据库服务的压力,对用户也很好

1.1:语法:加粗样式

-- 起始下标为 0
-- 从 0 开始,筛选 num 条结果
select from table_name [where...] [order by] limit num;
-- 从 start 开始,筛选 num 条结果
select from table_name [where...] [order by] limit start,num;
-- 从 start 开始,筛选 num 条结果,⽐第⼆种⽤法更明确,建议使⽤
select from table_name [where...] [order by] limit num offset start;

1.2:练习

限制两条,从第0条开始,只取前两条记录
在这里插入图片描述
在这里插入图片描述

限制两条,从第 2 条开始,只取前两条记录

在这里插入图片描述
注意:这里不是从条开始计数,而是从第零条,类似于数组

如果我们超过了表中的范围,会返回空结果集
在这里插入图片描述

limit start,num;
num offset start;
这两条语句表达效果一样

在这里插入图片描述
用页数查找
这里数据我们一共有 9条
在这里插入图片描述
页数=总页数/每页条数,如果有余数则+1;
根据页数计算起始的位置
srart从0开始,start=(页数-1)*每页显示1的记录数;
这个表一共有5页
查看第一页数据:
在这里插入图片描述
查看第三页数据:
在这里插入图片描述
查看最后一页:
在这里插入图片描述
最后一页,有几条数据就都几条

2Update 修改

2.1:语法

UPDATE [LOW_PRIORITY] [IGNORE] table_referenceSET assignment [, assignment] ...[WHERE where_condition][ORDER BY ...][LIMIT row_count]

对符合条件的结果进⾏列值更新
update 表名 set 列名 =值…;

2.2:练习

将孙悟空同学的数学成绩变更为 80 分
在这里插入图片描述

在这里插入图片描述
2条数据被影响,匹配两条记录,2条被更改。
将曹孟德同学的数学成绩变更为 60 分,语⽂成绩变更为 70 分
在这里插入图片描述
将总成绩前三的 3位同学的数学成绩加上 10 分
原表数据
在这里插入图片描述
排名
在这里插入图片描述
修改:

在这里插入图片描述
修改成功后查询
在这里插入图片描述

将所有同学的语⽂成绩更新为原来的 +10分
在这里插入图片描述

在这里插入图片描述

Update 注意事项
• 以原值的基础上做变更时,不能使⽤math += 30这样的语法
• 不加where条件时,会导致全表数据被列新,谨慎操作

3:Delete 删除

3.1:语法

 DELETE FROM tbl_name [WHERE where_condition] [ORDER BY ...] [LIMIT row_count]

3.2:练习

删除孙悟空同学的考试成绩
原表:
在这里插入图片描述
删除后的表:
在这里插入图片描述
delete不加条件限制很危险
在这里插入图片描述
删掉表中的全部内容;
在这里插入图片描述

在这里插入图片描述

4:小总结

新增:insert into 表名
查询:select 列名 from 表名
修改:update 表名
删除:delete from 表名

insert ,update ,delete
执行成功返回的是受影响的行数(整数)
select
执行成功之后返回的是一个结果集(集合)

5:截断表

5.1:语法

1 TRUNCATE [TABLE] tbl_name

创建一个表
在这里插入图片描述
在这里插入图片描述
我们删除所有数据后,再次写入新的值,我们看看有什么效果
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
我们会发现,自增会从表记录中的值开始填充

执行截断操作:

在这里插入图片描述
我们再加入数据:
在这里插入图片描述

在这里插入图片描述
表回到了最初的创建时候状态
自增id也会从0开始

6:插入查询结果

6.1:语法:

INSERT INTO table_name [(column [, column ...])] SELECT ...

6.2:练习:

删除表中的重复记录,重复的数据只能有⼀份
创建一个表

在这里插入图片描述
**实现思路:**原始表中的数据⼀般不会主动删除,但是真正查询时不需要重复的数据,如果每次查询
都使⽤DISTINCT进⾏去重操作,会严重效率。可以创建⼀张与 t_recored 表结构相同的表,把
去重的记录写⼊到新表中,以后查询都从新表中查,这样真实的数据不丢失,同时⼜能保证查询效

创建一个新表:
在这里插入图片描述
这里有个小技巧:
语法:

create table new_table like old_table

可以创建一个相同的表结构的新表;
数据不会导入。
在这里插入图片描述

将去重的数据放入新表中:
在这里插入图片描述

7:聚合函数

7.1:语法

COUNT([DISTINCT] expr) 返回查询到的数据的 数量
SUM([DISTINCT] expr) 返回查询到的数据的 总和,不是数字没有意义
AVG([DISTINCT] expr) 返回查询到的数据的 平均值,不是数字没有意义
MAX([DISTINCT] expr) 返回查询到的数据的 最⼤值,不是数字没有意义
MIN([DISTINCT] expr) 返回查询到的数据的 最⼩值,不是数字没有意义

7.1练习:

7.1.1:COUTN

• 统计exam表中有多少记录**
原表
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
以上有三种查询方式,'* ’ ,常数,列,如果求数据行数条数,建议用 ‘ * ’,如果用列求,他会自动忽略NULL值行。
列查询中:普通列不及主键列效率高;

在这里插入图片描述
统计语⽂成绩⼩于50分的学⽣个数
在这里插入图片描述

7.1.2:SUM

• 统计所有学生数学成绩总分**
在这里插入图片描述
统计所有学生英语成绩总分:
在这里插入图片描述
注意一下啊:所求得和会忽略列值为NULL的值
不能统计非数值的列
在这里插入图片描述
虽然没有报错,但是不符合预期。

7.1.3 :AVG

• 统计英语成绩的平均分
在这里插入图片描述
• 统计平均总分
在这里插入图片描述
补充小点:
语法:

ROUND(原来小数,小数点后位数)

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

7.1.4:MAX和MIN

• 查询英语最⾼分
在这里插入图片描述
如果我们把所有值改为NULL呢?
在这里插入图片描述
查看英语最低分:
在这里插入图片描述
查询 > 70 分以上的数学最低分
在这里插入图片描述
查询数学成绩的最⾼分与英语成绩的最低分
在这里插入图片描述
我的博客即将同步至腾讯云开发者社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=2he8rojhlpicc

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

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

相关文章

数据结构与集合源码

目录 一、数据结构 1.1 数据结构概念 1.2 研究对象 1.3 常见存储结构 1.3.1 数组 1.3.2 链表 1.单向链表 2.双向链表 1.3.3 二叉树 1.3.4 栈(FILO,先进后出) 1.3.5 队列(FIFO,先进先出) 二、集合…

基于卷积神经网络的蔬菜识别系统,resnet50,mobilenet模型【pytorch框架+python源码】

更多目标检测和图像分类识别项目可看我主页其他文章 功能演示: 基于卷积神经网络的蔬菜识别系统,resnet50,mobilenet【pytorch框架,python,tkinter】_哔哩哔哩_bilibili (一)简介 基于卷积神…

Java设计模式梳理:行为型模式(策略,观察者等)

行为型模式 行为型模式关注的是各个类之间的相互作用,将职责划分清楚,使得我们的代码更加地清晰。 策略模式 策略模式太常用了,所以把它放到最前面进行介绍。它比较简单,我就不废话,直接用代码说事吧。 下面设计的…

软件架构之构件复用技术

简介 软件架构复用 在应用软件系统的开发过程中,通常包含以下几个关键阶段:需求分析、设计、编码、测试和维护。在这些阶段中,复用技术均可以得到有效应用。特别是,软件架构复用作为一种大粒度、高抽象级别的复用方式&#xff0…

55 | 享元模式(下):剖析享元模式在Java Integer、String中的应用

上篇文章,我们通过棋牌游戏和文本编辑器这样两个实际的例子,学习了享元模式的原理、实现以及应用场景。用一句话总结一下,享元模式中的“享元”指被共享的单元。享元模式通过复用对象,以达到节省内存的目的。 今天,我…

[PHP]重复的Notice错误信息

<?php $a []; var_dump($a[name]);执行结果&#xff1a; 原因&#xff1a; display_errors和error_reporting都打开了Notice错误信息

线性回归实现

1.从数据流水线、模型、损失函数、小批量随机梯度下降优化器 %matplotlib inline import random import torch from d2l import torch as d2l 2.根据带有噪声的线性模型构造人造数据集。使用线性模型参数w [2,-3.4]T、b 4.2和噪声项ε生成数据集及标签 y Xw b ε def …

windows 上验证请求接口是否有延迟

文件名&#xff1a;api_request_script.bat &#xff0c;直接右键点击执行即可。 echo off setlocal:: 配置:: 替换为实际接口URL set "logFilelog.txt" set "errorLogFileerror_log.txt" set "interval3" :: 请求间隔&#xff08;秒&#xff…

React之组件渲染性能优化

关键词&#xff1a; shouldComponentUpdate、PureComnent、React.memo、useMemo、useCallback shouldComponentUpdate 与 PureComnent shouldComponentUpdate 与 PureComnent 用于类组件。虽然官方推荐使用函数组件&#xff0c;但我们依然需要对类组件的渲染优化策略有所了解…

面经汇总——第一篇

1. int数据类型做了什么优化 Java在处理整数类型时&#xff0c;进行了多种优化&#xff0c;主要体现在编译器层面和JVM层面&#xff0c;目的是提高性能、减少内存开销。 常量池优化 Java中的Integer类有一个缓存机制&#xff0c;对于值在-128到127之间的int数字&#xff0c;Int…

springBoot集成nacos注册中心以及配置中心

一、安装启动nacos 访问&#xff1a;http://127.0.0.1:8848/nacos/index.html#/login 二、工程集成nacos 1、引入依赖 我这里搭建的父子工程哈&#xff0c;在子工程引入 <dependencies><!-- SpringBoot Web --><dependency><groupId>org.sp…

代码审计-Python Flask

1.Jinjia2模版注入 Flask是一个使用 Python 编写的轻量级 Web 应用框架。其 WSGI 工具箱采用 Werkzeug &#xff0c;模板引擎则使用 Jinja2。jinja2是Flask作者开发的一个模板系统&#xff0c;起初是仿django模板的一个模板引擎&#xff0c;为Flask提供模板支持&#xff0c;由于…

MySQL-30.索引-介绍

一.索引 为什么需要索引&#xff1f;当我们没有建立索引时&#xff0c;要在一张数据量极其庞大的表中查询表里的某一个值&#xff0c;会非常的消耗时间。以一个6000000数据量的表为例&#xff0c;查询一条记录的时间耗时约为13s&#xff0c;这是因为要查询符合某个值的数据&am…

RabbitMQ系列学习笔记(八)--发布订阅模式

文章目录 一、发布订阅模式原理二、发布订阅模式实战1、消费者代码2、生产者代码3、查看运行结果 本文参考&#xff1a; 尚硅谷RabbitMQ教程丨快速掌握MQ消息中间件rabbitmq RabbitMQ 详解 Centos7环境安装Erlang、RabbitMQ详细过程(配图) 一、发布订阅模式原理 在开发过程中&…

SpringBoot+MyBatis+MySQL项目基础搭建

一、新建项目 1.1 新建springboot项目 新建项目 选择SpringBoot&#xff0c;填写基本信息&#xff0c;主要是JDK版本和项目构建方式&#xff0c;此处以JDK17和Maven举例。 1.2 引入依赖 选择SpringBoot版本&#xff0c;勾选Lombok&#xff0c;Spring Web&#xff0c;MyBa…

UI自动化测试 —— web端元素获取元素等待实践!

前言 Web UI自动化测试是一种软件测试方法&#xff0c;通过模拟用户行为&#xff0c;自动执行Web界面的各种操作&#xff0c;并验证操作结果是否符合预期&#xff0c;从而提高测试效率和准确性。 目的&#xff1a; 确保Web应用程序的界面在不同环境(如不同浏览器、操作系统)下…

设计模式和软件框架的关系

设计模式和软件框架在软件开发中都有助于解决复杂问题和提高代码质量&#xff0c;但它们在概念和使用上存在一些区别。它们的关系可以通过以下几点理解&#xff1a; 层次与抽象程度 设计模式&#xff08;Design Patterns&#xff09;是一组通用的、可复用的解决方案&#xff0c…

完爆YOLOv10!Transformer+目标检测新算法性能无敌,狠狠拿捏CV顶会!

百度最近又搞了波大的&#xff0c;推出了一种全新的实时端到端目标检测算法RT-DETRv3&#xff0c;性能&耗时完爆YOLOv10。 RT-DETRv3基于Transformer设计&#xff0c;属于代表模型DETR的魔改进化版。这类目标检测模型都有着强大的扩展性与通用性&#xff0c;因为Transform…

MySQL—CRUD—进阶—(二) (ಥ_ಥ)

文本目录&#xff1a; ❄️一、新增&#xff1a; ❄️二、查询&#xff1a; 1、聚合查询&#xff1a; 1&#xff09;、聚合函数&#xff1a; 2&#xff09;、GROUP BY子句&#xff1a; 3&#xff09;、HAVING 子句&#xff1a; 2、联合查询&#xff1a; 1&#xff09;、内连接…

基于FPGA的以太网设计(五)

之前简单介绍并实现了ARP协议&#xff0c;今天简单介绍一下IP协议和ICMP协议。 1.IP协议 IP协议即Internet Protocol&#xff0c;是网络层的协议。 IP协议是TCP/IP协议族的核心协议&#xff0c;其主要包含两个方面&#xff1a; IP头部信息。IP头部信息出现在每个IP数据报中…