SQL 如何插入一行或多行记录
在本文中,我们将学习如何在结构化查询语言(SQL)的表中插入一行或多行记录。
SQL中的 INSERT INTO 命令允许数据库用户将一行或多行记录插入SQL表中。
以下是在表中插入单行记录的两种语法:
语法1:
INSERT INTO Table_Name(Column_Name_1, Column_Name_2, Column_Name_3, ....., Column_Name_N) VALUES ( Value_1, Value_2, Value_3, ....., Value_N);
这种语法通过指定表的列名将行插入SQL表中。
语法2:
INSERT INTO Table_Name VALUES( Value_1, Value_2, Value_3, ....., Value_N);
在此语法中,我们无需为将行插入SQL表格中指定列名。
如果要将记录插入到表格中,您需要按照给定顺序逐步执行以下步骤:
- 在系统中创建数据库。
- 在数据库中创建表格。
- 向表格中插入一行数据。
- 查看表格。
现在,我们将用例子逐步说明每个步骤:
步骤1:创建数据库
在结构化查询语言中,创建数据库是在数据库中存储结构化表格的第一步。
使用以下SQL语法创建数据库:
CREATE DATABASE Database_Name;
假设您想创建 学校 数据库。为此,请在结构化查询语言中输入以下命令:
CREATE DATABASE School;
步骤2:创建表并插入数据
现在,您必须使用以下语法在SQL数据库中创建表:
CREATE TABLE table_name
(
column_Name_1 data type (size of the column_1),
column_Name_2 data type (size of the column_2),
column_Name_3 data type (size of the column_3),
...
column_Name_N data type (size of the column_N)
);
假设您想要在 School 数据库中创建 Teacher 表。为此,您需要在SQL应用程序中键入以下查询语句:
CREATE TABLE Teacher
(
Teacher_ID INT AUTO_INCREMENT PRIMARY KEY,
Teacher_Name VARCHAR (80),
Teacher_Subject VARCHAR (30) NOT NULL,
Teacher_Address VARCHAR (30),
Teacher_Age INT
) ;
步骤3:在表中插入一行数据
以下查询将只插入一条 教师 的记录到Teacher表中:
INSERT INTO Table_Name (Teacher_ID, Teacher_Name, Teacher_Subject, Teacher_Address, Teacher_Age) VALUES( 2001, Manoj, Maths, Delhi, 27);
步骤4:查看表格
如果你想查看 “教师” 表格的数据,那么你需要在SQL应用程序中编写以下查询语句:
SELECT * FROM Teacher;
Teacher_ID | Teacher_Name | Teacher_Subject | Teacher_Address | Teacher_Age |
---|---|---|---|---|
2001 | Manoj | Maths | Delhi | 27 |
表:Teacher
向表中插入多行数据
在SQL中,您可以使用单个查询轻松地在表中插入多个行。
以下 插入语句 将五名教师的记录插入到 Teacher 表中:
INSERT INTO Table_Name (Teacher_ID, Teacher_Name, Teacher_Subject, Teacher_Address, Teacher_Age) VALUES( 2002, Anita, Hindi, Ghaziabad, 28),
( 2003, Vishal, English, Gorakhpur, 26),
( 2004, Shobhit, SST, Kanpur, 27),
( 2005, Rohit, Science, Lucknow, 29),
( 2006, Yogesh, Computer, Jaipur, 28) ;
要检查上述INSERT查询的结果,您必须在SQL中编写以下SELECT查询:
SELECT * FROM Teacher;
输出:
Teacher_ID | Teacher_Name | Teacher_Subject | Teacher_Address | Teacher_Age |
---|---|---|---|---|
2001 | Manoj | Maths | Delhi | 27 |
2002 | Anita | Hindi | Ghaziabad | 28 |
2003 | Vishal | English | Gorakhpur | 26 |
2004 | shobhit | SST | Kanpur | 27 |
2005 | Rohit | Science | Lucknow | 29 |
2006 | Yogesh | Computer | Jaipur | 28 |
表:教师
从SELECT语句中插入行
如果您想将另一个表的数据插入新表中,请使用带有SELECT语句的INSERT语句。
以下语句将一个表的数据传递到另一个表中:
INSERT INTO New_Table_Name (Column_Name_1, Column_Name_2, Column_Name_3, ....., Column_Name_N)
SELECT
(Column_Name_1, Column_Name_2, Column_Name_3, ....., Column_Name_N)
FROM Old_Table_Name
WHERE [ condition ];
示例
下表显示了旧表的数据:
Teacher_ID | Teacher_Name | Teacher_Subject | Teacher_Address | Teacher_Age |
---|---|---|---|---|
2001 | Manoj | Maths | Delhi | 27 |
2002 | Anita | Hindi | Delhi | 28 |
2003 | Vishal | English | Gorakhpur | 26 |
2004 | shobhit | SST | Delhi | 27 |
2005 | Rohit | Science | Lucknow | 29 |
2006 | Yogesh | Computer | Delhi | 28 |
表:Old_Teacher
假设您有一个结构与Old_Teacher表相同的New_Teacher表,并且您希望将那些地址为Delhi的老师的数据从旧表转移到新表中。对于此操作,您必须使用以下带有SELECT查询的INSERT语句:
INSERT INTO New_Teacher (New_Teacher_ID, New_Teacher_Name, New_Teacher_Subject)
SELECT Teacher_ID, Teacher_Name, Teacher_Subject
FROM Old_Teacher
WHERE Teacher_Address = 'Delhi' ;
要检查上述查询的结果,请使用以下SELECT语句:
SELECT * FROM New_Teacher;
Teacher_ID | Teacher_Name | Teacher_Subject |
---|---|---|
2001 | Manoj | Maths |
2002 | Anita | Hindi |
2004 | shobhit | SST |
2006 | Yogesh | Computer |
表:新的老师