【MySQL — 数据库增删改查操作】深入解析MySQL的create insert 操作



数据库CRUD操作
1 CRUD简介
CURD是对数据库中的记录进行基本的增删改查操作:

2. Create 新增
语法
INSERT [INTO] table_name[(column [,column] ...)]
VALUES(value_list)[,(value_list)] ... # value 后面的列的个数和类型,要和表结构匹配value_list: value,[,value] ...
示例

(1) 单行数据全列插入
插入记录时,值的数量必须与表定义的列数量及顺序一致,类型匹配;
mysql> create table student(id int , name varchar(20));
Query OK, 0 rows affected (0.09 sec)mysql> insert into student value(1, '小雷');
Query OK, 1 row affected (0.02 sec)mysql> select*from student;
+------+--------+
| id | name |
+------+--------+
| 1 | 小雷 |
+------+--------+
1 row in set (0.00 sec)
注意:
- 按向上的方向键可以查看之前输入的 SQL 指令;
- 需要确保,创建数据库的时候,指定了字符集是utf8 / gbk 等能支持中文的字符集,比如 mysql 5,默认的字符集是拉丁文;因此,如果发现插入的中文数据出现报错,大概率是创建数据库的时候没有正确指定字符集。
- 值的数量必须与表定义的列数量及顺序不一致:
mysql> insert into student value(2);
ERROR 1136 (21S01): Column count doesn't match value count at row 1
- 插入的类型与表结构不匹配:
mysql> insert into student value('小美', 2);
ERROR 1366 (HY000): Incorrect integer value: '小美' for column 'id' at row 1
mysql> insert into student value('100',200);
Query OK, 1 row affected (0.01 sec)mysql> select*from student;
+------+--------+
| id | name |
+------+--------+
| 1 | 小雷 |
| 100 | 200 |
+------+--------+
2 rows in set (0.00 sec)
之前定义的列 list (int ,varchar),为什么此时可以成功插入 value('100' , 200) 呢?
解析:隐式类型转换
SQL 中的类型系统,和 Java 差异很大,上述插入数据的时候,value :
- 第一列写的是字符串类型 '100' ,但是会尝试自动转成 int,'100' => 100
- 第二列写的是整数类型 200 ,会尝试自动转成字符串,200 => '200'
- 之前插入 value('小美' , 2) 插入失败的原因是把' 小美 ' 尝试转成 int ,转换失败,就无法完成插入;
隐式类型转换在 Java 中是非常排斥的,但是 SQL 支持;
- 比较支持隐式类型转换,称为"弱类型系统”
- 不太支持隐式类型转换,称为"强类型系统”
拓展:关于类型转换,这里引入了 "弱类型系统” 和 "强类型系统” 两个新名词,除此之外,两个类型系统,动态类型和静态类型,但是这两组类型其实是互不相关的概念:
- 动态类型:程序运行过程中,一个变量的类型,是可以改变的:Python, js, Ruby, PHP.....
- 静态类型:程序运行过程中,变量的类型不能改变:C,C++,Java
如果 ' 0 ' 通过隐式类型转换,转换的是 0,而不是ASCII码值,因为'0'是一个字符串,而不是一个字符;
mysql> insert into student value('000',200);
Query OK, 1 row affected (0.00 sec)mysql> select*from student;
+------+--------+
| id | name |
+------+--------+
| 1 | 小雷 |
| 0 | 200 |
+------+--------+
3 rows in set (0.00 sec)
value 后面插入的是整数/浮点数,直接插入即可,如果是字符串,需要使用" "或者' '引起来
(2) 单行数据指定列插入

mysql> insert into student(name) value('小美');
Query OK, 1 row affected (0.01 sec)mysql> select*from student;
+------+--------+
| id | name |
+------+--------+
| 1 | 小雷 |
| NULL | 小美 |
+------+--------+
4 rows in set (0.00 sec)
NULL 在 sql 中表示 “空”,这个单元格里啥都没写;
插入记录时,值的数量必须与指定列数量及顺序一致:
mysql> insert into student(name, id) value('小雷',666);
Query OK, 1 row affected (0.00 sec)mysql> select*from student;
+------+--------+
| id | name |
+------+--------+
| 1 | 小雷 |
| NULL | 小美 |
| 666 | 小雷 |
+------+--------+
5 rows in set (0.00 sec)
(3) 多行数据指定列插入

