我的编程空间,编程开发者的网络收藏夹
学习永远不晚

如何向MySQL数据表插入行记录

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

如何向MySQL数据表插入行记录

这篇文章主要介绍了如何向MySQL数据表插入行记录,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

摘要:为装载数据是管理员的重要职责之一,正因为重要,所以MySQL提供的方法也是非常繁多。其中主要使用INSERT和LOAD语句

使用INSERT语句插入新数据

语法:INSERT [INTO] tbl_name [(col_name,...)] VALUES (pression,...),…
      INSERT [INTO] tbl_name SET col_name=expression, ...

让我们开始利用 INSERT 语句来增加记录,这是一个 SQL 语句,需要为它指定希望插入数据行的表或将值按行放入的表。INSERT 语句具有几种形式:

可指定所有列的值:

例如:

shell>  –u root –p
mysql> use mytest;
mysql> insert into worker values(“tom”,”tom@yahoo.com”);


“INTO”一词自 MySQL 3.22.5 以来是可选的。(这一点对其他形式的 INSERT 语句也成立。)VALUES 表必须包含表中每列的值,并且按表中列的存放次序给出。(一般,这就是创建表时列的定义次序。如果不能肯定的话,可使用 DESCRIBE tbl_name 来查看这个次序。)

使用多个值表,可以一次提供多行数据。

Mysql>insert into worker values(‘tom’,’tom@yahoo.com’),(‘paul’,’paul@yahoo.com’);

有多个值表的INSERT ... VALUES的形式在MySQL 3.22.5或以后版本中支持。

可以给出要赋值的那个列,然后再列出值。这对于希望建立只有几个列需要初始设置的记录是很有用的。

例如:

mysql>insert into worker (name) values (‘tom’);

自 MySQL 3.22.5 以来,这种形式的 INSERT 也允许多个值表:

mysql>insert into worker (name) values (‘tom’), (‘paul’);

在列的列表中未给出名称的列都将赋予缺省值。

自 MySQL 3.22 .10 以来,可以 col_name = value 的形式给出列和值。

例如:

mysql>insert into worker set name=’tom’;

在 SET 子句中未命名的行都赋予一个缺省值。

使用这种形式的 INSERT 语句不能插入多行。

一个expression可以引用在一个值表先前设置的任何列。例如,你能这样:

mysql> INSERT INTO tbl_name (col1,col2) VALUES(15,col1*2);

但不能这样:

mysql> INSERT INTO tbl_name (col1,col2) VALUES(col2*2,15);

使用INSERT…SELECT语句插入从其他表选择的行

当我们在上一节学习创建表时,知道可以使用select从其它表来直接创建表,甚至可以同时复制数据记录。如果你已经拥有了一个表,你同样可以从select语句的配合中获益。

从其它表中录入数据,例如:

mysql>insert into tbl_name1(col1,col2) select col3,col4 from tbl_name2;

你也可以略去目的表的列列表,如果你每一列都有数据录入。

mysql>insert into tbl_name1 select col3,col4 from tbl_name2;

INSERT INTO ... SELECT语句满足下列条件:

查询不能包含一个ORDER BY子句。

INSERT语句的目的表不能出现在SELECT查询部分的FROM子句,因为这在ANSI SQL中被禁止让从你正在插入的表中SELECT。(问题是SELECT将可能发现在同一个运行期间内先前被插入的记录。当使用子选择子句时,情况能很容易混淆)

使用replace、replace…select语句插入

REPLACE功能与INSERT完全一样,除了如果在表中的一个老记录具有在一个唯一索引上的新记录有相同的值,在新记录被插入之前,老记录被删除。对于这种情况,insert语句的表现是产生一个错误。

REPLACE语句也可以褐SELECT相配合,所以上两小节的内容完全适合REPALCE.。

应该注意的是,由于REPLACE语句可能改变原有的记录,因此使用时要小心。

使用LOAD语句批量录入数据

本章的前面讨论如何使用SQL向一个表中插入数据。但是,如果你需要向一个表中添加许多条记录,使用SQL语句输入数据是很不方便的。幸运的是,MySQL提供了一些方法用于批量录入数据,使得向表中添加数据变得容易了。本节以及下一节,将介绍这些方法。本节将介绍SQL语言级的解决方法。

1、基本语法

语法:LOAD DATA [LOCAL] INFILE file_name.txt [REPLACE | IGNORE] INTO TABLE tbl_name LOAD DATA INFILE语句从一个文本文件中以很高的速度读入一个表中。如果指定LOCAL关键词,从客户主机读文件。如果LOCAL没指定,文件必须位于服务器上。(LOCAL在MySQL3.22.6或以后版本中可用。)

为了安全原因,当读取位于服务器上的文本文件时,文件必须处于数据库目录或可被所有人读取。另外,为了对服务器上文件使用LOAD DATA INFILE,在服务器主机上你必须有file的权限。见第七章 数据库安全。

