这样吧你那程序我也打不开,写段代码来解释这个过程,用ADO简单讲解一下:
using SystemDataSqlClient;void charu(string zhi1;int zhi2) //插入你的数据
{
SqlConnection cnn=new SqlConnection();
cnnConnectionString="Server=SQL地址服务器1;uid=;pwd=;DataBase=数据库1";
cnnOpen();
DataSet ds=new DataSet();
SqlDataAdapter sda=new SqlDataAdapter("Insert Into 要插入的表(字段1,字段2)values('"+zhi1+"','"+zhi2+"')",cnn);
sdaFill(ds);
}
void genxincaozuo(string tiaojian) //检索你要插入的数据一条一条插入
{
SqlConnection cnn=new SqlConnection();
cnnConnectionString="Server=SQL地址服务器2;uid=;pwd=;DataBase=数据库2";
try{
cnnOpen();
DataSet ds=new DataSet();
SqlDataAdapter sda=new SqlDataAdapter("Select from 准备插入的表 where 条件字段='"+tiaojian+"'",cnn);
sdaFill(ds);
for(int i=0;i<dsTables[0]RowsCount;i++) //把要插入的数据遍历
{
string str1=dsTables[0]Rows[i]["字段名1"]ToString();
int Z1=ConvertToInt32(dsTables[0]Rows[i]["字段名2"]ToString());
charu(str1,Z1); //在这里嵌套插入函数
}
catch(SQL Exception e)
{
MessageBoxShow(eToString());
}
finnaly
{
cnnClose();
}
}
}
这个办法是堆栈办法,ADO最简单的方法,也相对比较快一点,用Session就是表对表插入,比这个更浪费时间,
1、数据库中创建课程信息表 tb_courses,包含课程编号 course_id、课程名称 course_name、课程学分 course_grade 和课程备注 course_info,输入的 SQL 语句和执行结果如下所示。
2、查看表里的数据还是空的。
3、在 tb_courses 表中插入一条新记录,course_id 值为 1,course_name 值为“Network”,course_grade 值为 3,info 值为“Computer Network”。
4、可以看到插入记录成功。在插入数据时,指定了 tb_courses 表的所有字段,因此将为每一个字段插入新的值。
5、在 tb_courses 表中插入一条新记录,course_id 值为 2,course_name 值为“Database”,course_grade 值为 3,info值为“MySQL”。输入的 SQL 语句和执行结果如下所示。
6、最后查看表数据,就完成了。
sql写法
:
insert
into
table
values
($values),($values)($values);
使用以上(每次insert,插入10
values)将10w个int
values插入到test表中所需的耗时,耗时53秒
real
0m53871s
user
0m19455s
sys
0m6285s
这是整整近33倍的时间提升。这部分性能提升的原因在于以下几点:
1、每次和mysql
server建立连接都需要经过各种初始化、权限认证,语法解析等等多个步骤,需要消耗一定的资源。
2、更新一个values和更新n个values耗时基本一致。(下面对比一下insert
单values核insert
10
values的profile耗时)
SELECT INTO 语句
SELECT INTO 语句从一个表中选取数据,然后把数据插入另一个表中。
SELECT INTO 语句常用于创建表的备份复件或者用于对记录进行存档。
SQL SELECT INTO 语法
您可以把所有的列插入新表:
SELECT
INTO new_table_name [IN externaldatabase]
FROM old_tablename
或者只把希望的列插入新表:
SELECT column_name(s)
INTO new_table_name [IN externaldatabase]
FROM old_tablename
所以应该这么写
SELECT b列1,b列2INTO a
FROM b
WHERE id=1
---注:b表中插入a表中的列不能有a不包含的列,也就是说上面语句的b列1,b列2这些中不能有a中不包含的列
先打开cmd再进入mysql的bin目录:cd
D:\soft\wamp\bin\mysql\mysql5051b\bin
回车
mysql
-u
用户名
-p
密码
回车
source
d:\abcsql
(指向你自己的目录)回车
ok!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)