MySQL数据表的“增删查改“
我们学习数据库, 最重要的就是要学会对数据表表进行"增删查改"(CRUD).(C -- create, R -- retrieve, U -- update, D -- delete)
目录
一. "增"(create)
1. 普通新增
2. 指定列新增
3. 一次插入多行
4. 用insert插入时间
5. 小结
二. "查"(retrieve)
1. 全列查询
2. 指定列查询
3. 查询时指定表达式
4. 去重查询
5. 排序查询
6. 条件查询(查询中最关键的操作)
7. 分页查询
8. 小结
三. "改"(update)
四. "删"(delete)
一. "增"(create)
MySQL中, 新增元素的基本语法如下:
1. 普通新增
insert into 表名 values (值, 值, 值 ......);
例如:

注: MySQL中, 表示字符串使用单引号或者双引号都可以.
注意:
(1) 这里值的个数和类型, 要和表结构相匹配.
如上图, 列数和值的个数不匹配.

如上图, 明明第二列插入的int类型和表中定义的varchar类型不匹配, 为什么还能插入成功呢? 这里我们就不得不提到SQL语言的"弱类型"特性.
SQL(结构化查询语言)通常被认为是一种“弱类型”或“动态类型”的语言. SQL可以在查询执行时自动进行数据类型转换. 例如在这里SQL就自动把int类型的3转换成了字符串类型. 但SQL并非在任何情况下都能将数据类型自动转换.

例如在这里SQL就无法将字符串类型的"李四"转换成int类型, 此时程序就会报错.
2. 指定列新增
insert into 表名(列名, 列名 ......) values(值, 值 ......);
(注意: 插入值的 个数, 类型, 顺序 要和前面指定的列名匹配).



3. 一次插入多行
insert into 表名 values(值, 值 ...), (值, 值 ...), (值, 值 ...) ...;
每个括号表示一行.

还可以和"指定列新增"配合使用.
例如:

4. 用insert插入时间
以字符串的形式插入时间.

可以使用now()来插入当前时间. (注: now()获取的时间是字符串类型的).

5. 小结
(1) 普通新增: insert into 表名 values(值, 值, 值 ......);
(2) 指定列新增: insert into 表名(列名, 列名 ......) values(值, 值 ......);
(3) 一次插入多行: insert into 表名 values(值, 值 ...), (值, 值 ...), (值, 值 ...) ...;
(4) 用 insert 插入时间: 以字符串的形式插入时间, 获取当前时间使用now()
二. "查"(retrieve)
SQL中, "增删改"都很简单, "查"比较复杂. 本篇博客我们先介绍简单的"查"操作.
MySQL中, 新增元素的基本语法如下:
1. 全列查询
即查询出指定表的所有行和所有列.
select * from 表名;
(注意: *是通配符. 在这里, *代指所有列)
注意: select* 是一个非常危险的操作. 因为一旦表的规模非常大, 此时进行select*操作, 就会产生大量的硬盘io和网络io, 很可能会把硬盘/网卡的带宽"吃满", 造成"拥堵". 使得其他客户端在尝试访问数据库时, 访问操作就无法正常进行了.
2. 指定列查询
查询的时候, 手动指定列名, 查询出来的结果就是指定的列.
select 列名, 列名 from 表名;

3. 查询时指定表达式
select 表达式(as 别名) from 表名;
这里的表达式: 可以是针对某个列的加减乘除, 也可以是针对多个列的加减乘除.
例如: 我们想把成绩表每个学生的语文成绩加10分后查询:

把每个学生的总分查询出来:

注意: 这里可以给chinese,math,english的和取一个别名sum.需要使用到"as".如下:
也可以省略as,但是我们并不建议这样做, 因为这样很容易造成SQL语句表达含义不清晰.

注意: 查询操作(select)生成的表只是"临时表". 数据库本体(数据库服务器硬盘上的数据)不会发生任何改变.
4. 去重查询
去重的含义: 多个行的数据, 如果出现相同的, 就会只保留一份.
select distinct 列名 from 表名;

5. 排序查询
针对查询结果进行排序
... order by 列名;
注意: 如果排序中出现null, null会被视为最小值.
例如: 用数学成绩来排序