REPLACE和IGNORE关键词控制对现有的唯一键记录的重复的处理。如果你指定REPLACE,新行将代替有相同的唯一键值的现有行。如果你指定IGNORE,跳过有唯一键的现有行的重复行的输入。如果你不指定任何一个选项,当找到重复键键时,出现一个错误,并且文本文件的余下部分被忽略时。

如果你使用LOCAL关键词从一个本地文件装载数据,服务器没有办法在操作的当中停止文件的传输,因此缺省的行为好像IGNORE被指定一样。

2、文件的搜寻原则

当在服务器主机上寻找文件时,服务器使用下列规则:

如果给出一个绝对路径名,服务器使用该路径名。

如果给出一个有一个或多个前置部件的相对路径名,服务器相对服务器的数据目录搜索文件。

如果给出一个没有前置部件的一个文件名,服务器在当前数据库的数据库目录寻找文件。

注意这些规则意味着一个像“./myfile.txt”给出的文件是从服务器的数据目录读取,而作为“myfile.txt”给出的一个文件是从当前数据库的数据库目录下读取。也要注意,对于下列哪些语句,对db1文件从数据库目录读取,而不是db2:

mysql> USE db1;
mysql> LOAD DATA INFILE "./data.txt" INTO TABLE db2.my_table;


3、FIELDS和LINES子句的语法

如果你指定一个FIELDS子句,它的每一个子句(TERMINATED BY, [OPTIONALLY] ENCLOSED BY和ESCAPED BY)也是可选的,除了你必须至少指定他们之一。

如果你不指定一个FIELDS子句,缺省值与如果你这样写的相同:

FIELDS TERMINATED BY ENCLOSED BY  ESCAPED BY \

如果你不指定一个LINES子句,缺省值与如果你这样写的相同:

LINES TERMINATED BY

换句话说,缺省值导致读取输入时,LOAD DATA INFILE表现如下:

在换行符处寻找行边界

在定位符处将行分进字段

不要期望字段由任何引号字符封装

将由“”开头的定位符、换行符或“\”解释是字段值的部分字面字符

LOAD DATA INFILE能被用来读取从外部来源获得的文件。例如,以dBASE格式的文件将有由逗号分隔并用双引号包围的字段。如果文件中的行由换行符终止,下面显示的命令说明你将用来装载文件的字段和行处理选项:

mysql> LOAD DATA INFILE data.txt INTO TABLE tbl_name

FIELDS TERMINATED BY , ENCLOSED BY "

LINES TERMINATED BY
;


任何字段或行处理选项可以指定一个空字符串()。如果不是空,FIELDS [OPTIONALLY] ENCLOSED BY和FIELDS ESCAPED BY值必须是一个单个字符。FIELDS TERMINATED BY和LINES TERMINATED BY值可以是超过一个字符。例如,写入由回车换行符对(CR+LF)终止的行,或读取包含这样行的一个文件,指定一个LINES TERMINATED BY
子句。

FIELDS [OPTIONALLY] ENCLOSED BY控制字段的包围字符。对于输出(SELECT ... INTO OUTFILE),如果你省略OPTIONALLY,所有的字段由ENCLOSED BY字符包围。对于这样的输出的一个例子(使用一个逗号作为字段分隔符)显示在下面:

"1","a string","100.20"

"2","a string containing a , comma","102.20"

"3","a string containing a " quote","102.20"

"4","a string containing a ", quote and comma","102.20"

如果你指定OPTIONALLY,ENCLOSED BY字符仅被用于包围CHAR和VARCHAR字段:

1,"a string",100.20

2,"a string containing a , comma",102.20

3,"a string containing a " quote",102.20

4,"a string containing a ", quote and comma",102.20

注意,一个字段值中的ENCLOSED BY字符的出现通过用ESCAPED BY字符作为其前缀来转义。也要注意,如果你指定一个空ESCAPED BY值,可能产生不能被LOAD DATA INFILE正确读出的输出。例如,如果转义字符为空,上面显示的输出显示如下。注意到在第四行的第二个字段包含跟随引号的一个逗号,它(错误地)好象要终止字段:

1,"a string",100.20

2,"a string containing a , comma",102.20

3,"a string containing a " quote",102.20

4,"a string containing a ", quote and comma",102.20

FIELDS ESCAPED BY控制如何写入或读出特殊字符。如果FIELDS ESCAPED BY字符不是空的,它被用于前缀在输出上的下列字符:

FIELDS ESCAPED BY字符

FIELDS [OPTIONALLY] ENCLOSED BY字符

FIELDS TERMINATED BY和LINES TERMINATED BY值的第一个字符

ASCII 0(实际上将后续转义字符写成 ASCII0,而不是一个零值字节)

如果FIELDS ESCAPED BY字符是空的,没有字符被转义。指定一个空转义字符可能不是一个好主意,特别是如果在你数据中的字段值包含刚才给出的表中的任何字符。

