MySQL INSERT INTO 查询:如何在表中添加行(示例)

INSERT INTO 是什么?

插入 用于在表中存储数据。 INSERT 命令在表中创建一个新行来存储数据。 数据通常由在数据库上运行的应用程序提供。

基本语法

让我们看一下 INSERT INTO 的基本语法 MySQL 命令:

INSERT INTO `table_name`(column_1,column_2,...) VALUES (value_1,value_2,...);

点击这里

  • INSERT INTO `table_name` 是告诉的命令 MySQL 服务器在名为“table_name”的表中添加新行。
  • (column_1,column_2,…)指定新表中要更新的列 MySQL 行
  • VALUES (value_1,value_2,…) 指定要添加到新行的值

在提供要插入到新表中的数据值时,应考虑以下几点:

  • 字符串数据类型——所有字符串值都应用单引号括起来。
  • 数字数据类型 - 所有数字值都应直接提供,而不必用单引号或双引号括起来。
  • 日期数据类型 - 将日期值括在单引号中,格式为“YYYY-MM-DD”。


计费示例:

假设我们有以下需要添加到数据库的新库成员列表。

全名 出生日期 性别 实际地址 邮寄地址 联络号码 电子邮件
伦纳德·霍夫施塔特 (男) 桂园 0845738767
谢尔顿·库珀 (男) 桂园 0976736763
拉杰什·库斯拉帕利 (男) 锦绣 0938867763
莱斯利·温克尔 14/02/1984 (男) 0987636553
霍华德·沃洛维茨 24/08/1981 (男) South Park PO Box 4563 0987786553 lwolowitz@email.me

让我们逐个插入数据。我们从 Leonard Hofstadter 开始。我们将把联系人号码视为数字数据类型,而不是用单引号将数字括起来。

INSERT INTO `members` (`full_names`,`gender`,`physical_address`,`contact_number`) VALUES ('Leonard Hofstadter','Male','Woodcrest',0845738767);

执行上述脚本会删除 Leonard 的联系电话中的 0。这是因为该值将被视为数值,开头的零 (0) 会被删除,因为它不重要。

为了避免此类问题,必须将值括在单引号中,如下所示 -

INSERT INTO `members` (`full_names`,`gender`,`physical_address`,`contact_number`)  VALUES ('Sheldon Cooper','Male','Woodcrest', '0976736763');

在上述情况下,零(0)不会被删除


更改列的顺序对 INSERT 查询没有影响 MySQL 只要正确的值被映射到正确的列。

下面的查询证明了上述观点。

INSERT INTO `members` (`contact_number`,`gender`,`full_names`,`physical_address`)  VALUES ('0938867763','Male','Rajesh Koothrappali','Woodcrest');

上述查询跳过了出生日期列。默认情况下, MySQL 将在 INSERT 查询中省略的列中插入 NULL 值。

现在让我们插入 Leslie 的记录,其中包含出生日期。日期值应使用单引号括起来,格式为“YYYY-MM-DD”。

INSERT INTO `members` (`full_names`,`date_of_birth`,`gender`,`physical_address`,`contact_number`)  VALUES ('Leslie Winkle','1984-02-14','Male','Woodcrest', '0987636553');

所有上述查询都指定了列并将它们映射到 MySQL 插入语句。如果我们为表中的所有列提供值,那么我们可以省略 MySQL 插入查询。

例子:-

INSERT INTO `members`  VALUES (9,'Howard Wolowitz','Male','1981-08-24',
'SouthPark','P.O. Box 4563', '0987786553', 'lwolowitz[at]email.me');

现在让我们使用 选择语句 查看成员表中的所有行。

SELECT * FROM `members`;
会员号码 全名 性别 出生日期 实际地址 邮寄地址 联系电话 email
1 珍妮特琼斯 (女) 21-07-1980 第一街 4 号地块 私人包 0759 253 542 janetjones@yagoo.cm
2 珍妮特·史密斯·琼斯 (女) 23-06-1980 梅尔罗斯 123 jj@fstreet.com
3 罗伯特·菲尔 (男) 12-07-1989 第三街 3 12345 rm@tstreet.com
4 格洛丽亚·威廉姆斯 (女) 14-02-1984 第二街 2
5 伦纳德·霍夫施塔特 (男) 桂园 845738767
6 谢尔顿·库珀 (男) 桂园 0976736763
7 拉杰什·库斯拉帕利 (男) 桂园 0938867763
8 莱斯利·温克尔 (男) 14-02-1984 桂园 0987636553
9 霍华德·沃洛维茨 (男) 24-08-1981 南方公园 PO Box 4563 0987786553 lwolowitz@email.me

请注意,Leonard Hofstadter 的联系电话已将开头的零 (0) 去掉。其他联系电话开头的零 (0) 均未去掉。

从另一个表插入到一个表中

INSERT 命令还可用于将数据从另一个表插入到一个表中。基本语法如下所示。

INSERT INTO table_1 SELECT * FROM table_2;

现在让我们看一个实际的例子。我们将为电影类别创建一个虚拟表,用于演示目的。我们将新类别表命名为 categories_archive。下面显示的脚本 创建表.

CREATE TABLE `categories_archive` (    	  `category_id` int(11) AUTO_INCREMENT,    	  `category_name` varchar(150)  DEFAULT NULL,    	  `remarks` varchar(500) DEFAULT NULL,    	  PRIMARY KEY (`category_id`))

执行上述脚本来创建表。

现在让我们将类别表中的所有行插入到类别存档表中。下面显示的脚本可帮助我们实现此目的。

INSERT INTO `categories_archive` SELECT * FROM `categories`;

执行上述脚本会将类别表中的所有行插入类别存档表。请注意,表结构必须相同,脚本才能正常工作。更强大的脚本是将插入表中的列名映射到包含数据的表中的列名。

下面显示的查询演示了它的用法。

INSERT INTO `categories_archive`(category_id,category_name,remarks)  SELECT category_id,category_name,remarks FROM `categories`;

执行 SELECT 查询

SELECT * FROM `categories_archive`

给出如下所示的结果。

类别编号 CATEGORY_NAME 备注
1 喜剧 幽默电影
2 浪漫 爱情故事
3 史诗 故事古装电影
4 恐怖
5 科幻小说
6 惊悚
7 操作
8 爱情喜剧
9 卡通
10 卡通

PHP 示例:插入 MySQL 表

mysqli_query 函数用于执行 SQL 查询。

SQL 插入表函数可用于执行以下查询类型:

  • 插页
  • 选择
  • 更新
  • 删除

它具有以下语法。

mysqli_query($db_handle,$query);

这里,

“mysqli_query(…)” 是执行 SQL 查询的函数。

“$query” 是要执行的 SQL 查询

“$link_identifier” 是可选的,它可以用来传入服务器连接链接

例如:

$servername = "localhost";
$username = "alex";
$password = "yPXuPT";
$dbname = "afmznf";

// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);

// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}

$sql= "INSERT INTO addkeyworddata(link, keyword)VALUES ('https://www.guru99.com/','1000')";
		if (mysqli_query($conn, $sql)) {
			echo "New record created successfully".'<br>';
		} else {
		echo "Error: " . $sql. "<br>" . mysqli_error($conn);
	}
}

总结

  • INSERT 命令用于将新数据添加到表。执行该命令后,MySql 将添加新行。
  • 日期和字符串值应该用单引号引起来。
  • 数值不需要用引号引起来。
  • INSERT 命令还可用于将数据从一个表插入到另一个表中。