mysql> insert into student(id, name) values (4, '小帅'), (5, '小明');
Query OK, 2 rows affected (0.13 sec)
Records: 2 Duplicates: 0 Warnings: 0mysql> select*from student;
+------+--------+
| id | name |
+------+--------+
| 4 | 小帅 |
| 5 | 小明 |
+------+--------+
7 rows in set (0.01 sec)
mysql 是一个"客户端-服务器"结构的程序;
现在我们要插入三条记录,可以一次插入一行,分三个 SQL 完成,也可以一次插入三行,一个 SQL 完成;这两种做法的差别是非常明显的:
如果插入一行,分三次SQL完成,就会涉及到三次客户端和服务器的交互过程;
一次插入三行,一次SQL完成,则只需要进行一次客户端服务器交互即可;
一个 sql 包含的数据多少,不是主要矛盾;除非数据差异太大了,可能有明显影响,如果只是差了几条,区别是不大的;所以客户端-服务器交互过程中,交互的次数越多,整体的开销就越大,花的时间就越长。
上述讨论的,一次插入多行,一次指定列插入,是可以配合使用的:
mysql> insert into student (name) values ('小雷'),('小美'),('小花');
Query OK, 3 rows affected (0.01 sec)
Records: 3 Duplicates: 0 Warnings: 0mysql> select*from student;
+------+--------+
| id | name |
+------+--------+
| NULL | 小雷 |
| NULL | 小美 |
| NULL | 小花 |
+------+--------+
10 rows in set (0.00 sec)
(4) 插入时间日期
mysql> create table mytime(time datetime);
Query OK, 0 rows affected (0.17 sec)mysql> insert into mytime values('2025-01-23 11:34:00'); #注意插入的时间格式
Query OK, 1 row affected (0.02 sec)mysql> select*from mytime;
+---------------------+
| time |
+---------------------+
| 2025-01-23 11:34:00 |
+---------------------+
1 row in set (0.00 sec)
有的时候插入的时间日期,希望就是"当前时刻";SQL 作为一个编程语言,也支持一些库函数
mysql> insert into mytime values(now()); # now() -> 获取到当前的时间日期.
Query OK, 1 row affected (0.01 sec)mysql> select*from mytime;
+---------------------+
| time |
+---------------------+
| 2025-01-23 11:40:08 |
+---------------------+
2 rows in set (0.00 sec)


