0


〖Python 数据库开发实战 - MySQL篇㉔〗- 数据插入操作 - INSERT语句


万叶集🎉 隐约雷鸣,阴霾天空。 🎉🎉 但盼风雨来,能留你在此。 🎉


前言
✌ 作者简介:渴望力量的哈士奇 ✌,大家可以叫我 🐶哈士奇🐶 ,一位致力于 TFS - 全栈 赋能的博主 ✌
🏆 CSDN博客专家认证、新星计划第三季全栈赛道 MVP 、华为云享专家、阿里云专家博主 🏆
📫 如果文章知识点有错误的地方,请指正!和大家一起学习,一起进步👀
💬 人生格言:优于别人,并不高贵,真正的高贵应该是优于过去的自己。💬
🔥 如果感觉博主的文章还不错的话,还请👍关注、点赞、收藏三连支持👍一下博主哦


专栏系列(点击解锁)学习路线(点击解锁)知识定位 🔥Python全栈白皮书🔥 零基础入门篇 以浅显易懂的方式轻松入门,让你彻底爱上Python的魅力。 语法进阶篇 主要围绕多线程编程、正则表达式学习、含贴近实战的项目练习 。 自动化办公篇 实现日常办公软件的自动化操作,节省时间、提高办公效率。 自动化测试实战篇 从实战的角度出发,先人一步,快速转型测试开发工程师。 数据库开发实战篇 掌握关系型与非关系数据库知识,提升数据库实战开发能力。 爬虫入门与实战 更新中 数据分析篇 更新中 前端入门+flask 全栈篇 更新中 django+vue全栈篇 更新中 拓展-人工智能入门 更新中 网络安全之路 踩坑篇 记录学习及演练过程中遇到的坑,便于后来居上者 网安知识扫盲篇 三天打鱼,不深入了解原理,只会让你成为脚本小子。 vulhub靶场漏洞复现 让漏洞复现变得简单,让安全研究者更加专注于漏洞原理本身。 shell编程篇 不涉及linux基础,最终案例会偏向于安全加固方向。 [待完结] WEB漏洞攻防篇 2021年9月3日停止更新,转战先知社区等安全社区及小密圈 渗透工具使用集锦 2021年9月3日停止更新,转战先知社区等安全社区及小密圈 点点点工程师 测试神器 - Charles 软件测试数据包抓包分析神器 测试神器 - Fiddler 一文学会 fiddle ,学不会倒立吃翔,稀得! 测试神器 - Jmeter 不仅是性能测试神器,更可用于搭建轻量级接口自动化测试框架。 RobotFrameWork Python实现的自动化测试利器,该篇章仅介绍UI自动化部分。 Java实现UI自动化 文档写于2016年,Java实现的UI自动化,仍有借鉴意义。该工具目前的应用场景已不多,文档已删,为了排版好看才留着。


在这里插入图片描述


文章目录

前面我们用了很多章节去学习了 “查询语句” ,这是因为以后在实际工作中,“增”、“删”、“改”、“查” 这四种类型的 SQL 语句操作使用最多的就是 “查询语句”。而且在大多数软件当中,都是 “读多写少” 的,查询的条件也是各种各样,所以在 “查询” 相关的操作就刻意的将各个部分的知识点分门别类的加强了一下。在实际工作后就可以体会得到,我们所接触的查询语句,已经能够应对大部分的业务要求了。

在该章节,我们就爱那个学习心得 “DML” 语句,那就是向数据表中写入数据记录 —> “INSERT 语句”。

🐳 INSERT 语句

  • “INSERT” 语句可以向数据表中写入记录,可以是一条记录,也可以是多条记录。
  • 在 "INSERT" 语句上,MySQL 比 Oracle 还是有优势的,那就是 MySQL 可以写入一条记录,也可以写入多条记录
  • 需要注意的是:不管是哪种数据库,一条 SQL 只能向一张数据表中写入数据,不能同时向多张数据表插入数据。

“INSERT” 语法格式:

(插入单条数据)
INSERTINTO 表名 (字段1, 字段2, 字段3,......)VALUES(值1, 值2, 值3,......);
这里有个需要注意的地方,在 "INSERT" 语句执行添加数据信息时,不使用字段的声明也是可以执行的。但是执行的速度是受一定影响的,因为 MySQL 在执行 SQL 语句的时候,会进行 "词法分析" 。当发现表名后面没有字段声明时,就会去查找表结构将字段声明自动的补上。
尤其是在插入大量数据的时候,我们都希望能够快速的写入,但是不写字段的声明 MySQL 真的做不到快速写入。

“INSERT” 语法格式:

(插入多条数据)
INSERTINTO 
    表名 (字段1, 字段2, 字段3,......)VALUES(值1, 值2, 值3,......),(值1, 值2, 值3,......),(......);-- 与插入单条数据记录的区别就在于,VALUES 子句由一条数据,变成了多条数据。-- 依此类推,多少条数据都可以把数据写到数据库里面。

