一、excel怎樣與數(shù)據(jù)庫(kù)進(jìn)行連接并可以直接在excel中操作數(shù)據(jù)庫(kù)中的表
名列前茅種是用Excel自帶的獲取外部數(shù)據(jù)功能,第二種是用Excel VBA,第三種是用專業(yè)的第三方插件。
1、用Excel自帶的獲取外部數(shù)據(jù)功能連接Sql Server數(shù)據(jù)庫(kù)
點(diǎn)擊“數(shù)據(jù)”->“自其他來(lái)源”->“來(lái)自Sql Server”->填寫登錄信息->選擇數(shù)據(jù)庫(kù)和表->下一步->完成。
2、用Excel VBA連接Sql Server數(shù)據(jù)庫(kù)
點(diǎn)擊“工具”->“引用”添加以下引用:
Microsoft ActiveX Data Objects 2.8 Libary
Microsoft ActiveX Data Objects Records 2.8 Libary
Microsoft ADO Ext.2.8 For Dll and Security
Microsoft Forms 2.0 Object Libary
這樣我們就可以自己配置數(shù)據(jù)庫(kù)連接信息了
新建一個(gè)模塊專門用來(lái)寫數(shù)據(jù)庫(kù)的常用操作比如我們給這個(gè)模塊取名為Mdl_public,首先在這個(gè)模塊中定義以下幾個(gè)公共變量
Public cat As New ADOX.Catalog
Public Conn As New ADODB.Connection ‘定義數(shù)據(jù)鏈接對(duì)象 ,保存連接數(shù)據(jù)庫(kù)信息;請(qǐng)先添加ADO引用
Public rs As New ADODB.Recordset ‘定義記錄集對(duì)象,保存數(shù)據(jù)表
Public Strsql As String
‘打開(kāi)數(shù)據(jù)庫(kù)連接
Public Sub OpenSql()
If Conn.State = 1 Then Conn.Close
If Conn.State = 0 Then
With ThisWorkbook.Sheets(“sys”)
Conn.Open “Provider=sqloledb;” & _
” Server=” & .Cells(1, 2).Value & _
“;Database=” & .Cells(2, 2).Value & _
“;Uid=” & .Cells(3, 2).Value & _
“;Pwd=” & .Cells(4, 2).Value & “;” ‘定義數(shù)據(jù)庫(kù)鏈接字符串
End With
End If
End Sub
‘關(guān)閉數(shù)據(jù)庫(kù)連接
Public Sub CloseConn()
rs.Close
Conn.Close
End Sub
通過(guò)以上方法就實(shí)現(xiàn)了Sql Server數(shù)據(jù)庫(kù)連接的打開(kāi)和關(guān)閉
接下來(lái),我們要使用連接查詢數(shù)據(jù)庫(kù)中的表,如下:
Sub View前二000Rows(TBName As String)
Strsql = “SELECT 前二000 * FROM ” & TBName
OpenSql ‘打開(kāi)連接
rs.Open Strsql, Conn ‘使用連接
Cells.Clear
Dim i As Integer
For i = 0 To rs.Fields.Count – 1 ‘處理查詢結(jié)果
Cells(1, i + 1).Value = rs.Fields(i).Name
Next i
Cells(2, 1).CopyFromRecordset rs
CloseConn ‘關(guān)閉連接
End Sub
Sub Test()
Call View前二000Rows(“MSreplication_options”)
End Sub
這樣設(shè)計(jì)看上去有些繁瑣,但是當(dāng)做比較大型的項(xiàng)目時(shí)這樣處理好處很多。名列前茅方便配置數(shù)據(jù)庫(kù),第二常用的數(shù)據(jù)庫(kù)操作功能封裝起來(lái)方便調(diào)用。比如查詢數(shù)據(jù)庫(kù)要經(jīng)歷三個(gè)步驟:1,打開(kāi)連接(OpenSql) 2,執(zhí)行查詢語(yǔ)句(rs.Open Strsql, Conn )3,關(guān)閉連接(CloseConn)
3、用SqlCel連接Sql Server數(shù)據(jù)庫(kù)
SqlCel連接數(shù)據(jù)庫(kù)非常方便。SqlCel不僅可以連接Sql Server數(shù)據(jù)庫(kù),同時(shí)也可以連接Mysql、Oracle和文件夾。
延伸閱讀:
二、SQL是什么
Structured Query Language
‘SQL’是結(jié)構(gòu)化查詢語(yǔ)言,是一種用來(lái)操作?RDBMS?的數(shù)據(jù)庫(kù)語(yǔ)言,當(dāng)前關(guān)系型數(shù)據(jù)庫(kù)都支持使用SQL語(yǔ)言進(jìn)行操作,也就是說(shuō)可以通過(guò)?SQL?操作 oracle,sql server,mysql,sqlite 等等所有的關(guān)系型的數(shù)據(jù)庫(kù)
SQL語(yǔ)句主要分為:DQL:數(shù)據(jù)查詢語(yǔ)言,用于對(duì)數(shù)據(jù)進(jìn)行查詢,如select**
DML:數(shù)據(jù)操作語(yǔ)言,對(duì)數(shù)據(jù)進(jìn)行增加、修改、刪除,如insert、udpate、delete**
TPL:事務(wù)處理語(yǔ)言,對(duì)事務(wù)進(jìn)行處理,包括begin transaction、commit、rollback
DCL:數(shù)據(jù)控制語(yǔ)言,進(jìn)行授權(quán)與權(quán)限回收,如grant、revoke
DDL:數(shù)據(jù)定義語(yǔ)言,進(jìn)行數(shù)據(jù)庫(kù)、表的管理等,如create、drop
CCL:指針控制語(yǔ)言,通過(guò)控制指針完成表的操作,如declare cursor對(duì)于web程序員來(lái)講,重點(diǎn)是數(shù)據(jù)的crud(增刪改查),必須熟練編寫DQL、DML,能夠編寫DDL完成數(shù)據(jù)庫(kù)、表的操作,其它語(yǔ)言如TPL、DCL、CCL了解即可SQL 是一門特殊的語(yǔ)言,專門用來(lái)操作關(guān)系數(shù)據(jù)庫(kù)不區(qū)分大小寫