【重学 MySQL】五十、添加数据

【重学 MySQL】五十、添加数据

  • 使用INSERT INTO语句添加数据
    • 基本语法
    • 示例
    • 插入多行数据
    • 注意事项
  • 使用LOAD DATA INFILE语句批量添加数据
  • 其他插入数据的方式
  • 注意事项

在这里插入图片描述
在MySQL中,添加数据是数据库操作中的基本操作之一。

使用INSERT INTO语句添加数据

使用 INSERT INTO 语句是向 MySQL 数据库表中添加数据的最基本和最常用的方法之一。

基本语法

INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);
  • table_name 是你想要插入数据的表的名称。
  • (column1, column2, column3, ...) 是你想要插入数据的列的名称。这些列名必须用逗号分隔,并且列名的顺序不重要,但必须与 VALUES 子句中值的顺序相匹配。
  • VALUES (value1, value2, value3, ...) 是你要插入的相应列的值。这些值也必须用逗号分隔,并且值的顺序必须与列名的顺序相匹配。

示例

假设你有一个名为 employees 的表,结构如下:

CREATE TABLE employees (id INT AUTO_INCREMENT PRIMARY KEY,first_name VARCHAR(50),last_name VARCHAR(50),email VARCHAR(100),hire_date DATE
);

你想要向这个表中插入一条新记录。你可以使用如下的 INSERT INTO 语句:

INSERT INTO employees (first_name, last_name, email, hire_date)
VALUES ('John', 'Doe', 'john.doe@example.com', '2023-10-01');

这条语句将向 employees 表中插入一条新记录,其中 first_name 列为 ‘John’,last_name 列为 ‘Doe’,email 列为 ‘john.doe@example.com’,hire_date 列为 ‘2023-10-01’。由于 id 列是 AUTO_INCREMENT,它会自动生成一个唯一的值。

插入多行数据

你也可以一次性插入多行数据,如下所示:

INSERT INTO employees (first_name, last_name, email, hire_date)
VALUES 
('Jane', 'Smith', 'jane.smith@example.com', '2023-10-02'),
('Alice', 'Johnson', 'alice.johnson@example.com', '2023-10-03');

这条语句将向 employees 表中插入两行新记录。

注意事项

  1. 列名可选:如果你为所有列提供了值,并且值的顺序与表中列的顺序完全一致,你可以省略列名。但是,这通常不推荐,因为这样做会降低 SQL 语句的可读性,并且如果表结构发生变化,SQL 语句可能会出错。

  2. 数据类型匹配:确保你插入的值与列的数据类型相匹配。例如,不要将字符串插入到整数列中。

  3. 处理约束:如果你的表有约束(如主键约束、唯一约束、非空约束等),确保你插入的数据不违反这些约束。

  4. 使用事务:如果你的操作涉及多条 INSERT 语句,并且你需要确保它们要么全部成功,要么全部失败,你可以考虑使用事务。

  5. 安全性:在将用户输入的数据插入到数据库之前,始终要进行适当的验证和清理,以防止 SQL 注入攻击。

通过遵循这些步骤和注意事项,你可以有效地使用 INSERT INTO 语句向 MySQL 数据库表中添加数据。

使用LOAD DATA INFILE语句批量添加数据

当需要快速地从文件中加载大量数据到表中时,可以使用LOAD DATA INFILE语句。语法如下:

LOAD DATA INFILE 'filename.csv' INTO TABLE table_name
FIELDS TERMINATED BY ',' ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 ROWS;

其中,filename.csv是要加载的文件名,table_name是要将数据插入的目标表,FIELDS TERMINATED BY ','指定字段分隔符,ENCLOSED BY '"'指定字段值被引号包围,LINES TERMINATED BY '\n’指定行分隔符,IGNORE 1 ROWS用于忽略文件中的标题行。

示例:

假设有一个名为users的表,且已经准备好一个名为data.csv的CSV文件,内容如下:

name,age,email
Alice,25,alice@example.com
Bob,30,bob@example.com

可以使用以下SQL语句将数据从data.csv文件中加载到users表中:

LOAD DATA INFILE 'data.csv' INTO TABLE users
FIELDS TERMINATED BY ',' ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 ROWS;

