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

字號:

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