畢業(yè)設(shè)計(論文)人事檔案管理系統(tǒng)_第1頁
畢業(yè)設(shè)計(論文)人事檔案管理系統(tǒng)_第2頁
畢業(yè)設(shè)計(論文)人事檔案管理系統(tǒng)_第3頁
畢業(yè)設(shè)計(論文)人事檔案管理系統(tǒng)_第4頁
畢業(yè)設(shè)計(論文)人事檔案管理系統(tǒng)_第5頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、-摘要- 人事檔案管理系統(tǒng)是典型的信息管理系統(tǒng),其開發(fā)主要包括后臺數(shù)據(jù)庫的建立和維護以及前端應用程序的開發(fā)兩個方面。對于前者要求建立起數(shù)據(jù)一致性和完整性強、數(shù)據(jù)安全性好的庫。而對于后者則要求應用程序功能完備,易使用等特點。 隨著科學技術(shù)的不斷提高,計算機科學日漸成熟,其強大的功能已為人們深刻認識,它已進入人類社會的各個領(lǐng)域并發(fā)揮著越來越重要的作用。delphi是面向?qū)ο蟮拈_發(fā)工具,尤其是數(shù)據(jù)窗口這一能方便而簡潔操縱數(shù)據(jù)庫的智能化對象,首先在短時間內(nèi)建立系統(tǒng)應用原型,然后,不斷修正和改進,直到形成用戶滿意的可行系統(tǒng)。關(guān)鍵字:控件、窗體、表。-前言-對于大多數(shù)國企而言,他們有一套比較系統(tǒng)的人力資源

2、管理理念,并建立了一整套比較規(guī)范的人力資源管理方法。在積極建立企業(yè)現(xiàn)代企業(yè)管理機制的今天,僅僅靠原始的手工管理或簡單的單機管理,人力資源部門面對大量的信息,無法有效率地將其中的重要部分提取出來,并做出相應的判斷和處理。集團管理者的決策只能依據(jù)報表數(shù)據(jù),在浪費大量人力、物力的同時無法做到實時監(jiān)控,難以保證數(shù)據(jù)的準確性和及時性。因此,先進的管理思想在企業(yè)中實現(xiàn)就成為了一個可望而不可及的目標。 作為計算機應用的一部分,使用計算機對人事進行管理,具有著手工管理所無法比擬的優(yōu)點.例如:檢索迅速、查找方便、可靠性高、存儲量大、保密性好、壽命長、成本低等。這些優(yōu)點能夠極大地提高商場人事管理的效率,也是科學化

3、、正規(guī)化管理的重要條件。 因此,開發(fā)這樣一套管理軟件成為很有必要的事情,在下面的各章中我們將以開發(fā)一套人事管理系統(tǒng)為例,談?wù)勂溟_發(fā)過程和所涉及到的問題及解決方法。第一章為什么要開發(fā)一個人事管理系統(tǒng)?計算機已經(jīng)成為我們學習和工作的得力助手:人力資源系統(tǒng)選型時提出了以下要求: 1)具有先進的人力資源管理理念; 2)可以滿足多行業(yè)、多公司不同的人力資源管理要求; 3)實現(xiàn)集團化管理,實時監(jiān)控各個專業(yè)、省市子公司的人力資源情況; 4)進行多層次數(shù)據(jù)匯總,為各層次管理者的決策分析提供數(shù)據(jù); 5)具有完整的系統(tǒng)接口,滿足靈活的數(shù)據(jù)導入與導出。 第二章 人事管理系統(tǒng)編程環(huán)境現(xiàn)狀及設(shè)計目標簡介 2.1 del

4、phi和adoactivedataobjects結(jié)合了oledb的普遍性質(zhì)那就是在諸如rdo和dao模型中可以找到的易于使用的特性.ado包含了所有可以被oledb標準接口描述的數(shù)據(jù)類型.換而言之,ado是可擴充的,不需要對你的部件做任何工作.數(shù)據(jù)的訪問和操縱是任何實際的應用程序的一個固有部分.對于數(shù)據(jù)來說,無論它是否是關(guān)系型的,無論它是否存在一個dbms,也無論它的存儲平臺是什么,數(shù)據(jù)就是數(shù)據(jù)一個文件沒有必要一定是給定的二進制格式. 開發(fā)者群體需要具有簡單接口的現(xiàn)代的開發(fā)工具以快速訪問數(shù)據(jù).微軟對此問題的回答是universaldataaccess(uda通用數(shù)據(jù)訪問)體系結(jié)構(gòu),對此,ste

