MySQL学习笔记4: MySQL表的增删查改 (基础)

目录

  • 前言
  • 1. 新增 insert
      • 补充: 插入时间日期 (datetime 类型的数据)
  • 2. 查询 select
    • 2.1. 全列查询 select * from 表名;
    • 2.2. 指定列查询 select 列名,列名... from 表名;
    • 2.3. 表达式查询 select 表达式 from 表名;
    • 2.4. 给查询结果指定别名 select 表达式 as 别名 from 表名;
    • 2.5. 查询的时候进行去重 select distinct 列名 from 表名;
    • 2.6. 查询的同时进行排序 select 列名 from 表名 order by 列名;
    • 2.7. 条件查询 select ... where ...
      • 模糊查询 like 关键字
      • where 列名 is (not) null
    • 2.8. 分页查询 select ... limit ...
  • 3. 修改 update
  • 4. 删除 delete

前言

在 MySQL 中,在对表中的数据进行增删查改之前,要确保选中数据库,并且创建好对应的表

1. 新增 insert

实际上 sql 使用 insert 来往表里插入数据

insert into 表名 values(数据, 数据…);

在这里插入图片描述

在这里插入图片描述

这里注意:在sql中,字符串可以使用 ’ ’ 也可以使用 " "

可以把一个数据插入到指定的列: insert into 表名 (指定的列) values(数据);

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

还可以一次插入多组数据,在values 后面写多组 () 即可
在这里插入图片描述

mysql 是一个客户端 - 服务器结构的程序

客户端和服务器之间, 使用网络进行通信

因此,每个 sql 都涉及到下面的交互过程:

在这里插入图片描述

补充: 插入时间日期 (datetime 类型的数据)

用特定的格式化字符串来表示时间日期:

在这里插入图片描述

这里的 ‘2024-2-22 11:45:00’ 是一个格式化时间字符串, mysql 会自动解析这个字符串,转换成 8 个字节的时间戳 (整数)

也可以用 now() 函数直接获取到当前的时间日期

在这里插入图片描述

2. 查询 select

所有的 select 操作都是得到临时表进行操作,不影响数据库本体上的数据

2.1. 全列查询 select * from 表名;

在这里插入图片描述

‘*’ 称为通配符

在公司的生产环境服务器上,不要随便敲 select *,因为公司的服务器上,数据可能非常多,一旦数据量很大,此时这个操作就会产生大量的硬盘IO 和 网络 IO 就可能把硬盘或者网卡的带宽给吃满,一旦带宽吃满了,此时服务器就无法正常响应其他客户端的需求了

2.2. 指定列查询 select 列名,列名… from 表名;

在这里插入图片描述

2.3. 表达式查询 select 表达式 from 表名;

把查询出来的每一行,都带入表达式进行运算,这里先创建出一个新的表然后在这个表当中增添数据

在这里插入图片描述

在这里插入图片描述

这里的 english + 10就是一个表达式,对原来的英语成绩的数据进行了计算

这里注意:

  1. 当前的表达式查询,并没有修改服务器上硬盘中存储的数据本体,只是在查询结果的基础上进行运算的,得到的是一个临时表,当这个表达式查询结束的时候,这里的数据就消散了,但是数据库服务器 (数据的本体) 内容不会发生任何改变 .select 进行的任意操作,都不会修改数据本体
  2. 此处查询出来的临时表,每个列的类型不再受限于原始表,比如, english 列的类型是decimal(3,1),如果原始数据是100.0就是不合法的,但是在临时表中,会保证数据的正确性,也就不会收到 decimal(3,1)的限制

表达式还可以是多个列之间进行运算

在这里插入图片描述

2.4. 给查询结果指定别名 select 表达式 as 别名 from 表名;

如果表达式比较复杂,建议给表达式起一个别名

as 可以省略,但不推荐省略

在这里插入图片描述

2.5. 查询的时候进行去重 select distinct 列名 from 表名;

如果想要在查询结果中重复的元素只想保留一个,就用 select distinct 列名 from 表名;

它会根据查询的出的列名进行去重,把列的值相同的记录合并成一个

如果要查找多个列去重,这个时候必须是多个列的值都是相同的,才算是重复

2.6. 查询的同时进行排序 select 列名 from 表名 order by 列名;

order by 只是针对临时表进行排序,不会影响到键盘上的数据的顺序

如果一个查询语句没有 order by ,此时查询到的结果集 (临时集) 数据之间的相互顺序是不可预期的

一定要使用 order by 才能够明确指定一个顺序

order by 也可以指定多个列来进行排序,指定多个列的时候,是带有优先级的,前面的列优先级高,后面的列优先级低

优先级高的列值相同,才会比较优先级低的列

没有排序的例子
在这里插入图片描述

升序排序了 chinese 的例子

在这里插入图片描述

降序排序了 chinese 的例子 ( 后面多加了 desc, 此处的 desc 是 descending order 降序 )

在这里插入图片描述

2.7. 条件查询 select … where …

