SQL INSERT INTO语句
SQL的INSERT INTO语句用于在表中插入新行。有两种方法使用INSERT INTO语句插入行:
- 只插入值: 第一种方法是只指定要插入的数据的值,而不指定列名。
table_name :表名。
value1, value2, . . :新记录的第一列,第二列,…的值
- 列名和值都是:在第二个方法中,我们将指定我们想要填充的列和它们对应的值,如下所示:
table_name :表名。
column1 :第一列,第二列…
value1, value2, value3 :新记录的第一列,第二列,…的值
方法1(只插入值):
输出:
表Student现在看起来像这样:
ROLL_NO | NAME | ADDRESS | PHONE | Age |
---|---|---|---|---|
1 | Ram | Delhi | XXXXXXXXXX | 18 |
2 | RAMESH | GURGAON | XXXXXXXXXX | 18 |
3 | SUJIT | ROHTAK | XXXXXXXXXX | 20 |
4 | SURESH | Delhi | XXXXXXXXXX | 18 |
3 | SUJIT | ROHTAK | XXXXXXXXXX | 20 |
2 | RAMESH | GURGAON | XXXXXXXXXX | 18 |
5 | HARSH | WEST BENGAL | XXXXXXXXXX | 19 |
方法2(只在指定的列中插入值):
输出:
表Student现在看起来像这样:
ROLL_NO | NAME | ADDRESS | PHONE | Age |
---|---|---|---|---|
1 | Ram | Delhi | XXXXXXXXXX | 18 |
2 | RAMESH | GURGAON | XXXXXXXXXX | 18 |
3 | SUJIT | ROHTAK | XXXXXXXXXX | 20 |
4 | SURESH | Delhi | XXXXXXXXXX | 18 |
3 | SUJIT | ROHTAK | XXXXXXXXXX | 20 |
2 | RAMESH | GURGAON | XXXXXXXXXX | 18 |
5 | PRATIK | null | null | 19 |
注意,没有提供值的列被填充为null。这是这些列的默认值。
在INSERT INTO语句中使用SELECT
我们可以使用SELECT语句和INSERT INTO语句来复制一个表中的行,并将它们插入到另一个表中。这个语句的使用类似于INSERT INTO语句。不同的是,这里使用SELECT语句从另一个表中选择数据。使用INSERT INTOSELECT语句的不同方法如下:
- 插入一个表的所有列:我们可以复制一个表的所有数据,并插入到另一个表中。
first_table :第一个表的名称
second_table :第二个表的名称
我们使用选择语句从一个表中复制数据,然后插入另一个表中。
- 插入表中的特定列:我们只能复制表中我们想插入到另一个表中的那些列。
语法:
first_table :第一个表的名称。
second_table :第二个表的名称。
names of columns1 :表1中以逗号分隔的列的名称。
names of columns2 :表2中以逗号分隔的列的名称。
我们使用选择语句只从第二个表复制所选列的数据,并将数据插入第一个表中。
- 从表中复制特定的行:我们可以通过使用SELECT语句的WHERE子句将表中的特定行复制到另一个表中。我们必须在WHERE子句中提供适当的条件来选择特定的行。
first_table :第一个表的名称。
second_table :第二个表的名称。
condition: 条件来选择特定行。
表二:LateralStudent
ROLL_NO | NAME | ADDRESS | PHONE | Age |
---|---|---|---|---|
7 | SOUVIK | DUMDUM | XXXXXXXXXX | 18 |
8 | NIRAJ | NOIDA | XXXXXXXXXX | 19 |
9 | SOMESH | ROHTAK | XXXXXXXXXX | 20 |
查询:
方法1(插入所有行和列):
输出:
这个查询将在Student表中插入表LateralStudent的所有数据。Student表现在看起来像,
ROLL_NO | NAME | ADDRESS | PHONE | Age |
---|---|---|---|---|
1 | Ram | Delhi | XXXXXXXXXX | 18 |
2 | RAMESH | GURGAON | XXXXXXXXXX | 18 |
3 | SUJIT | ROHTAK | XXXXXXXXXX | 20 |
4 | SURESH | Delhi | XXXXXXXXXX | 18 |
3 | SUJIT | ROHTAK | XXXXXXXXXX | 20 |
2 | RAMESH | GURGAON | XXXXXXXXXX | 18 |
7 | SOUVIK | DUMDUM | XXXXXXXXXX | 18 |
8 | NIRAJ | NOIDA | XXXXXXXXXX | 19 |
9 | SOMESH | ROHTAK | XXXXXXXXXX | 20 |
- 方法二(插入特定列):
输出:
该查询将在Student表中的LateralStudent表的ROLL_NO、NAME和Age列中插入数据,Student表中的其余列将由null填充,这是剩余列的默认值。Student表现在看起来像,
ROLL_NO | NAME | ADDRESS | PHONE | Age |
---|---|---|---|---|
1 | Ram | Delhi | XXXXXXXXXX | 18 |
2 | RAMESH | GURGAON | XXXXXXXXXX | 18 |
3 | SUJIT | ROHTAK | XXXXXXXXXX | 20 |
4 | SURESH | Delhi | XXXXXXXXXX | 18 |
3 | SUJIT | ROHTAK | XXXXXXXXXX | 20 |
2 | RAMESH | GURGAON | XXXXXXXXXX | 18 |
7 | SOUVIK | null | null | 18 |
8 | NIRAJ | null | null | 19 |
9 | SOMESH | null | null | 20 |
- 选择要插入的特定行:
输出:
这个查询将只选择表LateralStudent中的第一行插入表Student中。Student表现在看起来像,
ROLL_NO | NAME | ADDRESS | PHONE | Age |
---|---|---|---|---|
1 | Ram | Delhi | XXXXXXXXXX | 18 |
2 | RAMESH | GURGAON | XXXXXXXXXX | 18 |
3 | SUJIT | ROHTAK | XXXXXXXXXX | 20 |
4 | SURESH | Delhi | XXXXXXXXXX | 18 |
3 | SUJIT | ROHTAK | XXXXXXXXXX | 20 |
2 | RAMESH | GURGAON | XXXXXXXXXX | 18 |
7 | SOUVIK | DUMDUM | XXXXXXXXXX | 18 |
- 使用单一SQL语句在表中插入多行
示例:
下面的SQL语句在学生表中插入多行。
输出:STUDENT TABLE
这个查询将插入STUDENT TABLE中每个连续行的所有值。因此STUDENT Table看起来像这样:
ID | NAME | AGE | GRADE | CITY |
---|---|---|---|---|
1 | AMIT KUMAR | 15 | 10 | DELHI |
2 | GAURI RAO | 16 | 12 | BANGALORE |
3 | MANAV BHATT | 17 | 11 | NEW DELHI |
4 | RIYA KAPOOR | 10 | 5 | UDAIPUR |