5、phenrauch的文章“managedatafrommyriadsourceswiththeuniversaldataaccessinterfaces”中有詳細的闡述(msj,1997年9月).簡單的說,uda是一種將oledb應用于實際的理論.所有的都被指向一個數(shù)據(jù)源一個電子表格,一條電子郵件消息,或一份as/400文檔由oledb接口過濾并以一種通用的格式表示,這樣應用程序能總是以同樣的方式對數(shù)據(jù)進行訪問.位于oledb上的并處理來自應用程序的調(diào)用的中間層被稱作activedataobjects (ado).它是編寫針對帶有oledb提供者的任何類型的數(shù)據(jù)源的推薦標準.在ado之前的rd

6、o是一種增加dao的客戶/服務(wù)器能力,以提高其性能和可擴充性的當然的方法.根本上說來, rdo是一種位于odbcapi的上層的簡便的封裝.它揭示了了dao數(shù)據(jù)對象模型中的許多東西,但它缺乏進行數(shù)據(jù)訪問的jet引擎.雖然這將予ado更快的速度,但它沒法利用該引擎的許多特性,而且它只能訪問關(guān)系型的數(shù)據(jù)庫. ado2.0的思想就在于:為不同的應用程序訪問相同的數(shù)據(jù)源創(chuàng)建一個更高層的公用層.盡管存在數(shù)據(jù)結(jié)構(gòu)和組織間的物理位置的不同,編程的接口應該是一樣的.為了找出rdo和ado之間的更多的不同, “exploringactivexdataobjectsfromanrdopointofview,你能在m

7、sdn的技術(shù)性文章部分中找到它.ado的出現(xiàn)并不意味著rdo的結(jié)束.實際上,微軟承諾在可以預見的將來繼續(xù)支持rdoado2.0有什么新特點? 對于ado1.5以前包括1.5的版本來說,從功能的角度來看rdo和ado不是完全相等的.等同就意味著你可以通過這兩種方法解決同樣的問題;它不是指存在重命名的或者優(yōu)化的功能相同的對象.因此,移植到ado不是一個簡單的事情.從另一方面來說,一旦你熟練掌握了rdo或dao技術(shù)的話,學習ado是件相當容易的事情ado2.0的新特性包括事件處理,記錄集的延續(xù),分層目錄結(jié)構(gòu)指針和數(shù)據(jù)成形,分布式事務(wù)處理,多維數(shù)據(jù),遠程數(shù)據(jù)服務(wù)(rds),以及對c+和java的支持的

8、增強.在鉆研一些visualbasic代碼的時候?qū)姷剿械倪@些特性.ado對象模型是由相對數(shù)量較少的對象組成.不象rdo對象模型,每個主要的ado對象都能被個別的被創(chuàng)建.這就意味著,舉例說吧,你不需要在創(chuàng)建有效的記錄集對象前創(chuàng)建一個連接.dimcnasnewadodb.connectiondimrsasnewadodb.recordsetcn.openbibliors.openselect*fromtitleswheretitlelike%h,cnado2.0對象是connection,command,parameter,recordset,field,error和property.ado

9、對象模型也包括四個類集:它們分別是一套相關(guān)的error,parameter,property和field對象.讓我們來看看每個對象的主要特性.connection對象提供連接,該連接連接的程序中存有它正在訪問的數(shù)據(jù)源.屬性允許你定義:連接串,命令執(zhí)行以及連接啟動的間隔時間,數(shù)據(jù)提供者,(無論臨時表位置是應該在客戶端還是在服務(wù)器端),和對于數(shù)據(jù)的訪問權(quán)限.方法有關(guān)于如下功能的:執(zhí)行命令,打開和關(guān)閉一個連接和管理事務(wù).在許多地方你可以指定你想使用的提供者:通過provider屬性,在連接字符串中,或者甚至通過open方法.選擇你最喜歡的實現(xiàn)方式,但要保證你沒有為同樣的連接指定多個的提供者.缺省的提

10、供者(當你沒有指定你自己的提供者的情況下)是msdasql,針對odbc的microsoftoledb提供者. command對象定義了一個sql聲明,一個存儲過程,或任何其他的你可能想讓提供者執(zhí)行的關(guān)于數(shù)據(jù)的操作.command的屬性有:當前連接,最大允許執(zhí)行時間和參數(shù)集.一個參數(shù)就是你將它作為參數(shù)傳遞給命令的值.在這些屬性中用以區(qū)分一個參數(shù)的屬性有:方向(輸入,輸出,或者兩者都有),類型當然還有它們的值. 記錄集對象也許是最典型的ado對象,然而它是最復雜的當中的一個.它表示命令執(zhí)行的結(jié)果,并且它大多是以數(shù)據(jù)庫的記錄集的形式給出.一個記錄集是由以行和域的形式表示的信息組成.它不一定非要映射