对于输入,如果FIELDS ESCAPED BY字符不是空的,该字符的出现被剥去并且后续字符在字面上作为字

感谢你能够认真阅读完这篇文章,希望小编分享的“如何向MySQL数据表插入行记录”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

如何向MySQL数据表插入行记录

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

我们如何向 MySQL 表中插入数据?

要将数据插入 MySQL 表,我们需要使用 INSERT INTO 命令。我们必须在 INSERT INTO 命令中指定表中所有列的值。语法INSERT INTO table_name values(value1,value2,&helli
2023-10-22

如何向SQLServer表中插入数据

要向SQL Server表中插入数据,您可以使用INSERT INTO语句。以下是一个示例:INSERT INTO table_name (column1, column2, column3, ...)VALUES (value1, v
如何向SQLServer表中插入数据
2024-04-09

我们如何向 MySQL 表中插入新行?

借助 INSERT INTO 命令,可以将新行插入到表中。语法INSERT INTO table_name values(value1,value2,…)示例假设我们有一个名为“Employee”的表,其中包含三列“Emp_i
2023-10-22

mysql如何给表录入数据

要给MySQL表录入数据,可以使用INSERT语句。INSERT INTO 表名 (列1, 列2, 列3,...) VALUES (值1, 值2, 值3,...);其中,表名是要录入数据的表的名称;列1, 列2, 列3,... 是要插入
2023-10-21

hive如何向表里插数据

Hive是一个数据仓库工具,用于在Hadoop上进行数据查询和分析。在Hive中向表里插入数据可以通过两种方式来实现:使用Hive的INSERT INTO语句:可以通过INSERT INTO语句向表中插入数据,语法如下:INSERT INT
hive如何向表里插数据
2024-03-12

如何使用 PHP 插入数据到 MySQL 表中?

如何将数据插入 mysql 表中?连接到数据库:使用 mysqli 建立与数据库的连接。准备 sql 查询:编写一个 insert 语句以指定要插入的列和值。执行查询:使用 query() 方法执行插入查询,如果成功,将输出一条确认消息。如
如何使用 PHP 插入数据到 MySQL 表中?
2024-05-13

MySQL中如何插入数据

要在MySQL中插入数据,可以使用INSERT INTO语句。下面是一个示例:INSERT INTO 表名 (列1, 列2, 列3)VALUES (值1, 值2, 值3);在这个示例中,你需要将“表名”替换为您要插入数据的表的名称,“列
MySQL中如何插入数据
2024-04-09

在MySQL中如何执行批量插入数据

在MySQL中执行批量插入数据可以使用INSERT INTO语句结合多个值的语法来实现。例如,可以使用以下语法来执行批量插入数据:INSERT INTO table_name (column1, column2, column3, ...
在MySQL中如何执行批量插入数据
2024-04-09

Oracle中如何向VARCHAR列插入数据

要向VARCHAR列插入数据,可以使用INSERT INTO语句。以下是一个示例:INSERT INTO table_name (varchar_column) VALUES ('your_data');在这个示例中,table_name
Oracle中如何向VARCHAR列插入数据
2024-04-09

MySQL该如何操作数据表中的记录

下文主要给大家带来MySQL该如何操作数据表中的记录,希望这些内容能够带给大家实际用处,这也是我编辑MySQL该如何操作数据表中的记录这篇文章的主要目的。好了,废话不多说,大家直接看下文吧。 1.插入记录 INSERTINSERT [INT
2022-11-30

PHP中如何插入、更新和删除数据库记录?

在 php 中,可以分别通过 insert、update 和 delete 语句插入、更新和删除数据库记录。插入数据时,使用 insert 语句指定目标表和列,并提供插入的值。更新数据时,使用 update 语句指定目标表和列,并在 whe
PHP中如何插入、更新和删除数据库记录?
2024-05-06

mysql如何往表里插数据

要往MySQL表中插入数据,可以使用INSERT INTO语句。语法如下:INSERT INTO 表名 (列1, 列2, 列3,...) VALUES (值1, 值2, 值3,...);以下是一个示例:INSERT INTO student
2023-10-12

如何使用 PHP 函数向数据库中插入数据?

向数据库中插入数据需要使用 php 的 mysqli_query() 函数,步骤如下:1. 连接到数据库。2. 准备查询语句。3. 准备语句。4. 绑定参数。5. 设置要插入的值。6. 执行查询。7. 检查是否成功插入。8. 关闭语句和数据
如何使用 PHP 函数向数据库中插入数据?
2024-05-03

如何实现MySQL中插入多行数据的语句?

如何实现MySQL中插入多行数据的语句?在MySQL中,有时我们需要一次性插入多行数据到表中,这时我们可以使用INSERT INTO语句来实现。下面将介绍如何使用INSERT INTO语句来插入多行数据,并给出具体的代码示例。假设我们有一个
如何实现MySQL中插入多行数据的语句?
2023-11-09

编程热搜

目录