其他插入数据的方式

  1. INSERT INTO SELECT

    从一个表中选择数据并插入到另一个表中。语法如下:

    INSERT INTO table_name1 (column1, column2, ...)
    SELECT columnA, columnB, ...
    FROM table_name2
    WHERE condition;
    
  2. INSERT IGNORE

    当存在主键冲突或其他约束时,忽略此次插入操作。语法与基本的INSERT INTO相同,只是在INSERT后加上IGNORE关键字。

  3. REPLACE INTO

    如果主键存在,则替换已有记录,否则插入新记录。语法与基本的INSERT INTO类似,只是在INSERT后加上REPLACE关键字。

  4. INSERT INTO … ON DUPLICATE KEY UPDATE

    当主键冲突时执行更新操作,否则执行插入。语法如下:

    INSERT INTO table_name (column1, column2, ..., unique_key_column)
    VALUES (value1, value2, ..., unique_value)
    ON DUPLICATE KEY UPDATE column1=value1, column2=value2, ...;
    

注意事项

  1. 在插入数据之前,请确保已经连接到MySQL数据库,并且选择了要操作的数据库。
  2. 插入的数据必须与目标表的列类型和约束相匹配。如果插入的数据出现错误,MySQL将会返回错误消息。
  3. 对于LOAD DATA INFILE语句,需要确保MySQL服务器对指定文件有读取权限,且文件路径对于MySQL服务器是可访问的。如果文件位于服务器本地,可以使用相对路径或绝对路径;如果文件位于远程服务器,需要先将文件上传到MySQL服务器可访问的路径下。

通过以上方式,可以在MySQL数据库中方便地添加数据。在实际应用中,可以根据具体需求选择合适的数据插入方式。

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

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

相关文章

GPT系列

GPT(Generative Pre-Training): 训练过程分两步:无监督预训练有监督微调 模型结构是decoder-only的12层transformer 1、预训练过程,窗口为k,根据前k-1个token预测第k个token,训练样本包括700…

配置静态ip

背景:因业务需要需要将一台服务器从机房搬到实验室,机房是光纤,实验室是网线,需要重新配置下静态ip 确认网络配置文件(网上没找到,不清楚一下方法对不对) 先随便一个网口连接网线,执行 ifconfig -a 找到带“RUNNING”的(lo不是哈)----eno1 到/etc/sysconfig/network…

ansible 剧本模式

目录 1.剧本格式 ​编辑​编辑2.案例1创建目录分发文件剧本 2.1剧本中用到的命令 2.2书写具体剧本 3.案例2 分发 安装软件包 启动服务的剧本 3.1下载软件包 3.2用yum安装 3.3启动服务 4.找出ansible中对应的模块 5.剧本实现 4.ansible 剧本变量 4.1常用的…

YOLO11涨点优化:注意力魔改 | 轻量级自注意力机制CoordAttention | CVPR2021

💡💡💡本文改进内容:CoordAttention优势,不仅会考虑输入的特征信息,还会考虑每个像素点的位置信息,从而更好地捕捉空间上的局部关系和全局关系。 💡💡💡本文改进:分别加入到YOLO11的backbone、neck、detect,助力涨点 改进1结构图: 改进2结构图: 改进3结构

【HTTPS】深入解析 https

我的主页:2的n次方_ 1. 背景介绍 在使用 http 协议的时候是不安全的,可能会出现运营商劫持等安全问题,运营商通过劫持 http 流量,篡改返回的网页内容,例如广告业务,可能会通过 Referer 字段 来统计是…

【Java】—— 泛型:泛型的理解及其在集合(List,Set)、比较器(Comparator)中的使用

目录 1. 泛型概述 1.1 生活中的例子 1.2 泛型的引入 2. 使用泛型举例 2.1 集合中使用泛型 2.1.1 举例 2.1.2 练习 2.2 比较器中使用泛型 2.2.1 举例 2.2.2 练习 1. 泛型概述 1.1 生活中的例子 举例1:中药店,每个抽屉外面贴着标签 举例2&…

图示详解OpenEuler下 DNS安装、配置与测试

前言 DNS配置内容、步骤、参数较多,初学者很难短时间掌握,另外,理解DNS工作原理也有一定的难度,一次配置成功的概率不大,因此,建议在配置DNS之前,先读一下之前笔者的博文《详解DNS工作原理及实…

(20)MATLAB使用卡方(chi-square)分布生成Nakagami-m分布