11、成關(guān)系型數(shù)據(jù)庫的記錄.實際上,如同我早些時候解釋的那樣,ado是基于oledb并且能被用來可視化地訪問任何數(shù)據(jù)源中的數(shù)據(jù),這數(shù)據(jù)源包括非關(guān)系型的數(shù)據(jù)庫.記錄集提供了緩沖能力,它接受數(shù)據(jù)的變化,并且將這些變化以批處理的方式傳給服務(wù)器.你可以瀏覽并對記錄集的內(nèi)容分類,如同列舉和提取行.你也能通過如:刪除,添加和刷新操作等任何方式修改數(shù)據(jù).記錄集存在跟連接的嚴格的關(guān)系,但是這不意味著你總是需要一個打開的連接來獲得一個記錄集.你也可以按如下方式進行:dimrsasnewadodb.recordsetsql=select*fromauthorsrs.opensql,pubs既然connection實際上

12、是數(shù)據(jù)和命令傳送的通道,所以該對象仍然被創(chuàng)建了,除了一個名字叫做recordset.activeconnection的屬性外,它是不可見的并工作在后臺. field對象是一列同類的數(shù)據(jù).它提供了一種這樣的編程接口,即能讓你可以對單個單元的值以及基本的特征如:類型和大小進行讀和寫.所有給定記錄集的field對象形成了一個field集.如我將在后面向你說明的,fields集隱藏著一個引人注目的特性,它將再次證明recordset對象的靈活性.最后是property對象.每個對象都有屬性.提供的使用了ado的對象可能是各種各樣的.但不存在這樣一套屬性即包含了所有可能的oledb提供者的靜態(tài)的屬性.因

13、此,任何一個ado對象都有靜態(tài)和動態(tài)的屬性.第一套屬性集:包括name,type,value和attributes,都可以通過如下的語法來訪問:obj.propertyname最開始的三個屬性都是自我說明性的.attributes是一種數(shù)字式的描述符,它是以按位的跟提供者的能力有關(guān)的一些預定義的屬性組合.(它類似于com服務(wù)器的組件分類).動態(tài)屬性是跟潛在的提供者類型相應的.它們被歸進properties集合,并可以通過名字查詢.obj.properties(propname)thenewrecordsetobject2.2 sql介紹通過sql命令,程序設(shè)計師或數(shù)據(jù)庫管理員(dba)可以:(

14、一)建立數(shù)據(jù)庫的表格。(包括設(shè)置表格所可以使用之空間)(二)改變數(shù)據(jù)庫系統(tǒng)環(huán)境設(shè)置。(三)針對某個數(shù)據(jù)庫或表格,授予用戶存取權(quán)限。(四)對數(shù)據(jù)庫表格建立索引值。(五)修改數(shù)據(jù)庫表格結(jié)構(gòu)。(新建、刪除或是修改表格字段)(六)對數(shù)據(jù)庫進行數(shù)據(jù)的新建。(七)對數(shù)據(jù)庫進行數(shù)據(jù)的刪除。(八)對數(shù)據(jù)庫進行數(shù)據(jù)的修改。(九)對數(shù)據(jù)庫進行數(shù)據(jù)的查詢。這幾項便是通過sql命令可以完成的事情,看起來是不是比起“查詢”兩個字所代表的功能要多的多了呢? sql語法的分類其實sql命令并不是非常多,可是要把sql用到出神入化,卻也只需要短短幾個命令便夠,因為sql命令是針對關(guān)系型數(shù)據(jù)庫所建立出來的語法敘述,所以sql在

15、這類數(shù)據(jù)庫中所發(fā)揮的功能非常的強,以下將針對在vb中常用的sql語法基本命令加以分類介紹。在說明sql的命令以及使用語法之前,以下將sql做了的分類,在致上sql語法所使用到的類型,可以說都已包含在這些類別當中。 第一類、屬性詞(predicates)在sql命令中用來指明所要選擇的記錄的方式。如all、top與distinct等等。第二類、聲明(declaration)針對sql parameter或parameter query 的名稱與數(shù)據(jù)類型做聲明,如parameters的聲明等等。第三類、條件子句(clause)在sql的查詢中,利用一些表達式定義出查詢的條件,以縮小尋找的范圍,如w

