本文目录一览:
- 1、Excel转换为SQL语句 问题?
- 2、如何把Excel数据转化成SQL语句
- 3、如何将Excel数据转换为SQL脚本
- 4、Excel实用技巧1:动态引用某个列的值,生成SQL语句
- 5、如何将Excel中表结构数据自动生成SQL脚本的方法
- 6、EXCEL生成SQL建表脚本
Excel转换为SQL语句 问题?
1、例如我想把图1的数据给添加到图2的数据库中;
2、如图2.
3、先写个sql语句确认一条数据能插入成功。
4、然后来复制这条sql语句打开excle,选中表格后的一个单元格,在上方函数位置粘贴刚才的sql语句并做修改:="INSERT INTO student(id,name,age) VALUES("A2",'"B2"','"C2"')" 注意前面源有个= 然后整个sql用 “”包围住。
5、确认后就可以看到在单元格中会自动生百成一条sql语句。选中单元格下拉,会发现所有的行后面都会生成一条sql语句。
6、复制所有的sql语句。
7、在navicat中 执行这度些SQL语句,注意批量执行的时候,要在后面加分号 ; 。
8、刷新表,可见批量转化成功。
如何把Excel数据转化成SQL语句
1、例如我想把图1的数据给添加到图2的数据库中;
2、如图2.
3、先写个sql语句确认一条数据能插入成功。
4、然后复制这条sql语句打开excle,选中表格后的一个单元格,在上方函数位置粘贴刚才的sql语句并做修改:="INSERT INTO
student(id,name,age)
VALUES("A2",'"B2"','"C2"')" 注意前面有个=
然后整个sql用 “”包围住。
5、确认后就可以看到在单元格中会自动生成一条sql语句。选中单元格下拉,会发现所有的行后面都会生成一条sql语句。
6、复制所有的sql语句。
7、在navicat中 执行这些SQL语句,注意批量执行的时候,要在后面加分号 ; 。
8、刷新表,可见批量转化成功。
如何将Excel数据转换为SQL脚本
如何将Excel数据转换为SQL脚本
打开用户提供的excel数据,鼠标定位到第一行数据的最后一个单元格(这里是F2单元格),
输入="",在双引号里面写入INSERT语句脚本,这里举例oracle语句的insert into语句,格式如
INSERT INTO USER(USER_CODE,USER_NAME,USER_TYPE,IS_ENABLED,IN_DATE)VALUES('""','""','""','""',TO_DATE('""','YYYY-MM-DD'));
鼠标定位到两个中间,依次选择到栏位对应的单元格,如第一列的值定位到A2,这时公式里面的值就变为了A2,意思就是USER_CODE的值就是A2单元格的值,第二列第三列的依次类推.
最后把鼠标光标放到公式最后面,再按Enter键,这样第一行的公式就写好了
鼠标再定位到第一行的公式,鼠标左键按住往下拖动到数据行的最后一行,然后松开按键,这样全部的公式就生成完了。
全部选中公式,右键【复制】,粘贴到记事本中,这样SQL脚本就出来了。
直接放到数据库中执行,这样不就解决问题了吗?
注意事项: SQL语句后面加";"是为了多个SQL
Excel实用技巧1:动态引用某个列的值,生成SQL语句
比如JavaWeb项目,线下批量操作上百或者上千条有异常的SQL记录。如果手动一条条处理,非常容易出错。如果1.将这些异常的SQL记录导出到Excel中,2.然后使用 Excel的动态引用某个列的值 ,这项工作便会变得异常简单、优雅。
excel的公式:
注意点:
1.单元格内的公式:以等号开头,英文""起始结束;
2.动态引用某个列的值:也是英文""起始结束,符号包裹,里面写被引用表格的位置。eg:"A2" 或者 "B8"。
截图:如下
如何将Excel中表结构数据自动生成SQL脚本的方法
一: 在本地PC新建一个Excel文件(例如:excel2007)
准备工作,左键选择excel文本左上角的图标,选择“Excle选项”。1. 点击“信任中心”-“信任中心设置”-“宏设置”-选择“启用所有宏...”选项。“开发人员宏设置”选项也勾选上。 2. 点击“信任中心”-“信任中心设置”-选择“个人信息选项”,将“文档特定设置”上面默认选择去掉,避免在保存脚本时报错。
二: 在本地PC新建一个excel文件(例如: D:/testdate.xlsx)
按快捷键“ALT + F11”进入宏编辑,输入如下代码后保存。summary()为目标生成代码,SQL()为生成SQL脚本文件代码,按条件生成SQL的脚本如下:
Sub summary()
Dim i As Integer
i = 2
ThisWorkbook.Worksheets(1).Columns(2).Clear
For Each sh In ThisWorkbook.Worksheets
If sh.Name " " Then
ThisWorkbook.Worksheets(1).Cells(i, 2).Value = sh.Name
ThisWorkbook.Worksheets(1).Cells(i, 2).Select
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
sh.Name + "!A1", TextToDisplay:=sh.Name
i = i + 1
End If
Next sh
ThisWorkbook.Worksheets(1).Cells.Select
With Selection.Font
.Name = "目录"
.Size = 9
.Strikethrough = False
.Superscript. = False
.Subscript. = False
.OutlineFont = False
.Shadow = False
.TintAndShade = 0
.ThemeFont = xlThemeFontNone
End With
End Sub
Sub SQL()
Dim i As Integer
i = 1
Dim ADO_Stream As Object
Dim strSQL, strDelSQL As String
Dim strTblName As String
Dim col As Long
Dim row As Long
Dim str As String
Dim PK As String
Dim cnt As Integer
PK = "PK"
Dim rowcounts As Long
rowcounts = 0
Dim filecount As Long
filecount = 0
Set ADO_Stream = CreateObject("ADODB.Stream")
ADO_Stream.Type = 2
ADO_Stream.Mode = 3
ADO_Stream.Charset = "unicode"
ADO_Stream.Open
Dim checkType As String
For Each sh In ThisWorkbook.Worksheets
cnt = 0
If sh.Name " " And InStr(sh.Name, "template") = 0 Then
strTblName = sh.Cells(1, 2).Value
rowcounts = 1
'Insert SQL
row = 6
Do While sh.Cells(row, 1).Value ""
strDelSQL = "delete from " + strTblName + " where "
strSQL = "Insert into " + strTblName + " ("
col = 1
Do While sh.Cells(3, col).Value ""
If col 1 Then
strSQL = strSQL + ", "
End If
strSQL = strSQL + sh.Cells(3, col).Value
col = col + 1
Loop
strSQL = strSQL + ") VALUES ("
col = 1
Do While sh.Cells(3, col).Value ""
str = Trim(CStr(sh.Cells(row, col).Value))
If InStr(Trim(CStr(sh.Cells(2, col).Value)), PK) 0 Then
If cnt 0 Then
strDelSQL = strDelSQL + " and "
End If
strDelSQL = strDelSQL + Trim(CStr(sh.Cells(3, col).Value)) + " = '" + str + "'"
cnt = cnt + 1
End If
If col 1 Then
strSQL = strSQL + ", "
End If
If (InStr(Trim(CStr(sh.Cells(4, col).Value)), "Integer") = 0) And (InStr(Trim(CStr(sh.Cells(4, col).Value)), "Decimal") = 0) And ((InStr(Trim(CStr(sh.Cells(4, col).Value)), "DATE") = 0) Or _
((Len(str) 0) And (InStr(Trim(CStr(sh.Cells(4, col).Value)), "DATE") 0))) Then
If (Len(str) = 0) And (InStr(Trim(CStr(sh.Cells(5, col).Value)), "No") = 0) Then
str = "NULL"
ElseIf InStr(Trim(CStr(sh.Cells(4, col).Value)), "DATE") 0 Then
str = "to_date('" + str + "','yyyy-mm-dd hh24:mi:ss')"
Else
str = "'" + str + "'"
End If
strSQL = strSQL + str
ElseIf (Len(str) = 0) And (InStr(Trim(CStr(sh.Cells(4, col).Value)), "DATE") 0) Then
strSQL = strSQL + "NULL"
Else
If (Len(str) = 0) And (InStr(Trim(CStr(sh.Cells(5, col).Value)), "No") = 0) Then
str = "NULL"
End If
strSQL = strSQL + str
End If
col = col + 1
Loop
strDelSQL = strDelSQL + ";" + vbCrLf
ADO_Stream.WriteText strDelSQL
strSQL = strSQL + ");" + vbCrLf
ADO_Stream.WriteText strSQL
row = row + 1
Loop
End If
i = i + 1
rowcounts = 0
filecount = 0
Next sh
ADO_Stream.SaveToFile ThisWorkbook.Path "/MstSQL(delete by condition).txt", 2
ADO_Stream.Close
Set ADO_Stream = Nothing
End Sub
点击“保存”宏脚本,主要的一步完成。
三: 在excel文件(test.xlsx)的首页创建两个图标,分别选择右键指定宏,一个指定上面的summary(),一个指定上面的SQL()。然后就可以在后续的sheet页创建自己需要生成SQL脚本的表结构名称了,记得每个sheet页面对应一个表结构及数据,使用方法如下:
A,将需要更新的对象表数据整个sheet拷进工具中,数据只保留需要更新的数据。
B,在第2行标出主键字段,填上“PK”即可。
看看代码
EXCEL生成SQL建表脚本
1.第一行内容为表头,描述对应的信息
2.表名前面的序号为空
3.索引前面的序号写INDEX(大小写都可以)
4.两个表之间空一行,索引与表也空一行
1.excel和对应的jar包放在同一个文件夹中
2.双击startcreate.bat