如何用sql语句插入100条数据

如何用sql语句插入100条数据,第1张

mysql中支持insert
into
tablename
values(1,1),(2,2),(3,3)这种形式的多行插入,oracle中是不支持的。
若想通过其他表向当前表插入多条数据,可以使用:
insert
into
表1(字段列表)
select
字段列表
from
表2

方法步骤:

1、首先我们打开heidisql客户端,我们新建一个连接,如果连接的是sqlserver的数据库,要选择数据库的类型,端口号一般是1433如果是mysql的数据库,一般端口是3306,记住,别混了,输入用户名跟密码就能链接了。

2、打开数据库后,我们选择一个表来 *** 作,一般表都是在左侧的,我们依次展开,从数据库到表打开想要插入数据的表。

3、在这里选择数据打开,我这里用的是heidisql汉化版的,如果是英文版的应该是data才对。

4、在这个功能栏里,我们可以看见一个加号和一个减号,加号代表的是插入一条数据,二减号正好相反。

5、点击插入数据,卡你的鼠标在那个位置,它会在这个位置的下面一条记录插入一条记录。然后我们往里面输入数据,注意数据的类型,如果数据是time时间格式的,要按时间格式填写。

6、插入成功后会提示成功了,下面的记录也会跟着变色。

7、这里也可以用命令来插入,选择查询。

8、在这个命令的窗口,我们输入sql语句,然后点击上面的蓝色按钮,然后就会执行命令,执行成功会提示插入数据成功。

9、再返回表这边看,可以看到数据插入成功了。

如果你对英文还行的话建议用DataFactory这个软件
支持对目前各种大中型数据库进行 *** 作,
可以随机添加,或从其它文件中导入或指定值等,
而且执行速度也很快 ,我一直用它来测试
插入一千万条记录也就几分钟,当然机器配置不能太差
希望对你有用

在使用SQL数据库的时候,我们也许会需要一次像数据库中添加多条记录,那么我们可以使用SQL语句来实现,该语句具体如下:\x0d\--添加一条记录 \x0d\INSERT INTO tableName(col1,col2,col3) VALUES (1,2,3) \x0d\ \x0d\--添加多条记录 \x0d\INSERT INTO tableName(col1,col2,col3) \x0d\SELECT 3,4,5 \x0d\UNION ALL \x0d\SELECT 6,7,8 \x0d\ \x0d\--从另外的一张表中读取多条数据添加到新表中 \x0d\INSERT INTO tableName(col1,col2,col3) \x0d\SELECT a,b,c FROM tableA \x0d\ \x0d\--从其他的多张表中读取数据添加到新表中 \x0d\INSERT INTO tableName(col1,col2,col3) \x0d\SELECT a,b,c FROM tableA WHERE a=1 \x0d\UNION ALL \x0d\SELECT a,b,c FROM tableB WHERE a=2 \x0d\上边代码中的into都可以省略!\x0d\上边代码中的union all如果换成union,则相同记录只插入一次,不会重复插入。\x0d\另外一种方法是SQL Server2008特有的,所以,如果你不是SQL Server2008,就不能使用这种方法了。 \x0d\INSERT INTO MyTable(ID,NAME)VALUES(7,'003'),(8,'004'),(9,'005')\x0d\create table [TEST]\x0d\(\x0d\ [NUM_ID] int primary key\x0d\)\x0d\go\x0d\declare @temp int\x0d\set @temp=1;\x0d\while @temp回答于 2022-12-11

使用NOT EXISTS:

INSERT INTO TABLE_2
(id, name)
SELECT t1id,
t1name
FROM TABLE_1 t1
WHERE NOT EXISTS(SELECT id
FROM TABLE_2 t2
WHERE t2id = t1id)
使用NOT IN:

INSERT INTO TABLE_2
(id, name)
SELECT t1id,
t1name
FROM TABLE_1 t1
WHERE t1id NOT IN (SELECT id
FROM TABLE_2)
使用LEFT JOIN/IS NULL:

INSERT INTO TABLE_2
(id, name)
SELECT t1id,
t1name
FROM TABLE_1 t1
LEFT JOIN TABLE_2 t2 ON t2id = t1id
WHERE t2id IS NULL

常用的插入语句如:
INSERT INTO `insert_table` (`datetime`, `uid`, `content`, `type`)
VALUES ('0', 'userid_0', 'content_0', 0);
INSERT INTO `insert_table` (`datetime`, `uid`, `content`, `type`)
VALUES ('1', 'userid_1', 'content_1', 1);
修改成:
INSERT INTO `insert_table` (`datetime`, `uid`, `content`, `type`)
VALUES ('0', 'userid_0', 'content_0', 0), ('1', 'userid_1', 'content_1', 1);
修改后的插入 *** 作能够提高程序的插入效率。这里第二种SQL执行效率高的主要原因是合并后日志量(MySQL的binlog和innodb的事务让日志)减少了,降低日志刷盘的数据量和频率,从而提高效率。通过合并SQL语句,同时也能减少SQL语句解析的次数,减少网络传输的IO。
SQL语句是有长度限制,在进行数据合并在同一SQL中务必不能超过SQL长度限制,通过max_allowed_packet配置可以修改,默认是1M,测试时修改为8M。

--一条insert只能插入一行数据,除非你有一个相同数据类型的表需要复制表数据批量插入可以使用
Insert into Table2(field1,field2,) select value1,value2, from Table1
--要求目标表Table2必须存在,由于目标表Table2已经存在,所以我们除了插入源表Table1的字段外,还可以插入常量。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12663479.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-27
下一篇 2023-05-27

发表评论

登录后才能评论

评论列表(0条)

保存