16、here。第四類、運算符(operator)與操作數(shù)(operation)在sql的查詢中,與operation共同組成表達式(expression),如between.and 運算符與inner join操作數(shù)。第五類、函數(shù)(function)一些sql常見的函數(shù),像是avg()是求算數(shù)平均數(shù)的函數(shù)。第六類、sql語句(statement)sql的語句,可以說是sql語法的主體,用來對某一個特定的數(shù)據(jù)庫發(fā)出指示,并返回相關(guān)的數(shù)據(jù),而sql的語法結(jié)構(gòu),基本上可以利用下面的式子來表示:命令條件子句例如:select*from tab where tab.name=a其中的“from.where”

17、便是一個條件子句,其實sql的語法并不難,您只需記住這樣的一個規(guī)則,相信可以很快的了解sql用法。 sql語法與命令select 語句selectpredicate*|table.*|table.field ,table.field2,. as alias1 ,alias2,.from tableexpression ,.in externaldatabasewhere.group by.having.order by.with owneraccess option select 語句包括下面幾個部分predicate如前面所述,包括了all,distinct,distinctrow,與top

18、 我們可以利用這樣的語句去限制查詢后所得的結(jié)果。 *從指定表格中指定所有的字段。 table針對被選擇出的記錄的字段,所指定表格的名稱。 field1,field2想要讀取數(shù)據(jù)的字段名稱,如果包含了一個以上的字段,會依照列出的順序來讀取數(shù)據(jù)。 alias1,alias2用來替代在表格實際字段名稱的化名。 tableexpression表格名稱或包含我們所想要的數(shù)據(jù)的表格。 externaldatabase若使用到不是目前的數(shù)據(jù)庫則將其名字定義在externaldatabase當中。 all,distinct,distinctrow,top屬性詞用法select all|distinct|dis

19、tinctrow|top npercent from table all若是不指定任何的字段數(shù)據(jù),則microsoft jet數(shù)據(jù)庫引擎(database engine)將會選擇所有的字段,并依據(jù)所定的條件查詢出需求數(shù)據(jù)集。例如下面這兩個例子將會具有相同的效果,都會從職員表格中返回所有字段的數(shù)據(jù)。例如:若是我們要查詢出職員表格中的所有記錄,可以通過下面的語句來完成。select all* from 職員表格; distinct對某個表格所選擇的字段數(shù)據(jù),略過重復的情況,也就是說,針對某個字段查詢出來的記錄結(jié)果是唯一的。例如有許多存放在職員表格的職員數(shù)據(jù),也許會具有相同的姓名,所以若是我們用sq

20、l語句中的select distinct,則查詢出來的結(jié)果將會針對不一樣的姓名加以篩選。若是您把distinct 加以省略,則這樣的查詢會顯示所有的記錄。 distinctrow將整條記錄重復的記錄忽略掉,而不是只有針對某一個字段的數(shù)據(jù)。 table指定查詢記錄所需要的表格。例如:select distinctrow 公司名稱from 顧客表格 inner join 訂單表格on 顧客表格.顧客id訂單表格.顧客idorder by 公司名稱;如果您忽略 distinctrow 則會對每個公司產(chǎn)生一行以下的訂單數(shù)據(jù)。此外,若是distinctrow只有用在一個表格當中,則會被省略掉。 top從

21、第一條或最后一條開始(利用order by條件子句),返回特定條數(shù)的數(shù)據(jù)。例如:當您想要知道在2000年,班上前25名的學生姓名數(shù)據(jù)時,您可以輸入這樣的語句:select top 25 學生姓名form 學生表格where 畢業(yè)年份=1994order by 畢業(yè)成績平均分數(shù) desc;如果您沒有加上order by 這行條件的話,您所得到的數(shù)據(jù),將會隨機的數(shù)據(jù)。此外,在top語句之后,除了可以加上數(shù)字以外,還可以利用保留字percent來查詢。例如:select top 10 percent學生姓名from學生表格where畢業(yè)年份=1994order by畢業(yè)成績平均desc; param

22、eters(參數(shù))聲明的用法對于參數(shù)型的查詢語法中,對參數(shù)的名稱以及數(shù)據(jù)類型作 聲明的操作。parameters name datatype,name datatype,. nameparameters的名稱。您可以把參數(shù)名稱當作字符串來使用,若是名稱中包含了空字符串,可以利用中括號來處理,例如:“vbeden”。 datatype輸入?yún)?shù)的數(shù)據(jù)類型。例如:若是您在查詢時,需要機動的輸入姓名 ,可以利用下列的方式完成:parameters “輸入姓名” text;select*from 職員表格where姓名=“輸入姓名:”;order by條件語句此條件子句,通常與select語句合并使用目

