Mysql 简明教程
MySQL - Insert Query
在使用 CREATE TABLE 语句在 MySQL 数据库中创建表后,我们只会得到一个仅定义了其结构的空表。要向其中填充数据,我们需要使用单独的查询手动添加记录。
The MySQL INSERT Statement
要将数据插入 MySQL 表中,我们需要使用 MySQL INSERT 语句。我们可以使用“mysql>”提示符或使用任何客户端程序(如 PHP、Java 等)将数据插入 MySQL 表中。
由于表的结构已经定义,MySQL INSERT 语句只接受符合表结构的数据。插入表中的数据必须具有相同的数据类型,满足约束(如果有),等等。如果插入的数据不满足这些条件,INSERT INTO 语句将显示错误。
Inserting Data from the Command Prompt
要从命令提示符插入数据,我们将使用 SQL INSERT INTO 语句将数据插入 MySQL 表中。
Example
首先,让我们使用以下查询创建一个名为 CUSTOMERS 的表:
CREATE TABLE CUSTOMERS (
ID INT NOT NULL,
NAME VARCHAR(20) NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR (25),
SALARY DECIMAL (18, 2),
PRIMARY KEY (ID)
);
现在,我们将向上述所创建的表中插入一条记录−
INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY) VALUES
(1, 'Ramesh', 32, 'Ahmedabad', 2000.00 );
我们还可以使用以下查询同时插入多条记录−
INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY) VALUES
(2, 'Khilan', 25, 'Delhi', 1500.00 ),
(3, 'Kaushik', 23, 'Kota', 2000.00 ),
(4, 'Chaitali', 25, 'Mumbai', 6500.00 ),
(5, 'Hardik', 27, 'Bhopal', 8500.00 );
即使不指定列名,也可以将记录插入到数据库中,前提是查询中的逗号分隔值与对应列的属性匹配,如下所示−
INSERT INTO CUSTOMERS VALUES
(6, 'Komal', 22, 'Hyderabad', 4500.00 ),
(7, 'Muffy', 24, 'Indore', 10000.00 );
Inserting Data Into a Table Using Another Table
有时,我们只需要将数据从数据库中的一个现有表复制到同一数据库中的另一个表中。有各种方法可以做到这一点−
-
Using INSERT… SELECT
-
Using INSERT… TABLE
INSERT… SELECT Statement
我们可以通过对另一个表的 select 语句将数据填充到一个表中;前提是另一个表具有一组字段,这些字段是填充第一个表所必需的。
以下是语法 −
INSERT INTO table_name1 [(column1, column2, ... columnN)]
SELECT column1, column2, ...columnN
FROM table_name2
[WHERE condition];
Example
在以下查询中,我们正在使用与 CUSTOMERS 表相同的结构创建一个另一个表 CUSTOMERS_Copy −
CREATE TABLE CUSTOMERS_Copy (
ID INT AUTO_INCREMENT,
NAME VARCHAR(20) NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR (25),
SALARY DECIMAL (18, 2),
PRIMARY KEY (ID)
);
现在,让我们使用 INSERT…INTO 语句将记录从 CUSTOMERS 表插入到 CUSTOMERS_Copy 表中。
INSERT INTO CUSTOMERS_Copy SELECT * from CUSTOMERS;
Verification
执行以下查询以验证是否已从 CUSTOMERS 表中插入记录 −
SELECT * FROM CUSTOMERS_Copy;
所获得的 CUSTOMERS_Copy 表如下所示−
INSERT…TABLE Statement
另一方面,我们不用选择特定的列,而是可以使用 INSERT…TABLE 语句将一个表的内容插入到另一个表中。
以下是执行此操作的语法 −
INSERT INTO table1 TABLE table2;
Example
在本例中,让我们使用我们在前面的示例中创建的同一个 CUSTOMERS 表,并将其内容复制到另一个表 CUSTOMERS_dummy 中。
为此,我们首先将使用与 CUSTOMERS 表相同的结构创建 CUSTOMERS_dummy 表 −
CREATE TABLE CUSTOMERS_dummy (
ID INT AUTO_INCREMENT,
NAME VARCHAR(20) NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR (25),
SALARY DECIMAL (18, 2),
PRIMARY KEY (ID)
);
使用 CUSTOMERS 表,我们将将其所有值插入到 CUSTOMERS_dummy 表中 −
INSERT INTO CUSTOMERS_dummy TABLE CUSTOMERS;
INSERT … SET
使用 INSERT…SET 语句,可以通过向选定列设置值来插入记录。以下是此语句的语法:
INSERT INTO table_name SET column_name1 = value1, column_name2=value2,......;
其中,table_name 是需要向其中插入记录的表的名称,并且 column_name1 = value1、column_name2 = value2 […] 是选定的列名称和各自的值。