自考“計(jì)算機(jī)及應(yīng)用”專業(yè)論文參考范文(15)

字號(hào):

2.2.2.1 DDL與DML
    數(shù)據(jù)定義語言DDL:它是用來創(chuàng)建和修改數(shù)據(jù)庫結(jié)構(gòu)的一種語句,包括 Create、Alter和Drop 語句。
    數(shù)據(jù)操作語言DML:包括數(shù)據(jù)查詢與數(shù)據(jù)更新。數(shù)據(jù)查詢主要是由Select語句完成,這一點(diǎn)不再贅述。而數(shù)據(jù)更新所造成的風(fēng)險(xiǎn)大大超過數(shù)據(jù)查詢。數(shù)據(jù)庫管理系統(tǒng)必須在更改期內(nèi)保護(hù)所存儲(chǔ)的數(shù)據(jù)的一致性,確保有效的數(shù)據(jù)進(jìn)入數(shù)據(jù)庫,數(shù)據(jù)庫必須保持一致性,DBMS還必須協(xié)調(diào)多用戶的并行更新,以確保用戶和它們的更改不至于影響其它用戶的作業(yè)。
    用于修改數(shù)據(jù)庫內(nèi)容的 SQL 語句主要有以下三個(gè):
    (1) Insert,向一個(gè)表中加入新的數(shù)據(jù)行
    (2) Delete,從一個(gè)表中刪除數(shù)據(jù)行
    (3) Update,更改數(shù)據(jù)庫中已經(jīng)存在的數(shù)據(jù)
    Insert標(biāo)準(zhǔn)語法:
    INSERT INTO table_name (col1, col2……) VALUES(value1, value2……)
    下例要將借書證號(hào)為'000001'作為一個(gè)新的借書情況加入借書情況表OWNER中
    Insert Into
    owner (借書證號(hào),圖書編號(hào),借書日期)
    values ('000001','00000001','2002-9-12')
    Insert 語句還可以將多行數(shù)據(jù)添加到目標(biāo)表中去,在這種形式的 Insert 語句中,新行的數(shù)據(jù)值不是在語句正文中明確地指定的,而是語句中指定的一個(gè)數(shù)據(jù)庫查詢。添加的值來自數(shù)據(jù)庫自身的行,在某些特定的狀態(tài)下,這是非常有用的。多行 Insert 語句為拷貝數(shù)據(jù)提供了一種緊湊而高效的方法,但我在自已做的圖書管理系統(tǒng)中沒有使用這種方法,我在系統(tǒng)中是使用循環(huán)依照上面的用法來完成多個(gè)記錄的插入。
    Update語句用于更新單表中選定行的一列或多列的值。要更新的目標(biāo)表在語句中定義,Set子句則指定要更新哪些列并計(jì)算它們的值。Update語句總是包含Where語句,而且Update語句比較危險(xiǎn),所以您必須明確地認(rèn)識(shí)到Where語句的重要性,Where語句被用來指定需要更新的行。
    標(biāo)準(zhǔn)語法:
    UPDATE table_name
    SET columnname1 = value1
    [, columname2 = value2]……
    WHERE search_condition
    Delete 語句標(biāo)準(zhǔn)語法:
    DELETE FROM tablename WHERE condition
    2.2.2.2 復(fù)雜操作實(shí)現(xiàn)
    在信息管理系統(tǒng)中,我們往往會(huì)遇到歸類、匯總、映射、索引、子查詢等復(fù)雜操作,相應(yīng)的支持與實(shí)現(xiàn)如下:
    u GROUP BY方法
    GROUP BY子句語法為:
    SELECT column1, SUM(column2)
    FROM “l(fā)ist-of-tables”
    GROUP BY “column-list”;
    這個(gè)GROUP BY子句將集中所有的行在一起,它包含了指定列的數(shù)據(jù)以及允許合計(jì)函數(shù)來計(jì)算一個(gè)或者多個(gè)列。
    在本人的系統(tǒng)中在顯示數(shù)據(jù)時(shí)用到了此語句來對(duì)查詢所得的內(nèi)容排序然后再顯示。
    u 組合條件和布爾運(yùn)算符
    以下的SQL語句中就含有組合條件:
    SELECT column1, SUM(column2)
    FROM “l(fā)ist-of-tables”
    WHERE “condition1” AND “condition2”;
    下面是一個(gè)示例:
    SELECT 身份描述
    FROM ID,user
    WHERE ID.身份編號(hào)=USER.身份編號(hào) and user.借書證號(hào)='000001';
    這條SQL語句是從user、id表中查找借閱證號(hào)為000001的借閱者的身份描述,第三條語句中如果其中有一個(gè)條件為假,那么就什么都沒有顯示。
    u UNION子句
    有些時(shí)候,需要一起瀏覽多個(gè)查詢的結(jié)果、組合它們的輸出,我們可以使用UNION關(guān)鍵字。
    第三章 應(yīng)用系統(tǒng)開發(fā)工具
    §3.1 Delphi6.0 VCL組件的體系結(jié)構(gòu)
    Delphi類可以粗略地分成兩部分:一部分是組件類,這些組件類通常以某種方式出現(xiàn)在組件面板上,當(dāng)用戶從組件面板上點(diǎn)取一個(gè)類的圖標(biāo)后,在程序中就自動(dòng)生成了該類的對(duì)象(非可視組件除外);另一部分是功能類,這此功能類的對(duì)象通常出現(xiàn)在程序代碼中,起著不可代替的作用,但是這些功能類在組件面板上是找不到的。在Delphi中,每一個(gè)類的祖先都是Tobject類,整個(gè)類的層次結(jié)構(gòu)就像一棵倒掛的樹,在最頂層的樹根即為Tobject類。這樣,按照面向?qū)ο缶幊痰幕舅枷?,就使得用戶可用Tobject類這個(gè)類型代替任何其它類的數(shù)據(jù)類型。實(shí)際上在Delphi的類庫中,Tobject類派生出了為數(shù)相當(dāng)眾多的子類,它們形成了一個(gè)龐大的體系,通常情況下,如果不自行開發(fā)組件,就不必了解整個(gè)類的體系結(jié)構(gòu),只用到類層次樹的葉結(jié)點(diǎn)就足夠了。
    這一小節(jié)簡(jiǎn)略介紹一下Delphi 6.0中VCL(可視化組件庫)組件的體系結(jié)構(gòu)。凡是做過程序開發(fā)的人都知道從來沒有單純的數(shù)據(jù)應(yīng)用程序,也就是說,數(shù)據(jù)庫應(yīng)用程序必須和用戶界面(可以是圖形界面,也可以是命令接口)元素相結(jié)合,只講界面或只講數(shù)據(jù)庫本身都構(gòu)不成數(shù)據(jù)庫應(yīng)用程序,因而用Delphi 6.0開發(fā)數(shù)據(jù)庫應(yīng)用程序就隱含著界面開發(fā)。Delphi6中的VCL組件可用圖3-1來說明。
    組件在Delphi程序的開發(fā)中是最顯眼的角色。大家知道,在編寫程序時(shí)一般都開始于在組件面板上選擇組件并定義組件間的相互作用。但也有一些組件不在組件面板上,例如Tform和Tapplication(典型的非可視組件)。組件是Tcomponents派生出來的子類,可以流的形式存放在DFM文件中,具有事件和Publish屬性。
    窗口組件類是窗口化的可視化組件類,在Delphi的類庫中占有的份額。在實(shí)際編程中,窗口組件類的對(duì)象都有句柄,可以接受輸入焦點(diǎn)和包含其它組件。
    圖形組件與窗口組件并列,是另一大類組件。圖形組件不是基于窗口的,因而不能有窗口句柄,不能接受輸入焦點(diǎn)和包含其它組件。從圖8-43中可以看出,圖形組件的基類是TgraphicControl,在實(shí)際編程中,它們必須寄生于它們的宿主——窗口組件類的對(duì)象,由它們的擁有者負(fù)責(zé)其顯示,而且它們還能觸發(fā)一些和鼠標(biāo)活動(dòng)相關(guān)的事件。圖形控件最典型的例子是Tlabel和TspeedButton.由此可以看出圖形組件的功能很弱,圖形組件的用處何在呢?其實(shí)使用圖形組件的好處在于節(jié)省資源,正是因?yàn)樗鼈兊墓δ茌^弱,所以使用的系統(tǒng)資源就要少。在一個(gè)應(yīng)用程序中,如果能在不影響其功能的前提下合理大量地使用圖形組件,將會(huì)大減少程序?qū)ο到y(tǒng)資源的消耗。
    非可視組件是與可視組件相并列的另一類組件,非可視組件在程序運(yùn)行中是不可見的(除各種對(duì)話框組件之外,事實(shí)上有人認(rèn)為對(duì)話框組件不能歸入非可視組件,應(yīng)該是另一種介于可視與非可視之間的組件)。
    最后要說明一下,常說的控件實(shí)際上是一種組件。也就是說組件這個(gè)概念要大于控件,控件在內(nèi)涵上包含于組件中。控件由Windows系列操作系統(tǒng)提出并使用,而組件是Borland和其它廠商在對(duì)Windows控件做了必要的擴(kuò)展之后提出來的概念,它們是在不同時(shí)期由不同的廠商提出的概念。