23、的是將查詢的結(jié)果,依照指定字段加以排序。select fieldlistfrom tablewhere selectcriteriaorder by fieldasc|desc,field2asc|desc,. fieldlist欲查詢的字段名稱。其中可以與all,distinct,disinctrow,或top一起來使用。 table欲查詢的表格名稱。 selectcriteria查詢的標準設(shè)置。 field1指定要依照那個字段作為排序的依據(jù),若是你沒有加上order by查詢出的數(shù)據(jù)集將不會作排序的操作。 asc遞增順序類別。(默認值) desc遞減順序類別。例如:或是我們要將輸出數(shù)據(jù)依據(jù)

24、出生的先后次序排列,可以利用下面的命令。select 姓名,生日from 職員表格order by 生日select lastname,firstnamefrom employeesorder by lastname asc; in 條件子句指定要速勝哪一個外部數(shù)據(jù)庫的表格。(必須是microsoft jet數(shù)據(jù)庫引擎所可以連接的數(shù)據(jù)庫,如dbase,paradox等等)select|insertinto destination inpath|path type|type;database=pathfrom tableexpression inpath|path type|type;datab

25、ase=path destination欲插入數(shù)據(jù)的外部表格名稱。 tableexpression表格名稱或是被讀取數(shù)據(jù)的表格名稱。這個參數(shù)可以是一個單一的表格名稱,或是一段已經(jīng)被存儲的sql查詢等。 path包含該表格的完整路徑名稱。 type數(shù)據(jù)庫的類型名稱, 通常是當數(shù)據(jù)庫部屬于jet database時才會使用。(例如:dbase iii,dbase iv,paradox 3.x,paradox 4.x,或 btrieve) 例如:下面這兩段的意義相同parta.from tablein dbase iv;database=c:dbasedatasales;partb.from tab

26、lein c:dbasedatasales dbase iv;例如:microsoft jet databaseselect 顧客編號from 顧客表格in customer.mdbwhere 顧客編號 like a*;其中customer.mdbo 為jet database 的數(shù)據(jù)庫名稱,其中包含了顧客表格。例如:dbase iii or ivselect 顧客編號from 顧客表格in c:dbasedatasales dbase iv;where 顧客編號 like a*;所以當我們使用不同于access 的數(shù)據(jù)庫時,必須指明該數(shù)據(jù)庫的類型名稱。having 條件子句指定一特定的分組記

27、錄,并滿足having 所指定的條件或狀態(tài),但條件是針對分組的條件設(shè)置。select fieldlistfrom tablewhere selectcriteriagroup by groupfieldlisthaving groupcriteria fieldlist顯示被查詢的字段名稱。(可與all,distinct,distinctrow,或top相結(jié)合) table欲查詢數(shù)據(jù)的表格名稱。 selectcriteria選取標準。 groupfieldlist分組記錄的字段名稱,到多10個字段。而這些字段的順序決定最高到最低的分組階層。 groupcriteria決定什么樣的分組記錄要被顯

28、示。 having跟where 的用法相當類似,不同之處在于having必須用于group之后的分組數(shù)據(jù)上。例如:select 分類編,sum(庫存數(shù)量)from 產(chǎn)品表格group by 分類編號having sum(庫存數(shù)量)100 and 產(chǎn)品名稱 like *紙; group by 條件子句依據(jù)指定的字段,將具有相同數(shù)值的記錄合并成一條。select fieldlistfrom tablewhere criteriagroup by groupfieldlist fieldlist欲讀取的字段名稱。(可與all,distinct,distinctrow,或top合并使用) table被

29、查詢的表格名稱。 groupfieldlist分組記錄的字段名稱,到多10個字段,而這些字段的順序決定最高到最低的分組層次。例如:select 姓名,count(姓名)as 職員姓名from 職員表格where 部門名稱=業(yè)務(wù)部group by 姓名 from 條件子句指定表格名稱或是查詢,其中包含列在select語句的字段數(shù)據(jù)。select fieldlistfrom tableexpressionin externaldatabase fieldlist表格中的字段名稱。(可與all,distinct,distinctrow,或top相結(jié)合) tableexpression表格名稱,或多個

30、表格的算式。 externaldatabase若該表格參考到外部的數(shù)據(jù)庫時,將其完整的路徑名稱記下。例如:從職員表格下,查詢出所有姓名字段的數(shù)據(jù)(只有姓名字段被查詢,其他則不顯示)。select 姓名 from 職員表格; where 條件子句指定查詢的條件與限制。select fieldlistfrom tableexpressionwhere criteria fieldlist字段名稱。(可與all,distinct,distinctrow,或top相結(jié)合) tableexpression表格名稱,或多個表格的算式。 criteria查詢的結(jié)果,必須依照這一限制標準。例如:要查詢出職員表

