版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
數(shù)據(jù)庫(kù)基本知識(shí)
數(shù)據(jù)采集與分析安徽省審計(jì)廳信息辦數(shù)據(jù)庫(kù)基本知識(shí)
數(shù)據(jù)采集與分析安徽省審計(jì)廳信息辦1現(xiàn)場(chǎng)審計(jì)實(shí)施系統(tǒng)數(shù)據(jù)采集與分析現(xiàn)場(chǎng)審計(jì)實(shí)施系統(tǒng)數(shù)據(jù)采集與分析2數(shù)據(jù)采集概述
通過(guò)多年多的努力探索和實(shí)踐,逐步總結(jié)出一套切實(shí)可行且方便實(shí)用的數(shù)據(jù)采集流程。被審單位財(cái)務(wù)系統(tǒng)數(shù)據(jù)庫(kù)導(dǎo)出(采集)導(dǎo)入本地審計(jì)數(shù)據(jù)庫(kù)系統(tǒng)中進(jìn)行本地?cái)?shù)據(jù)處理(轉(zhuǎn)換)進(jìn)行AO系統(tǒng)導(dǎo)入操作還原被審計(jì)單位財(cái)務(wù)數(shù)據(jù)(分析)。數(shù)據(jù)采集概述3幾點(diǎn)說(shuō)明
在以上流程中,其關(guān)鍵在對(duì)被審計(jì)單位的數(shù)據(jù)導(dǎo)出和本地?cái)?shù)據(jù)的處理過(guò)程最容易出現(xiàn)問(wèn)題。如果處理不當(dāng),可能導(dǎo)致利用AO現(xiàn)場(chǎng)實(shí)施系統(tǒng)進(jìn)行計(jì)算機(jī)審計(jì)的方式以失敗而告終。
處理原則:在導(dǎo)出被審計(jì)單位數(shù)據(jù)過(guò)程中,審計(jì)人員可靈活運(yùn)用ODBC或者直接利用SQL2003-SQL2008自帶的數(shù)據(jù)庫(kù)備份功能直接將所需數(shù)據(jù)導(dǎo)出。在本地?cái)?shù)據(jù)處理過(guò)程中,將數(shù)據(jù)利用數(shù)據(jù)庫(kù)的一些技術(shù)轉(zhuǎn)換為符合AO系統(tǒng)條件的數(shù)據(jù)。幾點(diǎn)說(shuō)明在以上流程中,其關(guān)鍵在對(duì)被審計(jì)單4一、數(shù)據(jù)庫(kù)技術(shù)
當(dāng)今數(shù)據(jù)庫(kù)技術(shù)已成為計(jì)算機(jī)應(yīng)用的核心技術(shù),可以認(rèn)為當(dāng)今任何計(jì)算機(jī)信息系統(tǒng)和計(jì)算機(jī)應(yīng)用系統(tǒng)都與數(shù)據(jù)庫(kù)的應(yīng)用分不開(kāi),數(shù)據(jù)庫(kù)已成為其核心和基礎(chǔ)。而數(shù)據(jù)庫(kù)技術(shù)則使人們對(duì)信息的利用突破了時(shí)間和空間的限制,而成為社會(huì)信息化的重要支撐。
大型數(shù)據(jù)庫(kù)ORACLE、SYBASE、MSSQLServer、INFOMIX、IBMDB2等,中小型數(shù)據(jù)庫(kù)PowerBuild、MSAccess、VisualFoxpro、Paradox一、數(shù)據(jù)庫(kù)技術(shù)當(dāng)今數(shù)據(jù)庫(kù)技術(shù)已成為計(jì)算5各種數(shù)據(jù)庫(kù)數(shù)據(jù)的一般采集方法
由于數(shù)據(jù)庫(kù)系統(tǒng)的種類(lèi)繁多,要想具體的按照某一條固有原則進(jìn)行數(shù)據(jù)的提取是不可行的,需針對(duì)每種數(shù)據(jù)采用不同的方法進(jìn)行采集。
以下方法以各類(lèi)常見(jiàn)數(shù)據(jù)庫(kù)系統(tǒng)與SQL2008的采集規(guī)則。各種數(shù)據(jù)庫(kù)數(shù)據(jù)的一般采集方法由于數(shù)據(jù)庫(kù)6SYSBASE----SQL2008
在被審計(jì)單位數(shù)據(jù)庫(kù)系統(tǒng)上建立ODBC數(shù)據(jù)源--提取SYSBASE數(shù)據(jù)轉(zhuǎn)為MDB(ACCESS)數(shù)據(jù)庫(kù)數(shù)據(jù)--利用移動(dòng)介質(zhì)MDB數(shù)據(jù)拷貝到審計(jì)人員機(jī)器中---利用SQL的導(dǎo)入數(shù)據(jù)庫(kù)功能導(dǎo)入到審計(jì)人員機(jī)器中。SYSBASE----SQL2008在7ORACLE----SQL2008
ORACLE數(shù)據(jù)庫(kù)系統(tǒng)一般常見(jiàn)與小型機(jī)數(shù)據(jù)庫(kù)系統(tǒng)中,由于被其數(shù)據(jù)庫(kù)系統(tǒng)是安裝與UNIX、LINUX系統(tǒng)中,無(wú)法直接在數(shù)據(jù)庫(kù)系統(tǒng)中利用ODBC直接采集。一般常用方法無(wú)法使用,以下將簡(jiǎn)單介紹。
ORACLE數(shù)據(jù)庫(kù)系統(tǒng)一般常見(jiàn)于大型企業(yè)中,采用網(wǎng)絡(luò)傳送數(shù)據(jù),利用這一特點(diǎn),采用網(wǎng)絡(luò)采集方法。在遠(yuǎn)端機(jī)器中建立ODBC數(shù)據(jù)源,利用SQL2000自帶的DTS工具采用網(wǎng)絡(luò)遠(yuǎn)程采集數(shù)據(jù)庫(kù)的方法。將數(shù)據(jù)采集到遠(yuǎn)端數(shù)據(jù)庫(kù)系統(tǒng)中。再利用移動(dòng)設(shè)備將數(shù)據(jù)庫(kù)導(dǎo)入被審計(jì)人員數(shù)據(jù)庫(kù)系統(tǒng)中。ORACLE----SQL2008OR8SQL2000---SQL2008
以這種方法采集數(shù)據(jù)為最簡(jiǎn)單的一種數(shù)據(jù)采集。以下將介紹一種簡(jiǎn)潔的方法。利用數(shù)據(jù)庫(kù)系統(tǒng)自帶數(shù)據(jù)庫(kù)備份功能將數(shù)據(jù)庫(kù)系統(tǒng)直接本份于本地---利用移動(dòng)設(shè)備將數(shù)據(jù)庫(kù)文件拷貝到被審計(jì)人員機(jī)器中--利用MSSQL的數(shù)據(jù)庫(kù)還原功能,將該數(shù)據(jù)庫(kù)文件還原。完成導(dǎo)入功能。SQL2000---SQL2008以這9字段定義數(shù)據(jù)類(lèi)型短整型:-99999~999999整數(shù)型:-9999999999~99999999999日期型:MM/DD/YY字符型:有1-254字符組成邏輯型:真、假浮點(diǎn)型:flot19位有效數(shù)字字段定義數(shù)據(jù)類(lèi)型10
SQL數(shù)據(jù)類(lèi)型數(shù)值型Smallint,Int,Bigint-32768—32767,-2147483648—2147483647字符型Char(n),varchar(n),Text8000,2147483647日期型SmalldatetimeDatetime精確到天,精確到百分之秒2001-11-20SQL數(shù)據(jù)類(lèi)型數(shù)值型11建立表結(jié)構(gòu)、刪除表建立表結(jié)構(gòu)createTABLE表名
(
姓名char(8)notnull,工作單位char(24)notnull,年齡intnotnull,職務(wù)char(10),notnull,編號(hào)char(3)notnull,primarykey(編號(hào)));
//建立“表名”表,且建立姓名8字節(jié),年齡數(shù)值性,編號(hào)3字節(jié),編號(hào)3字節(jié),關(guān)鍵字為編號(hào)。刪除表
DropTABLE<表名>droptable表名
//將“表名”表刪除。建立表結(jié)構(gòu)、刪除表建立表結(jié)構(gòu)12數(shù)據(jù)輸入Insertinto<表>values(‘<字段1值>’,”<字段2值>”..)//將字段1值,字段2值…插入到表中。insertinto表名values('張三','審計(jì)廳','24','辦事員','001');//向表‘表名’中插入一行,其各個(gè)字段為‘張三’,‘審計(jì)廳’,‘24’,‘辦事員’,‘001’insertinto表名values(‘李四’,‘審計(jì)廳’,‘29’,‘辦事員’,‘002');//向表‘表名’中插入一行,其各個(gè)字段為‘李四’,‘審計(jì)廳’,‘29’,‘辦事員’,‘002’數(shù)據(jù)輸入13SQL語(yǔ)句-Select語(yǔ)句語(yǔ)法結(jié)構(gòu)SELECT[ALL|DISTINCT|TOP]<目標(biāo)表達(dá)式1>[,<目標(biāo)表達(dá)式2>]…FROM<表名1>[,表名2]…[WHERE<條件表達(dá)式>][GROUPBY<列名1>][HAVING<條件表達(dá)式>]][ORDERBY<列名2>[ASC|DESC]]
注:GROUPBY分組、
ORDERBY排序
HAVING所有條件、ASC升序、DESC降序SQL語(yǔ)句-Select語(yǔ)句語(yǔ)法結(jié)構(gòu)SELECT[ALL|14檢查表中內(nèi)容/簡(jiǎn)單查詢(xún)、表的復(fù)制select<列名>from<表名>where<條件表達(dá)式>//從表中選擇符合條件的記錄,并將符合的記錄顯示。select表名,編號(hào)from表名
//從表名表中,選擇所有記錄,且只顯示記錄中表名和編號(hào)字段。select*intotable1fromtablewhere<條件表達(dá)式>
//從TABLE表中選擇符合條件表達(dá)式的記錄。并且將這些記錄插入到TABLE1中。檢查表中內(nèi)容/簡(jiǎn)單查詢(xún)、表的復(fù)制select<列名>fr15記錄修改、刪除表記錄記錄修改Update<表>set<字段>=數(shù)值
update表名set表號(hào)=‘002’//更新“表名”表,并將所有表號(hào)字段都改為002
update表名set表號(hào)=‘002’where<條件1>
//更新“表名”表,并將符合以上where<條件1>的所有記錄的表號(hào)字段全部改為002記錄刪除deletefrom<表>where<條件表達(dá)式>
deletefrom表名where表號(hào)=002
//刪除“表名”表中,表號(hào)字段等于002的所有記錄。記錄修改、刪除表記錄記錄修改16關(guān)系運(yùn)算符=等于<小于<=小于等于>大于>=大于等于<>/!不等于關(guān)系運(yùn)算符=等于17邏輯運(yùn)算符or或and且Not非邏輯運(yùn)算符or18特殊運(yùn)算符between定義一個(gè)區(qū)間范圍isnull測(cè)試屬性是否為空Like字符串匹配操作符In檢查屬性是否屬于一組值之中exists檢查屬性是否有值特殊運(yùn)算符between定義一19特殊運(yùn)算符select*from表名where年齡between20and30//從“表名”表中選擇年齡在20-30之間的所有記錄。select*from表名where編號(hào)ISNULL//從“表名”表中選擇編號(hào)字段為NULL的所有記錄。
%表示零或者多個(gè)字符
_表示任一個(gè)字符select*from表名where表名like‘表%’//從“表名”表中選擇表名字段中包涵以“表”字開(kāi)頭的所有記錄。select*from表名where年齡in('24','30')
//從“表名”表中選擇年齡字段值為24或者30的所有記錄。select*from表名where編號(hào)exists
//從“表名”表中選擇編號(hào)是否有值的所有記錄。特殊運(yùn)算符select*from表名where年齡20摘要包含“費(fèi)”Where摘要LIKE'%費(fèi)%'摘要以“費(fèi)”結(jié)束Where摘要LIKE'%費(fèi)'摘要以“費(fèi)”開(kāi)始Where摘要LIKE'費(fèi)%‘摘要第二個(gè)字是“費(fèi)”Where摘要LIKE‘_費(fèi)%‘摘要倒數(shù)第三個(gè)字是“費(fèi)”Where摘要LIKE‘%費(fèi)__'摘要為空WhereTrim(摘要)=‘'or摘要isnull摘要包含“費(fèi)”21復(fù)雜的數(shù)據(jù)管理命令alterbable<表>modify(<列名><新的性質(zhì)>)alterbable表名modify(編號(hào)char(5))
將“表名”表中的編號(hào)字段修改為5字符的字段。alterbable<表>add(<新列名><新列的性質(zhì)>)alterbable表名add(numberchar(3))
在“表名”表中增加number字段并修改為3字符的字段復(fù)雜的數(shù)據(jù)管理命令alterbable<表>modif22排序、消除重復(fù)排序select*from<表>orderby列名[desc]select*from表名orderby編號(hào)
從“表名”表中選擇所有記錄,并按編號(hào)順序(默認(rèn)升序)進(jìn)行排列。消除重復(fù)selectdistinct<字段>from<表>selectdistinct編號(hào)from表名
將“表名”表中的編號(hào)字段中的記錄消除重復(fù)記錄。排序、消除重復(fù)排序23sql函數(shù)Count計(jì)數(shù)
Min尋找最小值Max尋找最大值A(chǔ)vg求平均值Sum求和sql函數(shù)Count計(jì)數(shù)24連接數(shù)據(jù)庫(kù)的表
Select<表1.列名>,<表2.列名>from表1,表2where<表1.列名>=<表2.列名>
例:select學(xué)生表.姓名,成績(jī)表.成績(jī),成績(jī)表.課程名from學(xué)生表,成績(jī)表where學(xué)生表.學(xué)生號(hào)=成績(jī)表.學(xué)生號(hào)
將學(xué)生表和成績(jī)表按學(xué)生號(hào)連接,并查詢(xún)學(xué)生每門(mén)課程的成績(jī)。連接數(shù)據(jù)庫(kù)的表Select<表1.列名>25AO中使用SQL語(yǔ)句簡(jiǎn)例
使用前先打開(kāi)AO,從<審計(jì)分析>菜單→<帳表分析>→<電子帳簿管理>,選擇電子帳簿→<數(shù)據(jù)分析>。把每條語(yǔ)句寫(xiě)到SQL編輯器中,然后點(diǎn)擊<執(zhí)行SQL到排序表>,我們就可以看到執(zhí)行結(jié)果。
基本語(yǔ)法
SELECTselect_list[INTO新表名]FROM表一,[表二]…….[WHERE條件表達(dá)式][GROUPBY列名][HAVING條件表達(dá)式][ORDERBY列名[ASC|DESC]]
其中[]中的內(nèi)容為可選項(xiàng),根據(jù)使用者需要而選擇,
SELECT和FROM為必選項(xiàng)。AO中使用SQL語(yǔ)句簡(jiǎn)例261、不帶任何選項(xiàng)的最基本SQL語(yǔ)句select*from憑證庫(kù)
//選擇憑證庫(kù)中所有信息,*表示所有列select科目編碼,科目名稱(chēng),摘要,憑證日期,借方金額,貸方金額from憑證庫(kù)
//從憑證庫(kù)中選擇以上幾列。selectdistinct科目編碼from憑證庫(kù)
//如果不要distinct,表示從憑證庫(kù)中選擇科目編碼,加上distinct表示去掉那些重復(fù)科目編碼,使每個(gè)科目編碼都唯一。
Selectsum(借方金額),sum(貸方金額)from憑證庫(kù)
//求憑證庫(kù)中所有憑證的借方發(fā)生額總和和貸方發(fā)生額總和,此語(yǔ)句可以查看借貸發(fā)生額是否平衡。
Selectsum(借方金額)as借方發(fā)生總額,sum(貸方金額)as貸方發(fā)生總額from憑證庫(kù)
//注意和上個(gè)語(yǔ)句之間的差別,以as含義。
1、不帶任何選項(xiàng)的最基本SQL語(yǔ)句select*fr272、帶有條件(where)的SQL語(yǔ)句select*from憑證庫(kù)where科目編碼=‘101’
//在憑證庫(kù)中選擇與現(xiàn)金有關(guān)的憑證,有的科目設(shè)置中現(xiàn)金為’1001’,可能要做變化。
Select科目編碼,科目名稱(chēng),摘要,憑證日期,借方金額,貸方金額from憑證庫(kù)where摘要like'%招待費(fèi)%'
//通過(guò)摘要選擇與招待費(fèi)有關(guān)的憑證,不顯示所有列只顯示以上幾列Selectsum(借方金額)as現(xiàn)金借方發(fā)生總額,sum(貸方金額)as現(xiàn)金貸方發(fā)生總額from憑證庫(kù)where科目編碼like'101%'and憑證日期between#2004-07-01#and#2004-12-31#
//在憑證庫(kù)中統(tǒng)計(jì)7到12月份現(xiàn)金的借貸發(fā)生總額。And表示并列條件,兩個(gè)條件都要滿(mǎn)足2、帶有條件(where)的SQL語(yǔ)句select*fr28select*from憑證庫(kù)where科目編碼like'101%'and貸方金額>5000and摘要notlike'%工資%'and摘要notlike'%獎(jiǎng)金%'and摘要notlike'%稿費(fèi)%'and摘要notlike'%補(bǔ)%'and摘要notlike'%津貼%'and摘要notlike'%勞保%'and摘要notlike'%福利%'and摘要notlike'%出差%'and摘要notlike'%差旅費(fèi)%'
//篩選出“貸:現(xiàn)金”,且摘要中不含“工資”或“獎(jiǎng)金”或“稿費(fèi)”或“補(bǔ)”或“津貼”或“勞?!被颉案@被颉俺霾睢被颉安盥觅M(fèi)”字段,且現(xiàn)金貸方發(fā)生額大于結(jié)算起點(diǎn)(5000元)的所有記錄,此語(yǔ)句目的為審查除發(fā)工資、獎(jiǎng)金或借差旅費(fèi)等情況之外,使用現(xiàn)金是否超范圍、超限額。以5000做為界點(diǎn),使用者在使用是可能要對(duì)其做具體修改。如果現(xiàn)在科目不為101,可能對(duì)編碼也要做修改。
select*from憑證庫(kù)where科目編碼l293、帶有分組的(groupby)語(yǔ)句
GROUPBY主要是對(duì)表中的信息細(xì)化分組,對(duì)屬于同組信息進(jìn)行統(tǒng)計(jì),一般與函數(shù)一起使用。select科目編碼,sum(借方金額),sum(貸方金額)from憑證庫(kù)where科目編碼like‘113%’groupby科目編碼
//在憑證庫(kù)中統(tǒng)計(jì)其他應(yīng)受款(113)中各末級(jí)科目的年借方發(fā)生額和貸方發(fā)生額。selectleft(科目編碼,5),sum(借方金額),sum(貸方金額)from憑證庫(kù)where科目編碼like'113%'groupbyleft(科目編碼,5)
//在憑證庫(kù)中統(tǒng)計(jì)其他應(yīng)受款(113)中二級(jí)科目(二級(jí)科目長(zhǎng)度為5)的年借方發(fā)生總額和貸方發(fā)生總額。在本例中,可通過(guò)調(diào)整長(zhǎng)度來(lái)控制所求的科目級(jí)別,如果是3就是求其他應(yīng)受款所有借貸方總額,如果是7就是所有的三級(jí)科目借貸方總額。當(dāng)然其具體數(shù)值大小根據(jù)實(shí)際編碼長(zhǎng)度為準(zhǔn)。3、帶有分組的(groupby)語(yǔ)句GROUP30selectleft(科目編碼,5)as二級(jí)科目編碼,month(憑證日期)as月份,sum(借方金額)as月借方額,sum(貸方金額)as月貸方總額from憑證庫(kù)where科目編碼like'113%'groupbyleft(科目編碼,6),month(憑證日期)
//上例是對(duì)年度求借貸發(fā)生總額,本語(yǔ)句是求出其他應(yīng)收款(113)中二級(jí)科目的每個(gè)月的借貸發(fā)生總額。同樣改變數(shù)字大小可以改變所求的科目級(jí)別。
本組例子是對(duì)其他應(yīng)收款(113)為例,使用時(shí)也可以根據(jù)需要對(duì)其他科目統(tǒng)計(jì)借貸發(fā)生年總額或月總額。主要應(yīng)用與報(bào)表或總帳的核對(duì)。
selectleft(科目編碼,5)as二級(jí)科目編碼,314、多個(gè)表關(guān)聯(lián)selecta.*from憑證庫(kù)asainnerjoin憑證庫(kù)asbona.憑證日期=b.憑證日期anda.憑證號(hào)=b.憑證號(hào)whereb.科目編碼like‘101%’and(b.借方金額>5000orb.貸方金額>5000)//通過(guò)兩張憑證庫(kù)關(guān)聯(lián)檢索出現(xiàn)金收支大于5000元的憑證數(shù)據(jù)。selecta.*from憑證庫(kù)asa,憑證庫(kù)asb,憑證庫(kù)ascwherea.憑證日期=b.憑證日期anda.憑證號(hào)=b.憑證號(hào)andc.憑證日期=b.憑證日期andc.憑證號(hào)=b.憑證號(hào)andb.科目編碼like'503%'andb.借方金額<>0andnot(c.科目編碼like'102%')
//通過(guò)憑證庫(kù)三次關(guān)聯(lián),檢索出所有借方撥出專(zhuān)款,貸方非‘銀行存款’的憑證數(shù)據(jù)。審計(jì)有無(wú)虛列專(zhuān)款支出,轉(zhuǎn)移資金的問(wèn)題4、多個(gè)表關(guān)聯(lián)selecta.*from憑證庫(kù)as32二、數(shù)據(jù)采集實(shí)例二、數(shù)據(jù)采集實(shí)例33謝謝大家謝謝大家34數(shù)據(jù)庫(kù)基本知識(shí)
數(shù)據(jù)采集與分析安徽省審計(jì)廳信息辦數(shù)據(jù)庫(kù)基本知識(shí)
數(shù)據(jù)采集與分析安徽省審計(jì)廳信息辦35現(xiàn)場(chǎng)審計(jì)實(shí)施系統(tǒng)數(shù)據(jù)采集與分析現(xiàn)場(chǎng)審計(jì)實(shí)施系統(tǒng)數(shù)據(jù)采集與分析36數(shù)據(jù)采集概述
通過(guò)多年多的努力探索和實(shí)踐,逐步總結(jié)出一套切實(shí)可行且方便實(shí)用的數(shù)據(jù)采集流程。被審單位財(cái)務(wù)系統(tǒng)數(shù)據(jù)庫(kù)導(dǎo)出(采集)導(dǎo)入本地審計(jì)數(shù)據(jù)庫(kù)系統(tǒng)中進(jìn)行本地?cái)?shù)據(jù)處理(轉(zhuǎn)換)進(jìn)行AO系統(tǒng)導(dǎo)入操作還原被審計(jì)單位財(cái)務(wù)數(shù)據(jù)(分析)。數(shù)據(jù)采集概述37幾點(diǎn)說(shuō)明
在以上流程中,其關(guān)鍵在對(duì)被審計(jì)單位的數(shù)據(jù)導(dǎo)出和本地?cái)?shù)據(jù)的處理過(guò)程最容易出現(xiàn)問(wèn)題。如果處理不當(dāng),可能導(dǎo)致利用AO現(xiàn)場(chǎng)實(shí)施系統(tǒng)進(jìn)行計(jì)算機(jī)審計(jì)的方式以失敗而告終。
處理原則:在導(dǎo)出被審計(jì)單位數(shù)據(jù)過(guò)程中,審計(jì)人員可靈活運(yùn)用ODBC或者直接利用SQL2003-SQL2008自帶的數(shù)據(jù)庫(kù)備份功能直接將所需數(shù)據(jù)導(dǎo)出。在本地?cái)?shù)據(jù)處理過(guò)程中,將數(shù)據(jù)利用數(shù)據(jù)庫(kù)的一些技術(shù)轉(zhuǎn)換為符合AO系統(tǒng)條件的數(shù)據(jù)。幾點(diǎn)說(shuō)明在以上流程中,其關(guān)鍵在對(duì)被審計(jì)單38一、數(shù)據(jù)庫(kù)技術(shù)
當(dāng)今數(shù)據(jù)庫(kù)技術(shù)已成為計(jì)算機(jī)應(yīng)用的核心技術(shù),可以認(rèn)為當(dāng)今任何計(jì)算機(jī)信息系統(tǒng)和計(jì)算機(jī)應(yīng)用系統(tǒng)都與數(shù)據(jù)庫(kù)的應(yīng)用分不開(kāi),數(shù)據(jù)庫(kù)已成為其核心和基礎(chǔ)。而數(shù)據(jù)庫(kù)技術(shù)則使人們對(duì)信息的利用突破了時(shí)間和空間的限制,而成為社會(huì)信息化的重要支撐。
大型數(shù)據(jù)庫(kù)ORACLE、SYBASE、MSSQLServer、INFOMIX、IBMDB2等,中小型數(shù)據(jù)庫(kù)PowerBuild、MSAccess、VisualFoxpro、Paradox一、數(shù)據(jù)庫(kù)技術(shù)當(dāng)今數(shù)據(jù)庫(kù)技術(shù)已成為計(jì)算39各種數(shù)據(jù)庫(kù)數(shù)據(jù)的一般采集方法
由于數(shù)據(jù)庫(kù)系統(tǒng)的種類(lèi)繁多,要想具體的按照某一條固有原則進(jìn)行數(shù)據(jù)的提取是不可行的,需針對(duì)每種數(shù)據(jù)采用不同的方法進(jìn)行采集。
以下方法以各類(lèi)常見(jiàn)數(shù)據(jù)庫(kù)系統(tǒng)與SQL2008的采集規(guī)則。各種數(shù)據(jù)庫(kù)數(shù)據(jù)的一般采集方法由于數(shù)據(jù)庫(kù)40SYSBASE----SQL2008
在被審計(jì)單位數(shù)據(jù)庫(kù)系統(tǒng)上建立ODBC數(shù)據(jù)源--提取SYSBASE數(shù)據(jù)轉(zhuǎn)為MDB(ACCESS)數(shù)據(jù)庫(kù)數(shù)據(jù)--利用移動(dòng)介質(zhì)MDB數(shù)據(jù)拷貝到審計(jì)人員機(jī)器中---利用SQL的導(dǎo)入數(shù)據(jù)庫(kù)功能導(dǎo)入到審計(jì)人員機(jī)器中。SYSBASE----SQL2008在41ORACLE----SQL2008
ORACLE數(shù)據(jù)庫(kù)系統(tǒng)一般常見(jiàn)與小型機(jī)數(shù)據(jù)庫(kù)系統(tǒng)中,由于被其數(shù)據(jù)庫(kù)系統(tǒng)是安裝與UNIX、LINUX系統(tǒng)中,無(wú)法直接在數(shù)據(jù)庫(kù)系統(tǒng)中利用ODBC直接采集。一般常用方法無(wú)法使用,以下將簡(jiǎn)單介紹。
ORACLE數(shù)據(jù)庫(kù)系統(tǒng)一般常見(jiàn)于大型企業(yè)中,采用網(wǎng)絡(luò)傳送數(shù)據(jù),利用這一特點(diǎn),采用網(wǎng)絡(luò)采集方法。在遠(yuǎn)端機(jī)器中建立ODBC數(shù)據(jù)源,利用SQL2000自帶的DTS工具采用網(wǎng)絡(luò)遠(yuǎn)程采集數(shù)據(jù)庫(kù)的方法。將數(shù)據(jù)采集到遠(yuǎn)端數(shù)據(jù)庫(kù)系統(tǒng)中。再利用移動(dòng)設(shè)備將數(shù)據(jù)庫(kù)導(dǎo)入被審計(jì)人員數(shù)據(jù)庫(kù)系統(tǒng)中。ORACLE----SQL2008OR42SQL2000---SQL2008
以這種方法采集數(shù)據(jù)為最簡(jiǎn)單的一種數(shù)據(jù)采集。以下將介紹一種簡(jiǎn)潔的方法。利用數(shù)據(jù)庫(kù)系統(tǒng)自帶數(shù)據(jù)庫(kù)備份功能將數(shù)據(jù)庫(kù)系統(tǒng)直接本份于本地---利用移動(dòng)設(shè)備將數(shù)據(jù)庫(kù)文件拷貝到被審計(jì)人員機(jī)器中--利用MSSQL的數(shù)據(jù)庫(kù)還原功能,將該數(shù)據(jù)庫(kù)文件還原。完成導(dǎo)入功能。SQL2000---SQL2008以這43字段定義數(shù)據(jù)類(lèi)型短整型:-99999~999999整數(shù)型:-9999999999~99999999999日期型:MM/DD/YY字符型:有1-254字符組成邏輯型:真、假浮點(diǎn)型:flot19位有效數(shù)字字段定義數(shù)據(jù)類(lèi)型44
SQL數(shù)據(jù)類(lèi)型數(shù)值型Smallint,Int,Bigint-32768—32767,-2147483648—2147483647字符型Char(n),varchar(n),Text8000,2147483647日期型SmalldatetimeDatetime精確到天,精確到百分之秒2001-11-20SQL數(shù)據(jù)類(lèi)型數(shù)值型45建立表結(jié)構(gòu)、刪除表建立表結(jié)構(gòu)createTABLE表名
(
姓名char(8)notnull,工作單位char(24)notnull,年齡intnotnull,職務(wù)char(10),notnull,編號(hào)char(3)notnull,primarykey(編號(hào)));
//建立“表名”表,且建立姓名8字節(jié),年齡數(shù)值性,編號(hào)3字節(jié),編號(hào)3字節(jié),關(guān)鍵字為編號(hào)。刪除表
DropTABLE<表名>droptable表名
//將“表名”表刪除。建立表結(jié)構(gòu)、刪除表建立表結(jié)構(gòu)46數(shù)據(jù)輸入Insertinto<表>values(‘<字段1值>’,”<字段2值>”..)//將字段1值,字段2值…插入到表中。insertinto表名values('張三','審計(jì)廳','24','辦事員','001');//向表‘表名’中插入一行,其各個(gè)字段為‘張三’,‘審計(jì)廳’,‘24’,‘辦事員’,‘001’insertinto表名values(‘李四’,‘審計(jì)廳’,‘29’,‘辦事員’,‘002');//向表‘表名’中插入一行,其各個(gè)字段為‘李四’,‘審計(jì)廳’,‘29’,‘辦事員’,‘002’數(shù)據(jù)輸入47SQL語(yǔ)句-Select語(yǔ)句語(yǔ)法結(jié)構(gòu)SELECT[ALL|DISTINCT|TOP]<目標(biāo)表達(dá)式1>[,<目標(biāo)表達(dá)式2>]…FROM<表名1>[,表名2]…[WHERE<條件表達(dá)式>][GROUPBY<列名1>][HAVING<條件表達(dá)式>]][ORDERBY<列名2>[ASC|DESC]]
注:GROUPBY分組、
ORDERBY排序
HAVING所有條件、ASC升序、DESC降序SQL語(yǔ)句-Select語(yǔ)句語(yǔ)法結(jié)構(gòu)SELECT[ALL|48檢查表中內(nèi)容/簡(jiǎn)單查詢(xún)、表的復(fù)制select<列名>from<表名>where<條件表達(dá)式>//從表中選擇符合條件的記錄,并將符合的記錄顯示。select表名,編號(hào)from表名
//從表名表中,選擇所有記錄,且只顯示記錄中表名和編號(hào)字段。select*intotable1fromtablewhere<條件表達(dá)式>
//從TABLE表中選擇符合條件表達(dá)式的記錄。并且將這些記錄插入到TABLE1中。檢查表中內(nèi)容/簡(jiǎn)單查詢(xún)、表的復(fù)制select<列名>fr49記錄修改、刪除表記錄記錄修改Update<表>set<字段>=數(shù)值
update表名set表號(hào)=‘002’//更新“表名”表,并將所有表號(hào)字段都改為002
update表名set表號(hào)=‘002’where<條件1>
//更新“表名”表,并將符合以上where<條件1>的所有記錄的表號(hào)字段全部改為002記錄刪除deletefrom<表>where<條件表達(dá)式>
deletefrom表名where表號(hào)=002
//刪除“表名”表中,表號(hào)字段等于002的所有記錄。記錄修改、刪除表記錄記錄修改50關(guān)系運(yùn)算符=等于<小于<=小于等于>大于>=大于等于<>/!不等于關(guān)系運(yùn)算符=等于51邏輯運(yùn)算符or或and且Not非邏輯運(yùn)算符or52特殊運(yùn)算符between定義一個(gè)區(qū)間范圍isnull測(cè)試屬性是否為空Like字符串匹配操作符In檢查屬性是否屬于一組值之中exists檢查屬性是否有值特殊運(yùn)算符between定義一53特殊運(yùn)算符select*from表名where年齡between20and30//從“表名”表中選擇年齡在20-30之間的所有記錄。select*from表名where編號(hào)ISNULL//從“表名”表中選擇編號(hào)字段為NULL的所有記錄。
%表示零或者多個(gè)字符
_表示任一個(gè)字符select*from表名where表名like‘表%’//從“表名”表中選擇表名字段中包涵以“表”字開(kāi)頭的所有記錄。select*from表名where年齡in('24','30')
//從“表名”表中選擇年齡字段值為24或者30的所有記錄。select*from表名where編號(hào)exists
//從“表名”表中選擇編號(hào)是否有值的所有記錄。特殊運(yùn)算符select*from表名where年齡54摘要包含“費(fèi)”Where摘要LIKE'%費(fèi)%'摘要以“費(fèi)”結(jié)束Where摘要LIKE'%費(fèi)'摘要以“費(fèi)”開(kāi)始Where摘要LIKE'費(fèi)%‘摘要第二個(gè)字是“費(fèi)”Where摘要LIKE‘_費(fèi)%‘摘要倒數(shù)第三個(gè)字是“費(fèi)”Where摘要LIKE‘%費(fèi)__'摘要為空WhereTrim(摘要)=‘'or摘要isnull摘要包含“費(fèi)”55復(fù)雜的數(shù)據(jù)管理命令alterbable<表>modify(<列名><新的性質(zhì)>)alterbable表名modify(編號(hào)char(5))
將“表名”表中的編號(hào)字段修改為5字符的字段。alterbable<表>add(<新列名><新列的性質(zhì)>)alterbable表名add(numberchar(3))
在“表名”表中增加number字段并修改為3字符的字段復(fù)雜的數(shù)據(jù)管理命令alterbable<表>modif56排序、消除重復(fù)排序select*from<表>orderby列名[desc]select*from表名orderby編號(hào)
從“表名”表中選擇所有記錄,并按編號(hào)順序(默認(rèn)升序)進(jìn)行排列。消除重復(fù)selectdistinct<字段>from<表>selectdistinct編號(hào)from表名
將“表名”表中的編號(hào)字段中的記錄消除重復(fù)記錄。排序、消除重復(fù)排序57sql函數(shù)Count計(jì)數(shù)
Min尋找最小值Max尋找最大值A(chǔ)vg求平均值Sum求和sql函數(shù)Count計(jì)數(shù)58連接數(shù)據(jù)庫(kù)的表
Select<表1.列名>,<表2.列名>from表1,表2where<表1.列名>=<表2.列名>
例:select學(xué)生表.姓名,成績(jī)表.成績(jī),成績(jī)表.課程名from學(xué)生表,成績(jī)表where學(xué)生表.學(xué)生號(hào)=成績(jī)表.學(xué)生號(hào)
將學(xué)生表和成績(jī)表按學(xué)生號(hào)連接,并查詢(xún)學(xué)生每門(mén)課程的成績(jī)。連接數(shù)據(jù)庫(kù)的表Select<表1.列名>59AO中使用SQL語(yǔ)句簡(jiǎn)例
使用前先打開(kāi)AO,從<審計(jì)分析>菜單→<帳表分析>→<電子帳簿管理>,選擇電子帳簿→<數(shù)據(jù)分析>。把每條語(yǔ)句寫(xiě)到SQL編輯器中,然后點(diǎn)擊<執(zhí)行SQL到排序表>,我們就可以看到執(zhí)行結(jié)果。
基本語(yǔ)法
SELECTselect_list[INTO新表名]FROM表一,[表二]…….[WHERE條件表達(dá)式][GROUPBY列名][HAVING條件表達(dá)式][ORDERBY列名[ASC|DESC]]
其中[]中的內(nèi)容為可選項(xiàng),根據(jù)使用者需要而選擇,
SELECT和FROM為必選項(xiàng)。AO中使用SQL語(yǔ)句簡(jiǎn)例601、不帶任何選項(xiàng)的最基本SQL語(yǔ)句select*from憑證庫(kù)
//選擇憑證庫(kù)中所有信息,*表示所有列select科目編碼,科目名稱(chēng),摘要,憑證日期,借方金額,貸方金額from憑證庫(kù)
//從憑證庫(kù)中選擇以上幾列。selectdistinct科目編碼from憑證庫(kù)
//如果不要distinct,表示從憑證庫(kù)中選擇科目編碼,加上distinct表示去掉那些重復(fù)科目編碼,使每個(gè)科目編碼都唯一。
Selectsum(借方金額),sum(貸方金額)from憑證庫(kù)
//求憑證庫(kù)中所有憑證的借方發(fā)生額總和和貸方發(fā)生額總和,此語(yǔ)句可以查看借貸發(fā)生額是否平衡。
Selectsum(借方金額)as借方發(fā)生總額,sum(貸方金額)as貸方發(fā)生總額from憑證庫(kù)
//注意和上個(gè)語(yǔ)句之間的差別,以as含義。
1、不帶任何選項(xiàng)的最基本SQL語(yǔ)句select*fr612、帶有條件(where)的SQL語(yǔ)句select*from憑證庫(kù)where科目編碼=‘101’
//在憑證庫(kù)中選擇與現(xiàn)金有關(guān)的憑證,有的科目設(shè)置中現(xiàn)金為’1001’,可能要做變化。
Select科目編碼,科目名稱(chēng),摘要,憑證日期,借方金額,貸方金額from憑證庫(kù)where摘要like'%招待費(fèi)%'
//通過(guò)摘要選擇與招待費(fèi)有關(guān)的憑證,不顯示所有列只顯示以上幾列Selectsum(借方金額)as現(xiàn)金借方發(fā)生總額,sum(貸方金額)as現(xiàn)金貸方發(fā)生總額from憑證庫(kù)where科目編碼like'101%'and憑證日期between#2004-07-01#and#2004-12-31#
//在憑證庫(kù)中統(tǒng)計(jì)7到12月份現(xiàn)金的借貸發(fā)生總額。And表示并列條件,兩個(gè)條件都要滿(mǎn)足2、帶有條件(where)的SQL語(yǔ)句select*fr62select*from憑證庫(kù)where科目編碼like'101%'and貸方金額>5000and摘要notlike'%工資%'and
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年磚廠(chǎng)產(chǎn)權(quán)交易協(xié)議版
- 2024年西雙版納州勐海縣打洛鎮(zhèn)幼兒園教師招聘考試真題
- 2025年畢業(yè)生賀詞致辭樣本(2篇)
- 2024年撫州市婦幼保健院招聘編制外專(zhuān)業(yè)技術(shù)人員考試真題
- 五年級(jí)數(shù)學(xué)(小數(shù)除法)計(jì)算題專(zhuān)項(xiàng)練習(xí)及答案
- 運(yùn)輸購(gòu)銷(xiāo)合同范文
- 清潔生產(chǎn)技術(shù)服務(wù)合同
- 水務(wù)市場(chǎng)機(jī)制改革-洞察分析
- 移動(dòng)期刊可持續(xù)發(fā)展策略-洞察分析
- 文化用品設(shè)計(jì)創(chuàng)新趨勢(shì)研究-洞察分析
- (八省聯(lián)考)河南省2025年高考綜合改革適應(yīng)性演練 思想政治試卷(含答案)
- 綜合測(cè)試 散文閱讀(多文本)(解析版)-2025年高考語(yǔ)文一輪復(fù)習(xí)(新高考)
- 鈑金設(shè)備操作培訓(xùn)
- 2024駕校經(jīng)營(yíng)權(quán)承包合同
- 福建省能化集團(tuán)筆試題目
- 快遞公司與驛站合作協(xié)議模板 3篇
- 水利工程招標(biāo)文件樣本
- 品質(zhì)管控培訓(xùn)質(zhì)量管理與質(zhì)量控制課件
- 小數(shù)加減乘除計(jì)算題大全(300題大全)-
- 2023-2024學(xué)年小學(xué)語(yǔ)文四年級(jí)素養(yǎng)檢測(cè)復(fù)習(xí)試題附答案
- 露天礦山全員安全教育培訓(xùn)
評(píng)論
0/150
提交評(píng)論