文章目录 前言一、使用卡方分布函数生成Nakagami分布随机变量二、MATLAB仿真1.仿真代码2.运行结果 前言 Nakagami分布随机变量的生成,可以使用gamma分布实现,也可以使用卡方(chi-square)分布随机变量生成。使用伽马(g…

120页满分PPT | 企业级业务架构和IT架构规划方案

方案内容综述 方案涵盖了从战略分析到具体实施路径的内容。提出了IT架构规划的工作思路,包括项目启动、部门访谈、资料收集、内部数据库搜索与先进实践研究等步骤,旨在通过这些步骤完成现状及差距分析,并基于此设计未来的应用架构、数据架构…

算法:724.寻找数组的中心下标

题目 链接:leetcode链接 思路分析(前缀和) 根据题意,我们可以将数组看成三个部分 [left] [mid] [right] 我们只需要[left]区间内的元素和等于[right]区间的元素和即可,此时mid就是中心下标 那么我们可以借助前缀和思…

鸿蒙开发之ArkUI 界面篇 二十 position绝对定位及层级zIndex

position控制组件的位置,可以实现层叠效果,Android中的FramLayout,通常用在左上角有些图标之类,绝对定位后的组件不占用自身原有位置,每个子组件都有这个属性,只是不用这个属性的时候不起作用,.zIndex()属性要和positi…

微服务——分布式事务

目录 分布式事务 1.1分布式事务的特性 1.2分布式事务应用背景 ​编辑 1.3.认识Seata 1.4部署TC服务 1.4.1.准备数据库表 1.4.2.准备配置文件 1.4.3.Docker部署 1.5.微服务集成Seata 1.5.1.引入依赖 1.5.2.改造配置 1.5.3.添加数据库表 ​编辑1.6.XA模式 1.6.1.两…

聊聊Mysql的MVCC

1 什么是MVCC? MVCC,是Multiversion Concurrency Control的缩写,翻译过来是多版本并发控制,和数据库锁一样,他也是一种并发控制的解决方案。 我们知道,在数据库中,对数据的操作主要有2种&#…

【数据结构 | PTA】表

文章目录 7-1 重排链表7-2 链表去重7-3 两个有序链表序列的合并7-4 两个有序链表序列的交集 7-1 重排链表 输入格式: 每个输入包含1个测试用例。每个测试用例第1行给出第1个结点的地址和结点总个数,即正整数N (≤105)。结点的地址是5位非负整数&#xff…

K8s持久化存储PV和PVC(通俗易懂)

一、PV和PVC的引入 Volume 提供了非常好的数据持久化方案,不过在可管理性上还有不足。 拿前面 AWS EBS 的例子来说,要使用 Volume,Pod 必须事先知道如下信息: 当前 Volume 来自 AWS EBS。EBS Volume 已经提前创建,并且知道确切的 volume-id。Pod 通常是由应用的开发人员…

Linux安装配置Jupyter Lab并开机自启

文章目录 1、安装配置jupyter lab首先需要使用pip3安装:生成配置文件和密码: 2、设置开机自启首先通过which jupyter查询到可执行文件路径:设置自启服务: 1、安装配置jupyter lab 首先需要使用pip3安装: pip3 instal…

细说机器学习和深度学习

背景 平常业务开发中每天都要接触到机器学习和深度学习的概念,在听了很多大佬的普及后,发现甚是有趣。于是小编想着着手开始学习这部分的内容。 那废话不多说,就从最基础的机器学习和神经网络开始~ 一、机器学习基础 1、机器学习是什么&a…

2024 uniapp入门教程 01:含有vue3基础 我的第一个uniapp页面

uni-app官网uni-app,uniCloud,serverless,快速体验,看视频,10分钟了解uni-app,为什么要选择uni-app?,功能框架图,一套代码,运行到多个平台https://uniapp.dcloud.net.cn/ 准备工作:HBuilder X 软件 HBuilder X 官网下载&#xf…

职场上的人情世故,你知多少?这五点一定要了解

职场是一个由人组成的复杂社交网络,人情世故在其中起着至关重要的作用。良好的人际关系可以帮助我们更好地融入团队,提升工作效率,甚至影响职业发展。在职场中,我们需要了解一些关键要素,以更好地处理人际关系&#xf…

泛微流程隐藏按钮

隐藏右键菜单的按钮 控制台输入 mobx.toJS(WfForm.getGlobalStore().rightMenu.rightMenus) 获取相对应 type在js中进行隐藏 ecodeSDK.overwritePropsFnQueueMapSet(WeaRightMenu,{ //复写组件名隐藏菜单fn:(newProps)>{ //newProps代表组件参数newProps.datas newProps.…