MySQL数据库 Load Data 多种用法

2023-12-07数据库
42

MySQL是一种流行的开源数据库管理系统,它提供了许多不同的方法来加载数据。其中,Load Data是一种常用的方法,它可以将文件中的数据导入到MySQL表中。本文将详细讲解MySQL数据库Load Data的多种用法,过程中将包含两条示例说明。

Load Data的基本用法

Load Data用于将文件中的数据导入到MySQL表中。可以使用以下命令来加载特定格式的文件:

LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'filename'
[REPLACE | IGNORE]
INTO TABLE tablename
[CHARACTER SET charset_name]
[{FIELDS | COLUMNS}
  [TERMINATED BY '\t']
  [[OPTIONALLY] ENCLOSED BY '']
  [ESCAPED BY '\\' ]
] (field1,field2,...)
[SET col1=expression1, col2=expression2, ...]

其中,一些最常用的参数是:

  • LOW_PRIORITY: 如果正在使用表,Load Data可以将其低优先级的线程,并允许其他进程在该过程结束前访问该表。
  • CONCURRENT: 与LOW_PRIORITY类似,但在该表需要写入时使用该表的一部分。
  • LOCAL: 表示文件是在本地计算机上而不是服务器上,需要将文件复制到服务器上。默认情况下,文件在服务器上进行操作。
  • INFILE: 在MySQL Server上的文件位置。如果使用LOCAL,则是在客户端计算机上的文件位置。
  • REPLACE: 如果相同的主键值在表中已存在,则使用新数据替换旧数据。
  • IGNORE: 如果相同的主键值在表中已经存在,则忽略新数据。
  • INTO TABLE: 将数据导入到指定的表中。
  • CHARACTER SET: 指定字符集。

下面是一个示例,说明如何将tab分隔的文件test.txt导入到MySQL数据库表test中:

LOAD DATA LOCAL INFILE '/path/to/test.txt'
INTO TABLE test
FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\n'

在以上示例中, FILEDS TERMINATED BY '\t' 表示文件中每列之间的分隔符是一个tab键(\t),LINES TERMINATED BY '\n' 表示换行符(\n)将文件中的每行分隔开。

Load Data 可选参数

在Load Data命令中还可以使用可选参数设置如何处理文件中的数据。下面是一些常用的参数:

LOCAL

如果文件在本地计算机上而不是在服务器上,则需要使用LOCAL参数。

REPLACE

如果要用新数据替换表中已经存在的旧数据,则可以使用REPLACE关键字。如果表中不存在相同的主键,则此选项与INSERT操作相同。

IGNORE

使用IGNORE关键字可以忽略表中已经存在的数据。如果表中不存在相同的主键,则此选项与INSERT操作相同。

FIELDS

FIELDS选项是用来控制表中字段的顺序和导入数据的字段数量。你也可以使用SET关键字为表中的每一列分配一个值。示例:

LOAD DATA INFILE 'data.txt' INTO TABLE table1
(FIELD1, FIELD2, FIELD3) 
SET extra_column = 'value';

LINES

LINES选项用于控制读取文件中的哪些行。示例:

LOAD DATA INFILE 'data.txt' INTO TABLE table1
LINES STARTING BY 'xxx'

该命令会忽略所有以‘xxx’为前缀的行。

Load Data示例

下面是一个基于字段载入数据的示例:

首先,文件data.txt 的内容如下:

1, 'Alice', 1234
2, 'Bob', 5678

现在,可以使用如下命令将data.txt文件中的数据载入到数据库表table1中:

LOAD DATA INFILE 'data.txt' INTO TABLE table1 
FIELDS TERMINATED BY ','

其中的 FIELDS TERMINATED BY ',' 用于表示逗号是分隔符。

另一个示例是将以空格作为分隔符的文件读取到数据库表中。假设有如下文件data.txt:

1 Alice 1234
2 Bob 5678

现在,可以使用以下命令将文件data.txt的数据载入到数据库表employee中:

LOAD DATA LOCAL INFILE 'data.txt' INTO TABLE employee
FIELDS TERMINATED BY ' '
LINES TERMINATED BY '\n'

在以上示例中, FILEDS TERMINATED BY ' ' 表示文件中每列之间的分隔符是一个空格,LINES TERMINATED BY '\n' 表示换行符('\n')将文件中的每行分隔开。

总结

在MySQL数据库中,Load Data是一种数据载入方法,可从文件中导入数据到数据库表中。通过本文,你应该已经掌握了Load Data的基本用法和常用参数。在使用时,需要确保正确指定字段和分隔符。

The End

相关推荐

liunx mysql root账户提示:Your password has expired. To log in yo
liunx mysql root账户提示:Your password has expired. To log in you must change it using a client that supports expired passwords,要怎么操作呢? 1、修改 /etc/my.cnf,在 [mysqld] 小节下添加一行:skip-grant-tables=1 这一行配置让 mysqld 启动...
2024-12-24 数据库
149

快速解决PostgreSQL中的Permission denied问题
下面是针对PostgreSQL中的权限问题的完整攻略。...
2023-12-07 数据库
3413

MySQL时间类型和模式详情
MySQL是一种流行的关系型数据库系统,它提供了多种时间类型和模式,用于存储和处理时间数据。本文将详细介绍MySQL时间类型和模式的详细攻略。...
2023-12-07 数据库
15

VMware中安装CentOS7(设置静态IP地址)并通过docker容器安装mySql数据库(超详细教程)
首先在官网下载CentOS7镜像,并在VMware虚拟机中新建一台CentOS7虚拟机,将镜像挂载到虚拟机中并启动。...
2023-12-07 数据库
11

SpringBoot项目报错:”Error starting ApplicationContext̷
首先,当我们使用Spring Boot开发项目时,可能会遇到Error starting ApplicationContext错误,一般这种错误是由于配置文件、依赖包或者代码逻辑等原因引起的。下面我将提供一条包含两条详细示例说明的完整攻略,用来解决上述问题。...
2023-12-07 数据库
489

Postgresql 赋予用户权限和撤销权限的实例
下面我将详细讲解如何为PostgreSQL数据库中的用户授予权限和撤销权限,包括两个实例。...
2023-12-07 数据库
30