用一条SQL语句实现向数据库中插入多条记录的方法
2009-11-25 21:05
836 查看
insert一般是用来给表插入一条指定的列值的,但是,insert还存在另一种形式,可以利用它将一条select语句的结果插入表中。这就是所谓的insert select,顾名思义,它是由一条insert语句和一条select语句组成的。假如你从另一张表中合并客户列表到你的Custumers表,不需要每次读取一行,然后再将它用insert插入,可以如下进行:
insert into Custumer(cust_id,
cust_cintact,
cust_name,
cust_email,
cust_address,
cust_country)
select cust_id,
cust_cintact,
cust_name,
cust_email,
cust_address,
cust_country
from CustNew;
分析:
这个例子使用insert select从CustNew中将所有的数据导入Custumer。select语句从CustNew检索出要插入的值,而不是列出它们,select中列出的每个列对应于Custumer表明后所跟的列表中的每个列。这条语句检查露多少行有赖于CustNew表中有多少行。如果这个表为空,则没有行配插入(也不产生错误,因为操作仍然是合法的)。
注意:
insert select中的列名为简单起见,这个例子在insert和select语句中使用了相同的列名,但是,不一定要求列名匹配。事实上,DBMS甚至不关心select返回的列名,它使用的是列的位置。因此,select中的第一列(不管其列名)将用来填充表列中的指定的第一个列,第二列将用来填充表列中指定的第二个列,如此等等。
insert into Custumer(cust_id,
cust_cintact,
cust_name,
cust_email,
cust_address,
cust_country)
select cust_id,
cust_cintact,
cust_name,
cust_email,
cust_address,
cust_country
from CustNew;
分析:
这个例子使用insert select从CustNew中将所有的数据导入Custumer。select语句从CustNew检索出要插入的值,而不是列出它们,select中列出的每个列对应于Custumer表明后所跟的列表中的每个列。这条语句检查露多少行有赖于CustNew表中有多少行。如果这个表为空,则没有行配插入(也不产生错误,因为操作仍然是合法的)。
注意:
insert select中的列名为简单起见,这个例子在insert和select语句中使用了相同的列名,但是,不一定要求列名匹配。事实上,DBMS甚至不关心select返回的列名,它使用的是列的位置。因此,select中的第一列(不管其列名)将用来填充表列中的指定的第一个列,第二列将用来填充表列中指定的第二个列,如此等等。
相关文章推荐
- 用一条SQL语句实现向数据库中插入多条记录的方法
- SQLite一条SQL语句插入多条记录
- SQL SERVER:一条SQL语句插入多条记录等
- SQL SERVER:一条SQL语句插入多条记录等
- SQLite一条SQL语句插入多条记录,批量插入
- 数据库insert and update--查询是否主键存在和插入语句用一条sql来实现。
- 创建临时表,一条sql语句一次插入多条记录
- 一次向数据库中插入多条相同记录的SQL方法(只有一个列不同)
- [SQL Tricks] 一条SQL语句向一张表里插入多条记录 (Multi-table inserts in 9i)
- mysql 一条sql语句插入多条记录
- 何用sql语句实现:将insert语句作为一个字段,插入到表格的一条记录之中
- SQLite一条SQL语句插入多条记录
- SQLite一条SQL语句插入多条记录
- 1次插入多条记录的方法(SQL语句,在MS SQL Server 2000查询分析器中执行成功)
- SQLite一条SQL语句插入多条记录失败的问题
- 数据库面试题---SQL中遇到多条相同内容只取一条的最简单实现
- 一次插入多条记录的SQL语句
- T-SQL 语句插入中文数据时数据库显示全是问号“???”的解决方法(数据库编码规则)
- 通过一条sql语句访问不同数据库服务器中的数据库对象的方法
- C#一次连接数据库执行多条sql语句(三种方法)