【重学 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.rhkb.cn/news/439190.html

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

相关文章

突发!Meta重磅发布Movie Gen入局视频生成赛道!

引言 Meta于2024年10月4日首次推出 Meta Movie Gen,号称是迄今为止最先进的媒体基础模型。Movie Gen 由 Meta 的 AI 研究团队开发,在一系列功能上获取最先进的效果,包括:文生视频、创建个性化视频、精准的视频编辑和音频创作。 …

libcrypto.so.10内容丢失导致sshd无法运行

说明: 我的是centos的服务器,被扫出有ssh漏洞,需要升级到OpenSSH_9.8p1, OpenSSL 3.0.14 4 报错 我的系统和环境升级前的版本 这是升级之后的版本 OpenSSH_9.8p1, OpenSSL 3.0.14 4 解决:我这个的原因是升级的时候把这个文件给删除了, 复制旧服务器上的 libcrypto.so.1…

组合模式详解

1、组合模式基本介绍 1) 组合模式(Composite Pattern),又叫部分整体模式,它创建了对象组的树形结构,将对象组合成树状结构以 表示“整体-部分”的层次关系。 2) 组合模式依据树形结构来组合对象,用来表示部…

使用DS18B20温度传感器读取温度,附STM32代码示例

目录 一、DS18B20温度传感器: (1)描述: (2)特点: (3)引脚图及其定义: (4)使用的DS18B20模块: 二、DS18B20功能命令集…

【电商搜索】现代工业级电商搜索技术-中科院计算机研究所-生成型检索与多级相关性相结合

【电商搜索】现代工业级电商搜索技术-中科院计算机研究所-生成型检索与多级相关性相结合 目录 文章目录 【电商搜索】现代工业级电商搜索技术-中科院计算机研究所-生成型检索与多级相关性相结合目录0. 论文信息1. 摘要2. 研究背景3. 主要挑战4. 创新点5. 算法模型1. **标识符设…

JavaSE——面向对象练习题

1.对象数组排序 定义一个Person类{name,age,job},初始化Person对象数组,有3个person对象,并按照age从小到大进行冒泡排序;再按照name的长度从小到大进行选择排序。 public class HomeWork01 {public static void main(String[] a…

字体文件压缩

技术点 npm、html、font-spider 实现原理 个人理解:先引入原先字体,然后重置字符为空,根据你自己填充文字、字符等重新生成字体文件,因此在引入的时候务必添加自己使用的文字、字符等!!! 实…

PY32F002B

墨水屏: 前景和背景 在屏幕和图像处理中,前景和背景是两个重要的概念: 前景(Foreground): 指的是图像或屏幕上最显著的部分,通常是用户关注的主要内容。例如,在一张照片中&#xf…

10.3学习

1.循环依赖 循环依赖其实就是循环引用,也就是两个或者两个以上的 Bean 互相持有对方,最终形成闭环。比如A 依赖于B,B又依赖于A Spring中循环依赖场景有: prototype 原型 bean循环依赖 构造器的循环依赖(构造器注入)…

PIKACHU | PIKACHU 靶场 XSS 后台配置

关注这个靶场的其他相关笔记:PIKACHU —— 靶场笔记合集-CSDN博客 PIKACHU 自带了一个 XSS 平台,可以辅助我们完成 XSS 攻击,但是该后台需要配置数据库以后才能使用。本教程,就是教大家如何配置 PIKACHU XSS 平台的。 PIKACHU XS…

资源《Arduino 扩展板4-单游戏摇杆》说明。

资源链接: Arduino 扩展板4-单游戏摇杆 1.文件明细: 2.文件内容说明 包含:AD工程、原理图、PCB。 3.内容展示 4.简述 该文件为PCB工程,采用AD做的。 该文件打板后配合Arduino使用,属于Arduino的扩展板。 该文件…

深度学习的应用综述

文章目录 引言深度学习的基本概念深度学习的主要应用领域计算机视觉自然语言处理语音识别强化学习医疗保健金融分析 深度学习应用案例公式1.损失函数(Loss Function) 结论 引言 深度学习是机器学习的一个子领域,通过模拟人脑的神经元结构来处理复杂的数据。近年来&…

k8s实战-2

k8s实战-2 一、Deployment1.多副本2.扩缩容3.自愈&故障转移4.滚动更新5.版本回退 二、Service1.ClusterIP2.NodePort 总结 一、Deployment Deployment 是 k8s 中的一个资源对象,用于管理应用的副本(Pods)。它的主要作用是确保集群中运行…

【Linux】进程替换、命令行参数及环境变量(超详解)

目录 进程替换 替换函数的含义 命令行参数 环境变量 PATH 进程替换 我们先看代码&#xff1a; 1 #include<stdio.h>2 #include<unistd.h>3 int main()4 {5 printf("process...begin!\n");6 7 execl("/usr/bin/ls","ls"…

论文翻译 | Model-tuning Via Prompts Makes NLP Models Adversarially Robust

摘要 近年来&#xff0c;NLP从业者集中于以下实践:(i)导入现成的预训练(掩码)语言模型;(ii)在CLS令牌的隐藏表示(随机初始化权重)上附加多层感知器;(iii)在下游任务(MLP-FT)上微调整个模型。这一过程在标准的NLP基准上产生了巨大的收益&#xff0c;但这些模型仍然很脆弱&#x…

尝试从 http://pypi.doubanio.com/simple 这个索引源安装 webdriver 时出现了问题

问题如下&#xff1a; WARNING: The repository located at pypi.doubanio.com is not a trusted or secure host and is being ignored. If this repository is available via HTTPS we recommend you use HTTPS instead, otherwise you may silence this warning and allow …

从介质失效看互联网时代的信息过载

来读一篇文章&#xff1a;90年代的硬盘已大规模变砖&#xff0c;没啥好担心的&#xff0c;好事。 结合我两年前的粗浅认知 互联网时代无信息&#xff0c;按照 “动” 的观念看&#xff0c;当信息越来越多&#xff0c;信息密度越来越大时&#xff0c;信息的寿命就会越来越短&am…

离线安装docker

背景描述 项目需要在研发环境虚拟机上安装docker部署应用。 所在的服务器是一个内网&#xff0c;无法访问到外网环境。 服务器OS版本是 麒麟V10 linux 安装docker 安装包下载 获取所需版本的docker binary包&#xff0c;官方链接https://download.docker.com/linux/stati…

CoRL 2024 麻省理工学院提出T3触觉Transformer,打破触觉感知的壁垒,重塑未来机器人

在智能机器人领域&#xff0c;触觉感知的研究正逐渐成为关注的焦点。然而&#xff0c;如何让机器人通过触觉更智能地感知和操作&#xff0c;依然是一个未解决的挑战。基于相机的触觉感知是一种通过在软弹性体下嵌入相机来捕获与环境的细粒度交互的感知方法&#xff0c;是最流行…

[Python学习日记-39] 闭包是个什么东西?

[Python学习日记-39] 闭包是个什么东西&#xff1f; 简介 闭包现象 闭包意义与作用 简介 在前面讲函数和作用域的时候应该提到过&#xff0c;当函数运行结束后会由 Python 解释器自带的垃圾回收机制回收函数内作用域已经废弃掉的变量&#xff0c;但是在 Python 当中还有一种…