数据库语言记录

本文介绍使用SQL进行批量数据操作的方法,包括通过存储过程和游标查询多表日志记录、为查询结果添加序列号以及循环插入大量数据。还提供了具体的SQL语句示例,如创建表、批量插入数据及存储过程的实现。

一、查询一百张表的日志记录。用存储过程和游标实现

DECLARE @TableName varchar(32)
DECLARE @sql varchar(8000)
--set @sql='select * from user_table1'
DECLARE mycursor CURSOR FOR --定义游标
SELECT distinct(Table_Name) FROM  frank_test.INFORMATION_SCHEMA.Columns  --where Table_Name<>'user_table1'
OPEN mycursor; --打开游标。
FETCH next FROM mycursor INTO @TableName --去游标进行操作
WHILE @@FETCH_STATUS = 0
BEGIN
exec('SELECT * FROM ' +@TableName) -- 请注意 加号前后的 单引号的边上加空格
--exec('select * from user_table1 union all select * from ' +@tablename)
--set @sql=@sql+ ' union all select * from ' +@tablename
FETCH next FROM mycursor INTO @TableName
end
--exec(@sql)
CLOSE mycursor; --关闭游标
Deallocate mycursor--释放游标

二、SQL2005语言,搜索出的结果前加上序列好。

select ROW_NUMBER() over ( order by user_uname desc) as xunhao,*
from user_table1

 

三、循环向表中插入数据

declare @i int
set @i=1
while @i<1000000
begin
insert into info values('Justin'+str(@i),'深圳'+str(@i))
set @i=@i+1
end


DROP TABLE IF EXISTS `ratingvod`;
CREATE TABLE `ratingvod` (
  `cid` varchar(16) DEFAULT NULL,
  `uid` varchar(16) DEFAULT NULL,
  `rating` varchar(16) DEFAULT NULL,
  `feedback_time` varchar(16) DEFAULT NULL,
  `portal_id` varchar(255) DEFAULT NULL,
  `portal_type` varchar(16) DEFAULT NULL,
  `terminal_type` varchar(30) DEFAULT NULL,
  `terminal_os` varchar(30) DEFAULT NULL,
  `location` varchar(30) DEFAULT NULL,
  `token` varchar(30) DEFAULT NULL,
  `channel` varchar(30) DEFAULT NULL,
  `schedule_code` varchar(30) DEFAULT NULL,
  `adv_code` varchar(30) DEFAULT NULL
  -- PRIMARY KEY (`cid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- datetime int(12)

DELETE from ratingvod;


DROP PROCEDURE IF EXISTS dowhile;
create procedure dowhile()
 begin
  declare i int default 1;
declare j int default 1;
  start transaction;
  while i<101 DO
   while j<101 DO
    insert into ratingvod (cid,uid,rating,feedback_time,portal_id,portal_type,terminal_type,terminal_os,location,token,channel,schedule_code,adv_code)
   values(concat('vod',i),concat('User',i),i%5+1,'20120719172048','Portal_id1','Portal_type1','STB','Android','location1','unknow:unknow:unknow','CCTV1','scode0','acode0');
     SET j=j+1;  
END WHILE;
       SET i=i+1;
       SET j=1;
END WHILE;
  commit;
 end;

delimiter;

CALL dowhile();

-- SELECT count(cid) FROM ratingvod;
SELECT * FROM ratingvod;

 insert into tablefortest(a,b)values(1,2) ,(3,4) ,(5,6)

   若用户组织架构中,要先建组织,再每个组织添加等量用户? 思考中……

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值