數(shù)據(jù)庫(kù)基本知識(shí)數(shù)據(jù)采集與分析課件_第1頁(yè)
數(shù)據(jù)庫(kù)基本知識(shí)數(shù)據(jù)采集與分析課件_第2頁(yè)
數(shù)據(jù)庫(kù)基本知識(shí)數(shù)據(jù)采集與分析課件_第3頁(yè)
數(shù)據(jù)庫(kù)基本知識(shí)數(shù)據(jù)采集與分析課件_第4頁(yè)
數(shù)據(jù)庫(kù)基本知識(shí)數(shù)據(jù)采集與分析課件_第5頁(yè)
已閱讀5頁(yè),還剩63頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論