查询的时候,指定筛选条件,条件满足,这个数据就被保留 (作为结果集,就是所有满足条件的数据) ,不满足,这个数据直接跳过

如何表示条件?

一些例子:

in(可以填一些离散的数据),查询的时候如果有在表中找到就会显示

在这里插入图片描述

在条件查询中, = 就表示比较相等
在这里插入图片描述

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

在这里插入图片描述

还可以使用表达式描述条件, 如果where 后面同时有 or 和 and,优先级是 and,然后是 or
在这里插入图片描述

这里使用别名就会报错

在这里插入图片描述

因为 SQL 的执行顺序是:

  1. 取出一条记录 (遍历表)
  2. 把记录带入条件,判定是否满足
  3. 如果条件满足,再把 select 后面指定的列取出来,并且进行一些表达式运算

上面这个过程是先执行的 where,后执行的表达式取别名操作

模糊查询 like 关键字

需要用到通配符

% : 匹配任意个任意字符, % 也可以匹配到 0 个字符

_ : 只能匹配到一个字符

在这里插入图片描述

where 列名 is (not) null

不能写 列名 = null,但可以写 列名 <=> null, <=> 符号相比于 = 可以进行空值的比较

2.8. 分页查询 select … limit …

limit 限制这次请求返回多少个记录 (一页里有几条)

在这里插入图片描述

还可以使用 offset 描述当前结果从第几条开始获取,不写 offset 默认就是第0条

在这里插入图片描述

3. 修改 update

update 表名 set 列名 = 值 where 条件 / order by / limit;

update 的操作都不是临时表了,都是修改硬盘数据了

此处的 = 就是赋值了

set 设置

where 条件 就是要修改哪些行

进行修改,是要定位到行和列,再修改值

如果条件不写,就是针对所有的行进行修改

对于 update 也可以使用 order by , limit 一些操作的

比如:将总成绩倒数前三的 3 位同学的数学成绩加上 10 分

在这里插入图片描述

4. 删除 delete

delete from 表名 where 条件 / order by / limit;

把条件匹配出来的符合要求的记录,给删除掉

在这里插入图片描述

如果删除语句中没有指定任何条件,就会删掉表里的所有数据

删除所有数据,和 删表,还是有一些差别

drop table 是把表 本身 和 表里的数据都给删掉了, delete 则只是删除了表里面的数据

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

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

相关文章

如何在Python中创建动态图形?

动态图形是使可视化更具吸引力和用户吸引力的好方法。它帮助我们以有意义的方式展示数据可视化。Python帮助我们使用现有强大的Python库创建动态图形可视化。Matplotlib是一个非常流行的数据可视化库&#xff0c;通常用于数据的图形表示&#xff0c;也用于使用内置函数的动态图…

Java 中常用的数据结构类 API

目录 常用数据结构API 对应的线程安全的api 高可用衡量标准 常用数据结构API ArrayList: 实现了动态数组&#xff0c;允许快速随机访问元素。 import java.util.ArrayList; LinkedList: 实现了双向链表&#xff0c;适用于频繁插入和删除操作。 import java.util.LinkedLis…

小妙招:Copilot 当跳板免费调用 GPT4

GPT4 每月 20 刀&#xff0c;Github Copilot 每月 10 刀 首先叠个甲&#xff1a;免费不是 0 成本。 由于我在日常开发过程中&#xff0c;Copilot 对我来说是必需品&#xff0c;我会用它检查代码、写工具函数、写注释、干苦力。所以这钱是我的必要支出。而这篇文章是介绍如何基…

5 buuctf解题

命令执行 [BJDCTF2020]EasySearch1 打开题目 尝试弱口令&#xff0c;发现没有用 扫描一下后台&#xff0c;最后用御剑扫描到了index.php.swp 访问一下得到源码 源码如下 <?phpob_start();function get_hash(){$chars ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstu…

详解 API 设计最佳实践

应用程序接口&#xff08;API&#xff09;是一种接口&#xff0c;它让应用程序可以轻松地使用另一个应用程序的数据和资源&#xff0c;API 对于一个产品或公司的成功至关重要。 如果没有 API&#xff0c;你大部分喜欢的软件今天就不会存在。例如&#xff0c;Google Maps API 可…

互联网加竞赛 机器视觉opencv答题卡识别系统

0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 答题卡识别系统 - opencv python 图像识别 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0c;学长非常推荐&#xff01; &#x1f947;学长这里给一个题目综合评分(每项满分5分…

项目实战:Qt监测操作系统物理网卡通断v1.1.0(支持windows、linux、国产麒麟系统)

若该文为原创文章&#xff0c;转载请注明出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/136276999 红胖子(红模仿)的博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结…

爬取链家二手房房价数据存入mongodb并进行分析

实验目的 1.使用python将爬虫数据存入mongodb&#xff1b; 2.使用python读取mongodb数据并进行可视化分析。 实验原理 MongoDB是文档数据库&#xff0c;采用BSON的结构来存储数据。在文档中可嵌套其他文档类型&#xff0c;使得MongoDB具有很强的数据描述能力。本节案例使用的…