🐬 INSERT 语句演示案例①

  • 使用 "INSERT INTO " 关键字,向部门表中写入数据。(之所以选择 "部门表" 的原因是因为该表的表结构简单,在执行插入数据时字段的描述要简洁一些。

“INSERT” SQL 语句演示案例:

INSERTINTO 
    t_dept(deptno, dname, loc)VALUES(50,"技术部","北京");-- 向 "部门表" 中添加数据 : 部门编号 "50" , 部门名称 "技术部" , 办公地点 "北京"


“INSERT” SQL 语句插入多条数据演示案例:

INSERTINTO 
    t_dept(deptno, dname, loc)VALUES(60,"行政部","北京"),(70,"人事部","北京"),(80,"法务部","北京");-- 向 "部门表" 中添加数据 : -- 部门编号分别为 "60"、"70"、"80"-- 部门名称分别为 "技术部"、"人事部"、"法务部" -- 办公地点都在 "北京"

🐬 INSERT 语句演示案例②

  • 向技术部添加一条员工记录(利用子查询到部门表中查询 "dname" 为 "技术部" 的部门编号,将部门编号写入到 "VALUES" 子句插入到员工表里面)

“INSERT” SQL 语句插入员工表数据演示案例:

INSERTINTO t_emp
    (empno, ename, job, mgr, hiredate, sal, comm, deptno)VALUES(7936,"李四","SALESMAN",8000,"1988-02-02",2000,NULL,(SELECT deptno FROM t_dept WHERE dname="技术部"));

这里我们会发现,其实在 "INSERT" 语句中,还是可以插入子查询的。(子查询就是将查询子句的结果插入到 VALUES 子句中的)
需要注意的是,这个子查询必须得是单行子查询,多行子查询就比较麻烦了,因为多行记录无法充当 VALUES 子句的值;还有就是 "子查询" 返回的字段,必须是一个。

🐳 INSERT 语句方言

  • 什么是方言? 其实就是只能在某一个数据库中执行的语法,不具备通用性。 “MySQL” 的方言,就只能在 “MySQL” 中执行。
  • “MySQL” 中的 “INSERT” 语句的方言语法:INSERTINTO 表名 SET 字段名1=值1, 字段名2=值2, 字段名3=值3, 字段名4=值4....;-- 这种语法更符合逻辑性, 利用 SET 关键字分别对字段进行赋值。-- 需要注意的是,这种语法格式仅适用于 "MySQL" , 无法在其他数据库中使用。---

“INSERT” 语句方言演示案例:

INSERTINTO t_emp
SET empno=7937, ename="王五", job="SALESMAN", mgr=7936, hiredate="1989-12-07", sal=2200, comm=200, deptno=50;-- 利用 SET 关键字,插入员工姓名为 "王五" 的员工信息

这个方言语法,很简洁。甚至可以省略掉 "INTO" 也能执行插入数据成功,大家动手试一试吧。(记得不要插入重复的记录)

🐳 IGNORE 关键字

  • “IGNORE” 是一个特殊的关键字,它代表的是忽略的意思。它会让 “INSERT” 语句忽略掉冲突的记录,只写入不冲突的记录。
  • 主要用于这样的场景:比如说我们使用 "INSERT" 语句 写入很多条记录的时候,有一条数据因为逐渐冲突写入失败。这样就会一条也写不进去,但是如果我们使用了 "IGNORE" 关键字的话,就会忽略掉 "主键冲突" 的记录,从而将其他记录写入数据库。

“IGNORE” 关键字的语法

INSERTIGNOREINTO 表名......;INSERTIGNORE 表名 SET......;-- "IGNORE" 关键字不管是通用语法,还是方言语法,"IGNORE" 关键字都会起到忽略的作用。

“IGNORE” 关键字 SQL 语句演示案例①:

INSERTIGNOREINTO t_dept
SET deptno=40, dname="技术部", loc="北京";-- 插入 "部门编号" 为 40 的部门-- 但是在 "部门表" 中已经存在了 "40" 部门,但是因为我们时用力 "IGNORE" 关键字 ,所以就会忽略这条记录的插入


“IGNORE” 关键字 SQL 语句演示案例②:

INSERTIGNOREINTO t_dept(deptno, dname, loc)VALUES(50,"技术部","北京"),(90,"稽查部","北京");


这里也可以看到,"INSERT" 语句在执行插入的时候,忽略了已经存在的 "50" 部门,直接插入了 "90" 部门。



本文转载自: https://blog.csdn.net/weixin_42250835/article/details/126203391
版权归原作者 不渴望力量的哈士奇 所有, 如有侵权,请联系我们删除。

“〖Python 数据库开发实战 - MySQL篇㉔〗- 数据插入操作 - INSERT语句”的评论:

还没有评论