INSERT INTO
语句用于向数据库表中插入新记录。MySQL INSERT INTO 语句详解
MySQL中的INSERT INTO
语句用于在表中插入新记录,该命令是SQL中最基本的数据操作之一,广泛应用于数据库管理与应用程序开发,本文将详细介绍INSERT INTO
语句的使用方法、语法结构以及常见的应用场景。
一、基本语法
1. 指定列名和值
INSERT INTO 表名 (列1, 列2, 列3, ...) VALUES (值1, 值2, 值3, ...);
表名:要插入数据的表的名称。
列1, 列2, 列3, …:要插入数据的列名。
值1, 值2, 值3, …:对应列的具体值。
2. 不指定列名(适用于所有列)
INSERT INTO 表名 VALUES (值1, 值2, 值3, ...);
在这种情况下,必须确保值的顺序与表中列的顺序一致,并且所有列都需要提供值,如果某列为自增或允许为NULL,则可以省略该值。
二、使用示例
假设有一个名为Customers
的表,其结构如下:
CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
89 | White Clover Markets | Karl Jablonski | 305 14th Ave. S. Suite 3B | Seattle | 98128 | USA |
90 | Wilman Kala | Matti Karttunen | Keskuskatu 45 | Helsinki | 21240 | Finland |
91 | Wolski | Zbyszek | ul. Filtrowa 68 | Walla | 01012 | Poland |
1. 插入单行数据
向Customers
表中插入一条新记录:
INSERT INTO Customers (CustomerName, ContactName, Address, City, PostalCode, Country) VALUES ('Cardinal', 'Tom B. Erichsen', 'Skagen 21', 'Stavanger', '4006', 'Norway');
执行上述语句后,Customers
表的选择将如下所示:
CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
89 | White Clover Markets | Karl Jablonski | 305 14th Ave. S. Suite 3B | Seattle | 98128 | USA |
90 | Wilman Kala | Matti Karttunen | Keskuskatu 45 | Helsinki | 21240 | Finland |
91 | Wolski | Zbyszek | ul. Filtrowa 68 | Walla | 01012 | Poland |
92 | Cardinal | Tom B. Erichsen | Skagen 21 | Stavanger | 4006 | Norway |
2. 插入多行数据
可以在一条语句中插入多行数据:
INSERT INTO Customers (CustomerName, ContactName, Address, City, PostalCode, Country) VALUES ('Cardinal', 'Tom B. Erichsen', 'Skagen 21', 'Stavanger', '4006', 'Norway'), ('Greasy Burger', 'Per Olsen', 'Gateveien 15', 'Sandnes', '4306', 'Norway'), ('Tasty Tee', 'Finn Egan', 'Streetroad 19B', 'Liverpool', 'L1 0AA', 'UK');
执行上述语句后,Customers
表的选择将如下所示:
CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
89 | White Clover Markets | Karl Jablonski | 305 14th Ave. S. Suite 3B | Seattle | 98128 | USA |
90 | Wilman Kala | Matti Karttunen | Keskuskatu 45 | Helsinki | 21240 | Finland |
91 | Wolski | Zbyszek | ul. Filtrowa 68 | Walla | 01012 | Poland |
92 | Cardinal | Tom B. Erichsen | Skagen 21 | Stavanger | 4006 | Norway |
93 | Greasy Burger | Per Olsen | Gateveien 15 | Sandnes | 4306 | Norway |
94 | Tasty Tee | Finn Egan | Streetroad 19B | Liverpool | L1 0AA | UK |
三、异常情况处理
在使用INSERT INTO
时,可能会遇到一些异常情况,如重复键异常和类型不匹配等,可以通过以下方法进行处理:
1. 重复键异常
当向具有唯一约束条件的列中插入重复值时,会引发重复键异常,可以使用IF NOT EXISTS
语句进行检查:
IF NOT EXISTS (SELECT * FROM employees WHERE id=4) THEN INSERT INTO employees (id, first_name, last_name, hire_date, gender, birth_date) VALUES (4, 'Joe', 'Doe', '20230607', 'M', '19951225'); ELSE PRINT 'Error: Duplicate key'; END IF;
2. 类型不匹配异常
当尝试将一个具有不兼容类型的值插入到列中时,会引发类型不匹配异常,尝试将一个字符串插入到日期列中,应确保插入的值与列的数据类型匹配。
INSERT INTO
语句是MySQL中用于插入数据的基本命令,通过指定列名和值或者直接提供所有列的值来插入新记录,还可以通过一条语句插入多行数据,提高数据操作的效率,在实际使用中,应注意处理可能出现的异常情况,以确保数据的完整性和一致性。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1241129.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复