使用Excel批量生成SQL语句,用过的人都说好

共 3830字,需浏览 8分钟

 ·

2022-10-15 03:19



点击关注公众号,SQL干货及时获取



后台回复:


1024


,获取海量学习资源





Excel的公式自动生成想必大家都知道了,就是写好一个公式后直接往下拖,就可以将后面数据的公式自动生成。






今天我们就用这个功能来快速生成SQL语句。







导入Excel数据






Excel的数据有多种方式,这里我们演示用SQL代码导入Excel中的数据。



例如我们想把左边Excel中的数据插入到数据库中,如下图:



242dda77bcb2ec003a55557e83072157.webp







写好模板语句



我们可以先写一条插入语句,如下:




INSERT INTO Person VALUES(1,'吕布',25,'男','13500000001')









然后复制这条SQL语句打开Excel,选中表格后的一个单元格,在上方函数位置粘贴刚才的SQL语句并做修改,




="INSERT INTO Person VALUES("&A2&",'"&B2&"',"&C2&",'"&D2&"','"&E2&"')"







dfc37a172381ccd8cd4da045c7cb8433.webp



注意前面有个= 然后整个SQL用 ""包围住。










生成SQL语句




确认后就可以看到在单元格中会自动生成一条SQL语句。选中单元格下拉,会发现所有的行后面都会生成一条SQL语句。




2eb683c72cdcd6bb1b814255a66003a0.webp










执行SQL




然后我们直接复制这些SQL语句到数据库的查询窗口执行。




b7a03f7e9345bfaf8618a373b6bb0bad.webp








执行完后我们查询Person表里的数据。




9fa106e30779835d1dcf71f55deb5deb.webp








这样就完成了Excel快速生成SQL语句的功能。










扩展SQL示例




以上只是一个简单的示例,运用这种方法我们还可以自动生成很多其他的SQL脚本,比如要查询数据库中所有表中的记录数。



当然我们可以使用循环遍历系统中的所有表然后再用循环语句执行指定的语句,如下:







--使用循环语句查询所有表的数量


DECLARE


TNAME VARCHAR2(200);


BEGIN


--获取系统表中的所有表名


FOR X IN (SELECT TABLE_NAME FROM user_tables where table_name like 'HR_TEMPTABLE%')


--开始循环


LOOP


--循环主体部分







TNAME :=X.TABLE_NAME; --赋值


EXECUTE IMMEDIATE 'SELECT '''X.TABLE_NAME'''||',COUNT(1) Num FROM '||X.TABLE_NAME; --执行循环主体


END LOOP;


EXCEPTION


WHEN OTHERS THEN


DBMS_OUTPUT.put_line(TNAME);


RAISE;


END;


END;










套用Excel生成SQL方法



但是如果是新手同学,不会写上面的代码,而此时又要我们做这样的事怎么办呢?就可以使用上面的方法了。



可以先从系统表中查询出所有的表名




SELECT TABLE_NAME FROM user_tables





将表名复制粘贴到Excel中,然后开始写查询语句,如下图:


0bc8437c6a645ac00c085e5c22eadd42.webp



然后将这些代码复制粘贴到查询窗口即可查询出所有表中的记录数了。



8a6d18e190abe03e0f16f0ef939fece5.webp





使用此方法还可以应用在很多类似的场景,他们的共同点就是代码结构一样,但是代码中的参数不一样,对于想快速写出相应的SQL代码是非常有效的。





觉得不错,欢迎转发分享给更多人~





我是岳哥,最后给大家分享我写的SQL两件套:

《SQL基础知识第二版》



《SQL高级知识第二版》

的PDF电子版。里面有各个语法的解释、大量的实例讲解和批注等等,非常通俗易懂,方便大家跟着一起来实操。



有需要的读者可以下载学习,在下面的公众号「

数据前线

」(
非本号
)后台回复关键字:

SQL

,就行



数据前线



——End——







后台回复关键字:

1024


,获取一份精心整理的技术干货

后台回复关键字:进群,带你进入高手如云的交流群。






推荐阅读








浏览 48
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报