这是一篇关于如何把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的
要再做一点点修改才可以用
觉得不错?那就点个赞吧
领取专属 10元无门槛券
私享最新 技术干货