这是一篇关于如何把Excel中的数据优雅的导出成sql语句的推文。
其实Oracle本身就自带导入Excel的数据的功能,那为什么还要先到处成sql语句再念给Oracle听呢
可不就是为了完成数据库实验嘛……
明确了我们的共同敌人之后
说干就干!
这里提供两种方法
1.公式法
这难道还可以套公式做?当然不是,其实是用的Excel的公式啦。这些sql语句本质上都是字符串,我们只要利用Excel的公式,让Excel帮助我们生成相应的字符串就好了。
注:Excel中字符串合并用的是&运算,字符串还是用引号引起来
只要写一行就好了,剩下的交给填充柄去做,so easy。
这里也给出orders表的一种写法
="INSERT INTO ORDERS (ONO,ORDER_DATE,CNO,FREIGHT,SHIPMENT_DATE,CITY,PAYMENT_TNO,STATUS) VALUES ('"&B3&"','"&TEXT(C3,"yyyy-mm-dd")&"','"&D3&"',"&E3&",'"&TEXT(F3,"yyyy-mm-dd")&"','"&G3&"','"&H3&"','"&I3&"');"
2.赖皮法
要是连第一行公式都懒得写,那怎么办呢。
当然有办法,这里我们用数据库管理软件自带的导入Excel来实现。
我手里没有pl/sql,免为其难地用Navicat做一下吧。(以product表为例吧)
第一步,先处理一下Excel文件
把无关的汉字都删掉,只剩下表头和数据
然后呢,在Navicat中随便选个数据库的表
右键->导入向导
点开后,向导会询问你要导入啥
选xlsx就好啦
接着选择你的文件,就是那个Excel文件啦
Navicat非常智能
它已经发现了这个Excel文件中有多个表
我选择了product这个表
之后,Navicat又非常聪明的
找到了我的属性名
我们还需要相应的
修改一下各个属性的类型
并且把PNO标为主键
点击下一步
开始
OK
等一下……这时候只得到了一张表
我们要的sql语句呢?
别急这时候我们右键这张表
选择转储为sql文件
OK之后,奇迹就要发生了
用直接打开这个sql文件
你就会发现
Navicat已经都帮你写好了
不过我们用的MySQL
还是有区别于Oracle的
要再做一点点修改才可以用
觉得不错?那就点个赞吧