(默认是升序排列) 当然升序还是降序也可以手动指定. (asc -- 升序, desc -- 降序). (这里的asc是ascend的缩写, desc是descend的缩写).

也可以指定多个列排序, 排序规则为: 先使用第一列来排列, 如果第一列元素相同, 则使用第二列, 如果前两列都相同, 则使用第三列 ......
... order by 列名, 列名, 列名 ......

6. 条件查询(查询中最关键的操作)
查询过程中: 一行一行地遍历表, 根据筛选条件, 把每一行的数据代入到条件中, 满足就保留并显示, 不满足就跳过.
select 列名 from 表名 where 条件;

条件运算符:
>, >=, <, <= : 大于,大于等于, 小于,小于等于
= : 等于, 不支持null的比较 (例如: null = null 的结果为 null)
<=> : 等于, 支持null的比较 (例如: null <=> null 的结果为 true)
(注意: 只要有null参加的运算,结果都是null)
!= : 不等于
between a and b : 范围匹配, 闭区间[a, b]. 如果value值在[a, b]范围内, 就返回true.
例如:

in (option1, option2 ......) : 如果是几个option中的任意一个, 则返回true.
例如:

is null : 是null
is not null : 不是null
like : 模糊匹配 (即: 不要求完全相等, 满足一些条件可以了) 此外还需要搭配通配符来使用.
(%匹配0个或任意个字符, _匹配一个特定字符)
例如:


and : 并且
or : 或者
not : 非(逻辑取反)
7. 分页查询
select 列名 from 表名 limit N (offset M):
N代表限制查询几条数据.
例如:

指定limit时, 还可以搭配offset来使用. offset表示从下标为几开始算limit.
例如:

8. 小结
(1) 全列查询: select * from 表名;
(2) 指定列查询: select 列名, 列名 from 表名;
(3) 查询时指定表达式: select 表达式(as 别名) from 表名;
(4) 去重查询: select distinct 列名 from 表名;
(5) 排序查询: ... order by 列名 desc/asc;
(6) 条件查询: select 列名 from 表名 where 条件;
(7) 分页查询: select 列名 from 表名 limit N (offset M):
三. "改"(update)
使用update所完成的修改, 是真正在硬盘上完成了修改. 这样的修改, 是"持久有效"的.
基本语法:
update 表名 set 列名 = 值, 列名 = 值, 列名 = 值 ......;
注意:
(1) 这里还可以配合使用where, order by, limit 来对查询结果进行条件限制/排序/分页.
(2) 如果没有指定条件, 默认对所有列进行修改.

例如, 这里我们要把sunwukong的english成绩改为79:
从上面结果我们可以看到: "查询成功, 1行受到影响", "匹配到的行数:1 , 修改的行数:1, 警告: 0".
注意: 这里匹配到的行数和实际被修改的行数不一定相等, 要根据实际情况决定, 比如:

这里虽然匹配到了9行, 但是只修改了6行. 因为只要有null参与的运算, 结果都是null, 无法修改.
注意: 这里写到的 chinese = chinese + 10 不能写成chinese += 10. 因为SQL语言中没有这样的语法.
再例: 我们要把louxiang的id 6,成绩 99, 87, 74都记录下来

update是一个非常简单单操作, 关于update的操作, 大概就是这么多.
四. "删"(delete)
基本语法:
delete from 表名 where 条件 (order by / limit N).
注意:
(1) delete(删除)操作也是一个非常危险的操作, 在实际开发中, 要谨慎使用.
(2) 如果delete语句没有指定条件, 那么默认会删除表中所有数据.
(2) 注意辨析delete from 表名 和 drop table 表名 的区别: delete 只是删除表中数据, 但是表依然存在; drop 是连数据带表一块都删除了.
以上就是本篇博客的全部内容啦,如果喜欢小编的文章,可以点赞,评论,收藏~