31、格中,所有姓氏是李的數(shù)據(jù),可以用下面的語句。select 姓名from 職員表格where 姓氏=李; between.and 運算符決定某一人數(shù)值是否介于特定的范圍之內(nèi),此運算符只可以用在sql的語句中。exprnotbetween value1 and value2 expr指定要加以計算的字段與表達式的組合。 value1,value2所指明的數(shù)值范圍。例如:若是要從職員表格查詢出所有年齡介于25-30歲的員工,可以利用下面的程序來做。select 姓名,年齡 between 25 and 30from 職員表格; like 操作數(shù)用來將一字符串與另一特定字符串樣式(pattern)比較

32、,并將符合該字符串樣式的記錄過濾出來。expression like pattern expression使用在where條件子句,sql表達式。 pattern用以比較的字符串樣式。例如:若是你要查詢出所有以“李”為首的姓氏,可以利用下面的式子。like 李* like操作數(shù)的多種范例: 1、多個字符: (1)a*a可篩選:aa,aba,abbba,不能篩選:abc(2)*ab*可篩選:abc,aabb,xab,不能篩選:azb,bac 2、特殊字符:a“*”a可篩選:a*a,不能篩選:aaa 3、單一字符:a?a可篩選:aaa,a3a,aba,不能篩選:abbba 4、單一數(shù)字:a#a可篩

33、選:a0a,a1a,a2a,不能篩選:aaa,a10a 5、字符范圍:“a-z”可篩選:f,p,j,不能篩選:2,& 6、指定字符以外部范圍:“!a-z” 7、指定非數(shù)字:“!0-9”可篩選:a,a,&,,不能篩選:0,1,9 8、組合式結(jié)構(gòu):a“!b-m”#可篩選:an9,az0,a99,不能篩選:abc,aj0 sql數(shù)字函數(shù)1、avg:算數(shù)平均數(shù)avg(expr) expr字段名稱或表達式。例如:若要計算職員身高超過165厘米的職員平均身高,可以利用下面的sql語句來完成。select avg(身高)as 平均身高from 職員表格 where 身高165; 2、count:計算記錄條數(shù)

34、count(expr) expr字段名稱或表達式。例如:若是要統(tǒng)計出業(yè)務(wù)部門的職員人數(shù),并查詢出職員的姓名,可以利用下面的程序。select count(姓名) as 職員姓名from 職員表格where 部門名稱=業(yè)務(wù)部; 3、first與last:返回某字段的第一條數(shù)據(jù)與最后一條數(shù)據(jù)。first(expr)last(expr) expr字段名稱或表達式。例如:若是要找出貨品數(shù)量字段的第一條數(shù)據(jù)與貨品價格字段的最后一條數(shù)據(jù)時,可以利用下面的查詢方式。select first(貨品數(shù)量),last(貨品價格)from 訂單表格 4、max,與min:返回某字段的最大值與最小值。用法同first

35、與last。 5、sum:返回某特定字段或是運算的總和數(shù)值。sum(expr) expr字段名稱或表達式。例如:要計算出貨品總價,可使用下面的程序。selectsum(單位價格*貨品數(shù)量)as 貨品總價 from 訂單表格 多層sql查詢顧名思義,多層的sql查詢的便在于:“在一個sql語句中可以包含另一個sql查詢語句,形成內(nèi)部嵌套的查詢類型?!眂omparisonany|all|some(sqlstatement)expressionnotin (sqlstatement)notexists(sqlstatement) comparison將表達式與內(nèi)層查詢的結(jié)果比較的操作。 expres