相关文章:
【MySQL — 数据库增删改查操作】深入解析MySQL的create insert 操作
数据库CRUD操作 1 CRUD简介 CURD是对数据库中的记录进行基本的增删改查操作: 2. Create 新增 语法 INSERT [INTO] table_name[(column [,column] ...)] VALUES(value_list)[,(value_list)] ... # value 后面的列的个数和类型,要和表结构匹配…...
每日OJ_牛客_小红的子串_滑动窗口+前缀和_C++_Java
目录 牛客_小红的子串_滑动窗口前缀和 题目解析 C代码 Java代码 牛客_小红的子串_滑动窗口前缀和 小红的子串 描述: 小红拿到了一个长度为nnn的字符串,她准备选取一段子串,满足该子串中字母的种类数量在[l,r]之间。小红想知道&…...
HTTP 配置与应用(局域网)
想做一个自己学习的有关的csdn账号,努力奋斗......会更新我计算机网络实验课程的所有内容,还有其他的学习知识^_^,为自己巩固一下所学知识,下次更新HTTP 配置与应用(不同网段)。 我是一个萌新小白…...
ultralytics 是什么?
ultralytics 是一个用于计算机视觉任务的 Python 库,专注于提供高效、易用的目标检测、实例分割和图像分类工具。它最著名的功能是实现 YOLO(You Only Look Once) 系列模型,特别是最新的 YOLOv8。 1. YOLO 是什么? YO…...
AI竞争:从技术壁垒到用户数据之争
标题:AI竞争:从技术壁垒到用户数据之争 文章信息摘要: AI市场呈现开放模型与封闭模型并存的双轨发展态势,但核心竞争力已从模型技术转向用户数据积累和使用习惯培养。商业模式正在多元化发展,从早期的价格战转向subsc…...
MySQL 主从复制(单组传统复制,GTID复制。双主复制)
案例环境 单组复制 master: 192.168.180.143 slave01:192.168.180.144 双组复制 master01:192.168.180.143 master02:192.168.180.144 案例过程 准备工作 关闭所有防火墙 setenforce 0 && systemctl stop firewa…...
python学opencv|读取图像(四十)掩模:三通道图像的局部覆盖
【1】引言 前序学习了使用numpy创建单通道的灰色图像,并对灰色图像的局部进行了颜色更改,相关链接为: python学opencv|读取图像(九)用numpy创建黑白相间灰度图_numpy生成全黑图片-CSDN博客 之后又学习了使用numpy创…...
vue3 中如何监听 props 中的值的变化
在 Vue 3 中,你可以使用 watch 函数来监听组件的 props 值的变化。watch 函数允许你观察一个或多个响应式数据源,并在这些数据源发生变化时执行回调函数。 以下是一个示例,展示了如何在 Vue 3 中使用 watch 来监听 props 中的值的变化&#…...
Scrapy之一个item包含多级页面的处理方案
目标 在实际开发过程中,我们所需要的数据往往需要通过多个页面的数据汇总得到,通过列表获取到的数据只有简单的介绍。站在Scrapy框架的角度来看,实际上就是考虑如何处理一个item包含多级页面数据的问题。本文将以获取叶子猪网站的手游排行榜及…...
hive 自动检测、自动重启、记录检测日志、自动清理日志
最终效果 定时检测hive运行状态,进程不存在或者进程存在但是不监听端口的hiveserver2,自动重新拉起每次检测脚本执行的日志都会保存在log目录下.check文件,每一个月一个文件每月15日,删除2月前的检测日志开启hive自带日志输出后&…...
HFSS同轴替换波端口
波端口仿真正常 将波端口换成内径内径0.3mm外径0.6mm同轴之后 结果很不对 换成下面的尺寸就好了...
【2024年华为OD机试】 (C卷,100分)- 素数之积(JavaScriptJava PythonC/C++)
一、问题描述 RSA 因数分解问题 题目描述 RSA 加密算法在网络安全世界中无处不在,它利用了极大整数因数分解的困难度。数据越大,安全系数越高。给定一个 32 位正整数,请对其进行因数分解,找出是哪两个素数的乘积。 输入描述 …...
【C++模板】:如何判断自定义类型是否实现某个函数
一、引子 偶尔我们会面对这样的尴尬的场景,我们需要显示的去判断在某个自定义类型中,是否已经提供了我们期待的API接口,以避免产生“莫须有”的错误。阁下该如何破解此问题! 这里,直接给出一种通用的方法,…...
基于微信小程序的汽车保养系统设计与实现(LW+源码+讲解)
专注于大学生项目实战开发,讲解,毕业答疑辅导,欢迎高校老师/同行前辈交流合作✌。 技术范围:SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:…...
电子应用设计方案102:智能家庭AI鱼缸系统设计
智能家庭 AI 鱼缸系统设计 一、引言 智能家庭 AI 鱼缸系统旨在为鱼类提供一个健康、舒适的生活环境,同时为用户提供便捷的管理和观赏体验。 二、系统概述 1. 系统目标 - 自动维持水质稳定,包括水温、酸碱度、硬度和溶氧量等关键指标。 - 智能投食&…...
【Elasticsearch】RestClient操作文档
RestClient操作文档 新增文档实体类API语法 查询文档删除文档修改文档批量导入文档小结 新增文档 将数据库中的信息导入elasticsearch中 以商品数据为例 实体类 定义一个索引库结构对应的实体。 Data ApiModel(description "索引库实体") public class ItemDoc{…...
内存条的构造、原理及性能参数
内存条的构造、原理及性能参数 一、内存条的构造1.1 外观结构1.1.1 芯片:大脑1.1.2 PCB板:骨架1.1.3 金手指:接口1.1.4 电容电阻:稳压、稳流1.1.5 防呆缺口:防错 1.2 内部层次结构 二、内存条的工作原理2.1 数据的“搬…...
鸿蒙模块概念和应用启动相关类(HAP、HAR、HSP、AbilityStage、UIAbility、WindowStage、window)
目录 鸿蒙模块概念 HAP entry feature har shared 使用场景 HAP、HAR、HSP介绍 HAP、HAR、HSP开发 应用的启动 AbilityStage UIAbility WindowStage Window 拉起应用到显示到前台流程 鸿蒙模块概念 HAP hap包是手机安装的最小单元,1个app包含一个或…...
SQLark 百灵连接工具便捷功能之生成数据库测试数据
参考此文: SQLark百灵连接工具--数据生成...
ChirpIoT技术的优势以及局限性
ChirpIoT是一种由上海磐启微电子开发的国产无线射频通讯技术,ChirpIoT技术基于磐启多年对雷达等线性扩频信号的深入研究,并在此基础上对线性扩频信号的变化进行了改进,实现了远距离传输的一种无线通信技术。相关产品型号有E29-400T22D、E290-…...
2026届最火的降重复率工具实际效果
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 维普平台针对AIGC技术的引入,制定了严谨的检测规范,在当前学术场景里…...
新手入门指南:在快马平台上通过openclaw切换模型理解ai编程差异
作为一个刚开始接触AI编程的新手,我最近在InsCode(快马)平台上尝试了openclaw切换模型的功能,发现这个功能特别适合用来理解不同AI模型的代码生成特点。整个过程就像有个耐心的老师在旁边手把手教学,完全不需要任何编程基础就能上手。下面我就…...
2026届最火的五大降AI率网站实际效果
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 现当下各种AI检测工具正变得越发普及,要是用户所提交的文本被判定为有着高AI生成…...
怎么把webp转换成png?4种方法,新手也能零失误
在日常工作和生活中,webp转换成png挺实用的。比如PNG是无损压缩,还能保留透明背景,做图标、按钮、PPT配图都合适;而WebP虽然压缩效率高、省空间,但很多软件不兼容,像一些老版PS、办公软件,打开W…...
黑马点评-“附近商户“功能无法实现
问题分析 由于Redis版本不够,因此我们使用不了GEOSEARCH命令(Redis 6.2.0 或更高版本) 需要升级Redis版本 下载高版本Redis Redis8.6.2点此下载 后缀的区别: 带有 -with-Service vs 不带 with-Service: 包含了将 Redis 注册为 Windows 系统后台服务的相关…...
PyInstaller Extractor完全指南:从可执行文件到Python源代码的高效提取方案
PyInstaller Extractor完全指南:从可执行文件到Python源代码的高效提取方案 【免费下载链接】pyinstxtractor PyInstaller Extractor 项目地址: https://gitcode.com/gh_mirrors/py/pyinstxtractor 问题引入:当你遇到无法打开的Python可执行文件时…...
异步电机spwm变频仿真Matlab/simulink,三相逆变桥使用开关switch
异步电机spwm变频仿真Matlab/simulink,三相逆变桥使用开关switch在电力系统中,异步电机是一种非常重要的执行器,广泛应用于各种工业控制场景。而SPWM(空间相量调制)变频控制是一种高精度、高效率的调速控制方式&#x…...
重塑暗黑2单机体验:d2s-editor 3大革新功能与技术解析
重塑暗黑2单机体验:d2s-editor 3大革新功能与技术解析 【免费下载链接】d2s-editor 项目地址: https://gitcode.com/gh_mirrors/d2/d2s-editor d2s-editor 是一款开源的暗黑2存档编辑工具,通过直观的图形界面实现角色属性调整、装备管理和高级合…...
downkyi全链路解决方案:从视频获取到专业处理的一站式视频工作流指南
downkyi全链路解决方案:从视频获取到专业处理的一站式视频工作流指南 【免费下载链接】downkyi 哔哩下载姬downkyi,哔哩哔哩网站视频下载工具,支持批量下载,支持8K、HDR、杜比视界,提供工具箱(音视频提取、…...
BROADCOM博通集成 Matter 1.5平台认证就绪、BK7239N等芯片助力智能家居无缝融合
博通集成多款Wi-Fi SoC的Matter SDK平台已全面完成对Matter v1.5标准的支持,并通过Matter兼容性平台认证。此举标志着Beken芯片方案持续可为客户提供“开箱即用”的Matter开发体验,助力设备制造商高效推出符合最新统一标准的智能产品。随着Matter生态的快…...