相关文章:
MySQL数据表的“增删查改“
我们学习数据库, 最重要的就是要学会对数据表表进行"增删查改"(CRUD).(C -- create, R -- retrieve, U -- update, D -- delete) 目录 一. "增"(create) 1. 普通新增 2. 指定列新增 3. 一次插入多行 4. 用insert插入时间 5. 小结 二. "查"…...
Github查询语法
转载自link 基础查询结构 一个关键词会匹配文件内容或文件路径。 多个关键词会匹配文件内容,只要包含关键词,就会出现在搜索结果中,不论前后顺序,是否是一个单词(多个关键词之间没有空格)。 还可以使用…...
pqgrid的使用
npm安装pqgrid npm install pqgridf --registryhttps://registry.npmmirror.com npm install jquery-ui --registryhttps://registry.npmmirror.comvue文件 <template><div><div id"grid_json"></div></div> </template><s…...
媳妇面试了一家公司,期望月薪20K,对方没多问就答应了,只要求3天内到岗,可我总觉得哪里不对劲。
“20k!明天就来上班吧!” 听到这句话,你会不会两眼放光,激动得差点跳起来? 朋友媳妇小丽,最近就经历了这样一场“梦幻面试”。然而,事情的发展却远没有想象中那么美好…… “这公司也太好了吧…...
【Makefile笔记】小白入门篇
【Makefile笔记】小白入门篇 文章目录 【Makefile笔记】小白入门篇所需组件一、简单了解Makefile1.Makefile简介2.Makefile 原理 二、为什么要使用Makefile1.解决编译时链库的不便2.提高编译效率,缩短编译时间(尤其是大工程) 三、Makefile语法…...
快速入门文件操作+5种例子演示
文件操作 基本操作注意事项例子1:读取文件内容例子2:写入文件内容例子3:追加文件内容例子4:读取并写入文件内容(复制文件)例子5:使用二进制模式读写文件 基本操作 在C语言中,使用文…...
基于Vue3的Uniapp实训项目|一家鲜花店
基于Vue的Uniapp实训指导项目 项目预览: 在这里插入图片描述 pages.json {"pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages{"path": "pages/index/index",&…...
Python3 字典
前言 本文主要介绍Python中的字典(dict),主要内容包括:字典简介、字典特性、字典的基本操作。 文章目录 前言一、字典简介二、字典特性1、键值对2、无序性?3、可变性4、键的唯一性5、值的类型不限 三、字典的基本操作1、创建2、访问3、增加…...
JPA详解
文章目录 JPA概述JPA的优势JPA注解 JPA概述 Java Persistence API(JPA)是 Java EE 平台的一部分,它为开发者提供了一种用于对象关系映射(ORM)的标准化方法。JPA 提供了一组 API 和规范,用于在 Java 应用程…...
Linux线程:线程分离
目录 一、什么是线程分离 1.1pthread_detach 1.2pthread线程库存在的意义 1.3__thread线程的局部存储 1.4系统调用clone 一、什么是线程分离 1.1pthread_detach 默认情况下,新创建的线程是joinable的,线程退出后,需要对其进行pthread_joi…...
chatgpt之api的调用问题
1.调用api过程中,出现如下报错内容 先写一个测试样例 import openaiopenai.api_key "OPEN_AI_KEY" openai.api_base"OPEN_AI_BASE_URL" # 是否需要base根据自己所在地区和key情况进行completion openai.ChatCompletion.create(model"g…...
Java中lambda表达式是啥怎么使用
在Java中,Lambda表达式(也称为闭包)是一种简洁地表示匿名函数(即没有名称的函数)的方式。它们允许你将函数作为参数传递或赋值给变量,从而简化代码。Lambda表达式在Java 8及更高版本中引入。 Lambda表达式…...
selenium中, quit 和close的区别
close时 """ close和quit的区别 close关闭当前页 (只是关闭了当前) quit离开整个浏览器 (走远了) """ from selenium import webdriver import time# 创建浏览器驱动对象 from selenium.webdriver.co…...
管易云和金蝶云星空接口打通对接实战
管易云和金蝶云星空接口打通对接实战 源系统:管易云 金蝶管易云是金蝶集团旗下以电商和新零售为核心业务的子公司,公司于2008年成立,拥有从事电商及新零售业务相关专业知识工作者超过1000人。为伊利、网易有道、东阿阿胶、金龙鱼、海康、科大讯飞等超过1…...
DP-Kmaens密度峰值聚类算法
我有个问题 关于 [密度值>密度阈值] 的判定这里,新进来的新数据怎么确定他的密度值?密度阈值又是怎样确定的呢?...
STM32-14-FSMC_LCD
STM32-01-认识单片机 STM32-02-基础知识 STM32-03-HAL库 STM32-04-时钟树 STM32-05-SYSTEM文件夹 STM32-06-GPIO STM32-07-外部中断 STM32-08-串口 STM32-09-IWDG和WWDG STM32-10-定时器 STM32-11-电容触摸按键 STM32-12-OLED模块 STM32-13-MPU 文章目录 1. 显示器分类2. LCD简…...
linux nohup命令详解:持久运行命令,无视终端退出
nohup (全称为 “no hang up”),用于运行一个命令,使其在你退出 shell 或终端会话后继续运行。 基本语法 nohup command [arg1 ...] [&> output_file] &command 是你想要运行的命令。[arg1 ...] 是该命令的参数。&am…...
PS系统教程09
修复照片 修饰工具 污点修复画笔工具(J) 主要作用:去除一些污点或者不需要的 【:缩小】:放大 目标:去掉这两个点 修复画笔工具 也就是说我们要有取样点 选择修复画笔工具按住Alt键吸取周边相近颜色松开单机…...
2024089期传足14场胜负前瞻
2024089期售止时间为6月3日(周一)22点00分,敬请留意: 本期1.5以下赔率5场,1.5-2.0赔率5场,其他场次是平半盘、平盘。本期14场难度偏低。以下为基础盘前瞻,大家可根据自身判断,复选增…...
备战十一届大唐杯国赛预选赛
这次省赛带了太多个省一了,具体可看下面的图片,只放了一部分。目前根据可靠消息,应该还有个预选赛和去年一样,就是还会考一次仿真。如果说通过了就是国二起步然后去北方工业争夺国一国二,没过的话就是国三。 每…...
Linux链表操作全解析
Linux C语言链表深度解析与实战技巧 一、链表基础概念与内核链表优势1.1 为什么使用链表?1.2 Linux 内核链表与用户态链表的区别 二、内核链表结构与宏解析常用宏/函数 三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势5.1 插入效率5.2 安全…...
React第五十七节 Router中RouterProvider使用详解及注意事项
前言 在 React Router v6.4 中,RouterProvider 是一个核心组件,用于提供基于数据路由(data routers)的新型路由方案。 它替代了传统的 <BrowserRouter>,支持更强大的数据加载和操作功能(如 loader 和…...
SCAU期末笔记 - 数据分析与数据挖掘题库解析
这门怎么题库答案不全啊日 来简单学一下子来 一、选择题(可多选) 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘:专注于发现数据中…...
解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八
现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet,点击确认后如下提示 最终上报fail 解决方法 内核升级导致,需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...
【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)
服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...
2024年赣州旅游投资集团社会招聘笔试真
2024年赣州旅游投资集团社会招聘笔试真 题 ( 满 分 1 0 0 分 时 间 1 2 0 分 钟 ) 一、单选题(每题只有一个正确答案,答错、不答或多答均不得分) 1.纪要的特点不包括()。 A.概括重点 B.指导传达 C. 客观纪实 D.有言必录 【答案】: D 2.1864年,()预言了电磁波的存在,并指出…...
对WWDC 2025 Keynote 内容的预测
借助我们以往对苹果公司发展路径的深入研究经验,以及大语言模型的分析能力,我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际,我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测,聊作存档。等到明…...
如何为服务器生成TLS证书
TLS(Transport Layer Security)证书是确保网络通信安全的重要手段,它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书,可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...
2025盘古石杯决赛【手机取证】
前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来,实在找不到,希望有大佬教一下我。 还有就会议时间,我感觉不是图片时间,因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...
laravel8+vue3.0+element-plus搭建方法
创建 laravel8 项目 composer create-project --prefer-dist laravel/laravel laravel8 8.* 安装 laravel/ui composer require laravel/ui 修改 package.json 文件 "devDependencies": {"vue/compiler-sfc": "^3.0.7","axios": …...