第6.4章:StarRocks查询加速——Colocation Join

目录 一、StarRocks数据划分 1.1 分区 1.2 分桶 二、Colocation Join实现原理 2.1 Colocate Join概述 2.2 Colocate Join实现原理 三、应用案例 注&#xff1a;本篇文章阐述的是StarRocks-3.2版本的Colocation Join 官网文章地址&#xff1a; Colocate Join | StarRoc…

【科技素养题】少儿编程 蓝桥杯青少组科技素养题真题及解析第24套

少儿编程 蓝桥杯青少组科技素养题真题及解析第24套 1、A市和B市决定联合建造一个邮件集散中心用于将来自其他地区的邮件运送至两个城市。A 市每周会收到 4000 份邮件,B 市每周会收到 6000 份邮件。假设运送邮件的时间与集散中心距离城市的距离成正比,A市与8市之间的连线长50…

相机选型介绍

摄影测量中&#xff0c;相机是非常重要的角色&#xff0c;合适的相机产出合适的图像&#xff0c;得到合适的重建精度&#xff0c;这是相机的重要性。 您也许第一反应是&#xff0c;摄影测量所需的理想相机&#xff0c;是有着超高分辨率的相机&#xff0c;但事实可能并非如此&a…

中兴通讯携吉林移动迈向5G-A新阶段,完成3CC技术应用

日前&#xff0c;中兴通讯携手中国移动吉林移动分公司&#xff0c;在5G-A领域取得新突破。具体来说&#xff0c;双方基于MTK芯片M80终端&#xff0c;完成了5G-A三载波聚合试点&#xff0c;实测下行速率达到理论峰值4.25Gbps&#xff0c;相比2.6G单载波速率提升2.5倍。如此成绩&…

11-pytorch-使用自己的数据集测试

b站小土堆pytorch教程学习笔记 import torch import torchvision from PIL import Image from torch import nnimg_path ../imgs/dog.png imageImage.open(img_path) print(image) # imageimage.convert(RGB)transformtorchvision.transforms.Compose([torchvision.transforms.…

typecho 给文章创建目录树

受益于 shortcode 短代码插件和泽泽短代码中目录树的显示样式&#xff0c;形成了自己实现添加文章目录的思路&#xff1a; 一、文章目录树的结构 <div id"toc"><div class"toc-left"><div class"toc-btn" type"button&quo…

【机器学习基础】一元线性回归(适合初学者的保姆级文章)

&#x1f680;个人主页&#xff1a;为梦而生~ 关注我一起学习吧&#xff01; &#x1f4a1;专栏&#xff1a;机器学习 欢迎订阅&#xff01;后面的内容会越来越有意思~ &#x1f4a1;往期推荐&#xff1a; 【机器学习基础】机器学习入门&#xff08;1&#xff09; 【机器学习基…

Linux进程【补充】

文章目录 进程概念task_struct 进程创建forkvfork写时拷贝 进程状态僵尸进程孤儿进程守护进程 进程地址空间是什么为什么怎么做 进程概念 进程是一个程序的执行实例或者是担当系统资源分配的实体。当一个程序运行时&#xff0c;被从硬盘加载到内存中&#xff0c;操作系统为每个…

Canvas学习笔记02:canvas的路径扫盲,附代码案例

hello&#xff0c;我是贝格前端工场&#xff0c;最近在学习canvas&#xff0c;分享一些canvas的一些知识点笔记&#xff0c;本期分享canvas的路径知识&#xff0c;欢迎老铁们一同学习&#xff0c;欢迎关注&#xff0c;如有前端项目可以私信贝格。 一、什么是canvas路径 Canvas…

大模型 Advanced-RAG(高级检索增强生成):从理论到 LlamaIndex 实战!

最近关于检索增强生成进行了调查&#xff0c;总结了三种最近发展的范式&#xff1a; Naive RAG&#xff08;简单RAG&#xff09;Advanced RAG&#xff08;高级RAG&#xff09;Modular RAG&#xff08;模块化RAG&#xff09; 本文首先讨论这些技术&#xff0c;接着分享如何使…

数字电路 第二章—第二节(半导体二极管、三极管和MOS管的开关特性)

一、理想开关的开关特性 1、静态特性 &#xff08;1&#xff09;断开时&#xff0c;无论在多大范围内变化&#xff0c;其等效电阻&#xff0c;通过其中的电流。 &#xff08;2&#xff09;闭合时&#xff0c;无论流过其中的电流在多大范围内变化&#xff0c;其等效电阻&…

Spark大数据分析与实战笔记(第三章 Spark RDD 弹性分布式数据集-05)

文章目录 每日一句正能量第3章 Spark RDD弹性分布式数据集章节概要3.7 Spark的任务调度3.7.1 DAG的概念3.7.2 RDD在Spark中的运行流程 总结 每日一句正能量 成功的速度一定要超过父母老去的速度&#xff0c;努力吧。做事不必与俗同&#xff0c;亦不与俗异&#xff1b;做事不必令…