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”。
一次插入多行
一条 INSERT 语句可以插入多行数据。每组数据之间用逗号分隔。一条语句比多条语句更快,因为索引只需更新一次。
INSERT INTO `categories`(`category_name`,`remarks`) VALUES ('Documentary', 'Factual films'), ('Musical', 'Song driven films');
MySQL INSERT INTO 查询示例
假设我们有以下需要添加到数据库的新库成员列表。
| 全名 | 出生日期 | 性别 | 实际地址 | 邮寄地址 | 联络号码 | 电子邮件 |
|---|---|---|---|---|---|---|
| 伦纳德·霍夫施塔特 | (男) | 桂园 | 0845738767 | |||
| 谢尔顿·库珀 | (男) | 桂园 | 0976736763 | |||
| 拉杰什·库斯拉帕利 | (男) | 桂园 | 0938867763 | |||
| 莱斯利·温克尔 | 14/02/1984 | (男) | 桂园 | 0987636553 | ||
| 霍华德·沃洛维茨 | 24/08/1981 | (男) | 南方公园 | 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,因为该值被视为数值,而前导零没有意义。
为避免此类问题,该值必须用单引号括起来,如下所示。
INSERT INTO `members` (`full_names`,`gender`,`physical_address`,`contact_number`) VALUES ('Sheldon Cooper','Male','Woodcrest', '0976736763');
⚠️提示: 将电话号码、邮政编码和类似标识符存储在文本列(例如 VARCHAR 类型)中。数值列不能保留前导零。
更改列顺序
更改列的顺序对 INSERT 查询没有影响 MySQL只要正确的值已映射到正确的列即可。 以下查询说明了这一点。
INSERT INTO `members` (`contact_number`,`gender`,`full_names`,`physical_address`) VALUES ('0938867763','Male','Rajesh Koothrappali','Woodcrest');
上述查询跳过了出生日期列。默认情况下, MySQL 将 NULL 值插入到 INSERT 查询中省略的列中。
现在我们插入莱斯利的记录,其中已填写了出生日期。日期值必须用单引号括起来,格式为“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 插入查询。
INSERT INTO `members` VALUES (9,'Howard Wolowitz','Male','1981-08-24', 'SouthPark','P.O. Box 4563', '0987786553', 'lwolowitz@email.me');
现在让我们使用 选择语句 查看成员表中的所有行。
SELECT * FROM `members`;
| 会员号码 | 全名 | 性别 | 出生日期 | 实际地址 | 邮寄地址 | 联系电话 | 电子邮件 |
|---|---|---|---|---|---|---|---|
| 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 |
请注意,正如预测的那样,伦纳德·霍夫斯塔特的联系电话号码去掉了开头的零。引用的号码则保留了开头的零。
从另一个表插入到一个表中
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`))
执行上述脚本创建表。现在,我们将 categories 表中的所有行插入到 categories archive 表中。
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 PHP 查询。它同时执行 Insert、Select、Update 和 Delete 语句,语法如下。
mysqli_query($db_handle,$query);
这里,
- “mysqli_query(…)” 是执行 SQL 查询的函数。
- “$query”是要执行的SQL查询语句。
- “$db_handle”是mysqli_connect返回的服务器连接链接。
例如:
$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); }

