sql从excel查询数据
1. 如何在Excel中使用sql语言实现数据查询
1、选中表格后单击右键选择“定义名称”。
2、单击后,出现命名对话框。
3、这里将表1和表2分别命名为Table1和Table2。
4、选择上方的“数据”选项卡,选择“自其他来源”下的“来自Microsoft Query ”选项。
5、在弹出的对话框中选择Excel Files*那一项,并且把对话框下面的“使用“查询向导”创建/编辑查询”勾掉。
6、点击“确定”,便出现“选择工作簿”的对话框,这里选择包含表1和表2的工作表xxx.xlsx。
7、点击确定后之后弹出添加表的对话框。
8、点击确定后之后弹出添加表的对话框。
9、输入SQL语句的按钮,弹出输入SQL语句的对话框 输入SQL,看到筛选出来的数据表。
10、将筛选出来的数据表再返回至Excel工作表当中,选择菜单中的“文件”——“将数据返回Microsoft Excel”。
2. 在EXCEL中查询SQL数据库
用SqlCel查询Sql Server数据库。SqlCel可以同时支持Mysql,sql server,access,oracal。sqlcel的sql语句可以引用excel单元格的值作为变量。比如楼主要将123替换成Sheet1工作表的A1单元格的内容,那么SQL语句可以这么写
select * from AAA WHERE A = [Sheet1!A1]
这样执行就可以引用A1单元格的值了
3. 如何使用SQL语句实现对Excel工作表数据的查询
--1.开启远程查询支持
exec sp_
configure
'show advanced options' ,1
reconfigure
exec sp_configure 'Ad Hoc Distributed Queries',1
reconfigure
--2.链接Excel Microsoft ACE 12.0 OLE DB Provider 读Excel数据(注意Excel必须事先关闭)
select * from
openrowset('Microsoft.ACE.OLEDB.12.0','Excel 12.0;HDR=Yes;DATABASE=C:/Users/nichk/Desktop/data.xls', Sheet1$);
--3.记得用完选项后,关闭这些选项
exec sp_configure 'Ad Hoc Distributed Queries',0
reconfigure
exec sp_configure 'show advanced options',0
reconfigure
--4.查看是不是关闭
exec sp_configure记得电脑必须安装oledb提供程序(可搜索AccessDatabaseEngine.exe在微软官网下载安装),不同的版本访问方式不一样,如下是各版本的访问方式:
--> Jet 引擎访问 Excel 97-2003
select * from
OpenRowSet
('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;HDR=Yes;IMEX=1;Database=D:/97-2003.xls', 'select * from [Sheet1$]')
select * from OpenRowSet('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;HDR=Yes;IMEX=1;Database=D:/97-2003.xls', [Sheet1$])
select * from OpenDataSource('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;HDR=Yes;IMEX=1;Database=D:/97-2003.xls')...[Sheet1$]
select * from OpenDataSource('Microsoft.Jet.OLEDB.4.0', 'Data Source=D:/97-2003.xls;Extended Properties="Excel 8.0;HDR=Yes;IMEX=1"')...[Sheet1$]
--> ACE 引擎访问 Excel 97-2003
select * from OpenRowSet('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;HDR=Yes;IMEX=1;Database=D:/97-2003.xls', 'select * from [Sheet1$]')
select * from OpenRowSet('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;HDR=Yes;IMEX=1;Database=D:/97-2003.xls', [Sheet1$])
select * from OpenDataSource('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;HDR=Yes;IMEX=1;Database=D:/97-2003.xls')...[Sheet1$]
select * from OpenDataSource('Microsoft.ACE.OLEDB.12.0', 'Data Source=D:/97-2003.xls;Extended Properties="Excel 12.0;HDR=Yes;IMEX=1"')...[Sheet1$]
--> ACE 引擎访问 Excel 2007
select * from OpenRowSet('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;HDR=Yes;IMEX=1;Database=D:/2007.xlsx', 'select * from [Sheet1$]')
select * from OpenRowSet('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;HDR=Yes;IMEX=1;Database=D:/2007.xlsx', [Sheet1$])
select * from OpenDataSource('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;HDR=Yes;IMEX=1;Database=D:/2007.xlsx')...[Sheet1$]
select * from OpenDataSource('Microsoft.ACE.OLEDB.12.0', 'Data Source=D:/2007.xlsx;Extended Properties="Excel 12.0;HDR=Yes;IMEX=1"')...[Sheet1$]
4. 怎么使用sql或excel获取需要的数据
Excel程序自带的外部数据连接功能,可以连接SQL服务器。具体步骤为:
1、选择【数据】选项卡,在【获取外部数据】分组,找到【自其他来源】。
2、单击【自其他来源】按钮,打开【选择来源】下拉菜单。
3、选择【来自SQL Server】打开【数据连接向导】对话框。
4、填写服务器名称、登录的用户名及密码等信息,即可成功连接。
5. 如何通过Excel查询MySQL数据库
这里介绍一种非常高效的方法。就是借助Excel插件SqlCel,这个插件在处理数据上面有很多可取之处,非常值得学习。
比如在Excel中有一个订单ID字段,这个字段总共有2千条记录,现在我们要查询这些订单对应的产品名称。
在Mysql数据库中有一张订单表里面存储了所有订单的详细信息。我们该怎样操作才能最快速地查到每个订单的产品名称呢?
多数人的做法应该是把Excel中的数据导入到Mysql中,然后写一个SQL语句匹配订单表,然后把匹配结果再导出来。这种做法也是可以的,只是非常不方便,单是数据的导入可能就会遇到不少麻烦。用SqlCel处理这个问题就简单了
插件安装之后需要连接到Mysql数据库,点击“数据库连接”下的Mysql,输入连接信息。如下:
6. excel用SQL查询
你的链接字符串数据库也要改呀
Public Sub GetData()
Dim Flag, Err As Boolean
Dim Cnn As ADODB.Connection
Dim Rst As ADODB.Recordset
Dim SQL As String
Sheet2.Cells.Clear
Flag = False
Err = True
Set Cnn = New ADODB.Connection
On Error GoTo label
With Cnn
.Provider = "SQLOLEDB"
.ConnectionString = "Driver=SQL Server;Server=服务器;Database=数据库;Uid=账号 ;Pwd=密码;"
.Open
End With
Set Rst = New ADODB.Recordset
SQL = "你的sql"
Rst.Open SQL, Cnn, adOpenKeyset, adLockBatchOptimistic
Sheet2.Range("A1").CopyFromRecordset Rst
Rst.Close
Cnn.Close
Set Rst = Nothing
Set Cnn = Nothing
label:
MsgBox "数据库连接失败啦"
Set Rst = Nothing
Set Cnn = Nothing
End Sub
7. 在excel中查询sql数据库
查询是数据库最常用的操作,也是最重要的操作.SQL语言提供了SELECT语句进行数据库的查询,该语句的一般格式如下:SELECT select listFROM table source!WHE咫search_ condition][GROUP BY group一y_expression]I HAVING search condition][ ORDER BY order expression[ASC I DESC]]其主要元素说明如下:select list要选择的列或表达式的集合。table source基本表或者视图的集合.search condition进行查询的条件.groupee by_expression可以根据某些特定的列进行分组。search condition分组的条件值.order expression查询结果是按照列的集合来进行升序或者降序排序.由于SELECT语句的复杂性,一下面例子涉及到一个客户、订单数据库。客户基本信息表:Customer(CustomerlD,CompanyName,Address,City, Phone, Fax)Customer由客户编号(CustomerlD )、公司名称(CompanyName)、公司地址(Address) .公司所在城市(City)、公司电话(Phone)和传真(Fax) 6个属性组成,其中客户编号(CustomerlD )是关键字.商品信息表:Proct(ProctID, ProctName,UnitPrice)Proct山产品编号(ProctID )、产品名称(ProctName)和产品单价(UnitPrice )3个属性组成,其中产品编号(ProctID )是关键字。客户汀单表:Orders(OrderlD,CustomerID,ProctID,OrderDate,RequiredDate,OrderQuantity)Order由订单编号(OrderlD )、客户编号(CustomerlD )、产品编号(ProctID )、订单日期(OrderDate )、订单预交日(RequiredDate)和订单数量(OrderQuantity) 6个属性组成,其中OrderlD是关键字.
8. Excel表中连接sql并使用sql语句引用excel单元格数据作为查询条件
1、将需要处理的记录复制到一个新的工作表,然后将在数据库表中存在唯一值的列(比如物料编码)后插入一列,用 CONCATENATE函数将其前后加上“'”。