36、sion對內(nèi)層查詢的結(jié)果作搜索的表達式。 sqlstatement為select語句構(gòu)成的sql查詢,必須用()將該語句括起來。例如:我們先從訂單表格當中,查詢出所有的單位,再將產(chǎn)品表格中的單位與的一一對比,查詢出所有高于訂單表格的單位價格的記錄。select * from 產(chǎn)品表格where 單位價格any (select 單位價格 from 訂單表格 where 折扣=.25);5)表中的每一個列值必須是不可分割的基本數(shù)據(jù)項。注意:當用戶需要新的數(shù)據(jù)結(jié)構(gòu)或表存放數(shù)據(jù)時,首先要生成一個表。語法:create table 表名 表約束(列名1 數(shù)據(jù)類型 缺省值1,列約束1(列名2 數(shù)據(jù)類型 缺

37、省值2,列約束2列名n 數(shù)據(jù)類型 缺省值n,列約束ntablespace 表空間名稱storage (存貯的子句)enable 約束名disable 約束名 插入數(shù)據(jù) 當一個表新建成時,它里面沒有數(shù)據(jù),通過向表中扦入數(shù)據(jù),建成表的實例。語句句法:insert into 表名(列名1,)values(值1,值2,,值n)子查詢;假設(shè)有一張表student如下所示:nonameage1001a121002b14將新學生e增加到上表中,并按照表的結(jié)構(gòu)將信息添加完整,需要如下語句:insert into student valuse(1003, e,12); 修改數(shù)據(jù) 對表中已有數(shù)據(jù)進行修改,語句句法

38、:update 表名set 列名1表達式1,列名2表達式2,where 條件;例如:對下表studentnonameage1001a121002b14將b的年紀改為18;應該執(zhí)行以下語句:update student set age=18 where name=b; 刪除數(shù)據(jù) 刪除表中已有數(shù)據(jù),不能刪除不存在的數(shù)據(jù)。語句句法: delete from 表名 where 條件;例如:對下面student表進行刪除,要刪除其中年紀為12的學生;nonameage1001a121002b14delete from student where age12; 表結(jié)構(gòu)的修改 在已存在的表中增加新列,語句句

39、法:alter table 表名 add(新列名 數(shù)據(jù)類型(長度); 例如: alter table student add (department char(8);b.增加已有列的數(shù)據(jù)類型。 例如: alter table student modify(name varchar2(25); 表的刪除 將已經(jīng)存在的表刪除,語句句法: drop table表名; 例如: drop table emp; 查詢語句 select命令的語法為:select distinct|all *|模式名. 表名|視圖名|快照名 .*| 表達式列別名 , 模式名. 表名|視圖名| .*| 表達式列別名 from

40、模式名. 表名|視圖名|快照名 數(shù)據(jù)庫鏈名 表別名, 模式名. 表名|視圖名|快照名 數(shù)據(jù)庫鏈名表別名 where條件start with條件 connect by 條件group by表達式,表達式 having條件union|union all |intersect|minusselect命令order by表達式|位置 asc|desc , 表達式|位置asc|desc例如:對于student表:nonameage1001ae121002bt14(1) 查詢年紀為12的學生姓名;select student.name from student where age=12;(2) 查詢年紀在

41、12至16歲之間的學生姓名;select student.name from student where age between 12 and 16;(3) 查詢年紀不在12至16歲之間的學生姓名;select student.name from student where age not between 12 and 16;(4) 查詢所有姓名以a開頭的學生的姓名;select student.name from student where name like a%;(5) 列出所有學生年紀的和,年紀的平均值,最大值,最小值,最大值與最小值之間的差值;select avg(age), sum

42、(age), max(age), min(age), max(age)-min(age);(6) 將所有學生按學號順序升序排列;select * from student order by no desc;(7) 將所有學生按學號順序升序排列;select * from student order by no asc;第三章 關(guān)鍵問題:使用關(guān)系型數(shù)據(jù)庫使用delphi 7.0 實現(xiàn)關(guān)系型數(shù)據(jù)庫 數(shù)據(jù)庫的概念 使用中文access 2000可以從單一的數(shù)據(jù)庫文件中組織用戶信息。在此文件中,可將數(shù)據(jù)分開放在名為“表”,也就是前面所說的“數(shù)據(jù)表”的容器中,然后可使用聯(lián)機窗體讓網(wǎng)絡(luò)用戶查看、添加并更新

43、表中的數(shù)據(jù)、“查詢”查找并檢索數(shù)據(jù)、使用“報表”按特定的布局分析或打印的數(shù)據(jù)。此外,通過創(chuàng)建數(shù)據(jù)訪問頁還能從internet上查看與更新或分析數(shù)據(jù)。與前面所介紹的兩個軟件一樣,為了存儲與使用數(shù)據(jù),可對每一類信息創(chuàng)建一張表,此后就能在窗體、報表、或數(shù)據(jù)訪問頁中將多個表中的數(shù)據(jù)組織到一起,以及定義表之間的關(guān)系,以便于查找和檢索僅滿足指定條件的數(shù)據(jù)。初學者應注意,這里的“窗體”是前兩個軟件中沒有的對象。 在使用中文access 2000建立用于構(gòu)成數(shù)據(jù)庫的表、窗體和其他對象之前,設(shè)計數(shù)據(jù)庫是很重要的。因為無論是使用中文access 2000的數(shù)據(jù)庫或是項目,都需要一個能夠有效而且準確、及時地完成所需

44、功能的數(shù)據(jù)庫。來打開一個access數(shù)據(jù)庫。首先,數(shù)據(jù)源名是mydb,也就是和系統(tǒng)共同認可的一個數(shù)據(jù)源名,下面,就使用這個數(shù)據(jù)源名,與系統(tǒng)進行對話。第一步,建立ado對象連接。進行這一步的目的是告訴系統(tǒng)我將要使用數(shù)據(jù)庫了,請為我建立一個到數(shù)據(jù)庫的連接。這一步的語法是:set 變量名=server.createobject(adodb.connection).例:set objconn=server.createobject(adodb.connection)下面來分析這個語句。首先,objconn這個變量是我們自已定的,它代表一個數(shù)據(jù)庫連接。至于server.createobject(adod

45、b.connection)這個語句,一看就可以大致猜出它們的意義,不就是建立一個ado對象嗎?對了,什么是ado對象呢?進行每一個數(shù)據(jù)庫的編程時,都要進行這一步。至于道理,我們慢慢會明白的。第二步,利用建立的這個連接,來告訴系統(tǒng)要打開的數(shù)源,這個數(shù)據(jù)源就是設(shè)置的數(shù)據(jù)源名。它就是mydb。利用它,可以很方便地打開一個數(shù)據(jù)庫。以我們上一課的設(shè)置為例,打開我們的db2.mdb,可以使用以下語法:objconn.open dsn=mydb;database=db2;uid=;pwd=;其中dsn就是所定的數(shù)源名。database就是數(shù)據(jù)庫名。uid是user id,即用戶名,而pwd則是這個用戶的訪問

46、密碼,這只有在我們?yōu)檫@個數(shù)據(jù)庫加入了密碼之后才有用,我們暫且不討論它。第一步和第二步出現(xiàn)了兩個objconn,的確,第一步的語句是將一個到數(shù)據(jù)庫的連接賦予objconn這個變量,也就是說,經(jīng)過第一步,objconn實際上就是代表了這個連接。這樣自然可以用這個連接的open方法來打開一個數(shù)據(jù)庫了。打開了這個數(shù)據(jù)庫了, set objconn=server.createobject(adodb.connection)objconn.open dsn=mydb;database=db2;uid=;pwd=;第四章 系統(tǒng)總體規(guī)劃系統(tǒng)總體規(guī)劃系統(tǒng)功能 1、 登陸界面:2、. 功能選擇模塊:,進入主界面后

47、可以進行功能的選擇。 3、 員工信息模塊:按員工信息進行檔案登記。 4、 合同管理模塊:對購銷合同進行管理。5、工資管理模塊:對人事工資進行管理。6、退出系統(tǒng)模塊:退出系統(tǒng)返回widnows界面。 第五章 系統(tǒng)具體實現(xiàn)和以前的版本相比,delphip在多數(shù)地方已不需要寫代碼,表單和對象的屬性提供了控制許多對象的方法,但是總有些事情是要用程序去實現(xiàn)的。511系統(tǒng)具體實現(xiàn) 登陸界面在登陸界面的文本輸入密碼,方可進入系統(tǒng)。使用了if then 語句主界面主界面包含 1、員工檔案輸入:按員工信息進行檔案登記。 2、員工檔案修改:以表格的方式對員工檔案進行修改。3、,工資管理模塊:對人事工資進行管理。

48、4、考勤模塊。 5、統(tǒng)計模塊:對部門,職位,職級人數(shù)進行統(tǒng)計。513 各個模塊的實現(xiàn)1、員工信息模塊:按員工信息進行檔案登記。 unit unit2;interfaceuses windows, messages, sysutils, variants, classes, graphics, controls, forms, dialogs, dbcgrids, db, adodb, grids, dbgrids, extctrls, dbctrls, stdctrls, mask;type tform2 = class(tform) adotable1: tadotable; datasou

49、rce1: tdatasource; dbnavigator1: tdbnavigator; label1: tlabel; dbedit1: tdbedit; button1: tbutton; dbedit2: tdbedit; dbedit3: tdbedit; dbedit4: tdbedit; dbedit5: tdbedit; dbedit6: tdbedit; dbedit7: tdbedit; label2: tlabel; label3: tlabel; label4: tlabel; label5: tlabel; label6: tlabel; label7: tlabe

50、l; label8: tlabel; dbedit8: tdbedit; label9: tlabel; dbedit9: tdbedit; label10: tlabel; label11: tlabel; dbedit10: tdbedit; dbedit11: tdbedit; label12: tlabel; label13: tlabel; dbedit12: tdbedit; label14: tlabel; dbedit13: tdbedit; label15: tlabel; dbedit14: tdbedit; procedure button1click(sender: t

51、object); procedure button2click(sender: tobject); private private declarations public public declarations end;var form2: tform2;implementation$r *.dfmprocedure tform2.button1click(sender: tobject);beginadotable1.appendend;procedure tform2.button2click(sender: tobject);beginadotable1.updaterecordend;end.2、員工工資管理模塊。unit unit3;interfaceu

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論