




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第三章數(shù)據(jù)庫畫板
數(shù)據(jù)庫(表)及其主鍵、外鍵、索引的建立和定義是進(jìn)行實際開發(fā)工作的第一步,PowerBuilder的開發(fā)工作幾乎都是圍繞數(shù)據(jù)庫展開的。在建立數(shù)據(jù)庫(表)之前,開發(fā)人員應(yīng)進(jìn)行詳細(xì)的系統(tǒng)分析,其中包括該建哪些表和表的字段及數(shù)據(jù)類型、寬度以及主鍵、外鍵、索引的規(guī)劃等。在數(shù)據(jù)庫畫板內(nèi),可以執(zhí)行數(shù)據(jù)庫的大部分?jǐn)?shù)據(jù)管理功能,主要包括以下內(nèi)容:建立數(shù)據(jù)表、主鍵、外鍵、索引列、修改屬性、數(shù)據(jù)視圖和執(zhí)行交互式SQL命令等。3.1數(shù)據(jù)表操作數(shù)據(jù)庫中的數(shù)據(jù)一般都存儲在表中,數(shù)據(jù)表(Table)是一個實體,有唯一的名稱,表是由行與列組成的,每一行都是對這種實體完整性的描述。數(shù)據(jù)表是數(shù)據(jù)存儲的基本單元,它可以看作一組行和列編號的數(shù)據(jù)集合,在關(guān)系數(shù)據(jù)表中,行被稱為記錄,而列則被稱為字段。數(shù)據(jù)表中常用概念如下:表、字段、記錄、主鍵、關(guān)系。3.1.1創(chuàng)建數(shù)據(jù)庫和數(shù)據(jù)庫表
PowerBuilder自帶一個小型關(guān)系型數(shù)據(jù)庫管理系統(tǒng)“AdaptiveServerAnywhere”,支持多種平臺應(yīng)用。
【例3.1】創(chuàng)建數(shù)據(jù)表,存儲表3.1中的信息,數(shù)據(jù)庫表名定義為:“boy”。3.1.2數(shù)據(jù)庫畫板工具欄數(shù)據(jù)庫畫板工具欄有“PainterBar1”、“PainterBar2”和“PainterBar3”三個,其中“PainterBar1”主要是針對于數(shù)據(jù)庫表進(jìn)行操作,主要是:Connect、Disconnect、Save、CreateTable、DropObject等。“PainterBar2”主要是對“InteractiveSQL”交互式SQL語句進(jìn)行操作,主要是:Cut、Copy、Paste、PasteSQL、SelectALL、Comment等?!癙ainterBar3”主要是針對記錄進(jìn)行操作,主要是:Retrieve、SaveChanges、InsertRow、First、Next等。3.1.3Layout視圖窗格在數(shù)據(jù)庫畫板中,用鼠標(biāo)右鍵單擊表,在彈出的快捷菜單中選擇“AddtoLayout”子菜單項,則PB系統(tǒng)將把該表以圖形的方式直觀地顯示在“Layoutobject”視圖中。“Layout”視圖中列出了數(shù)據(jù)表、列、主鍵、索引和外鍵等信息,鼠標(biāo)右擊其中任何一個對象,并在彈出的快捷菜單中選擇“Properties”菜單項,都可對此對象進(jìn)行編輯。3.2數(shù)據(jù)表設(shè)計在數(shù)據(jù)庫畫板中,有多種操作方法可以對數(shù)據(jù)庫的表進(jìn)行修改與維護(hù),建立數(shù)據(jù)表的另一種方法是:右擊數(shù)據(jù)庫資源“Tree”中的“Tables”項,并在彈出的快捷菜單中選擇“NewTables...”菜單項。3.2.1數(shù)據(jù)表屬性窗格在數(shù)據(jù)庫畫板對象的“Objects”視圖中,鼠標(biāo)右擊數(shù)據(jù)表,在彈出的快捷菜單中選“Properties”菜單項,可打開表的屬性視圖窗格。在表的屬性視圖中,可以設(shè)定此數(shù)據(jù)表的相關(guān)屬性,共有四個標(biāo)簽頁:DataFont屬性、General屬性、HeadingFont屬性、LabelFont。設(shè)置完成后,可以單擊工具欄中的“Save”圖標(biāo)保存修改。3.2.2主鍵、外鍵和索引表的主鍵(PrimaryKey)是能夠唯一標(biāo)識每一行數(shù)據(jù)的一列或若干列的集合。定義表的主鍵可以保證表的引用完整性,如果數(shù)據(jù)庫管理系統(tǒng)(DBMS)支持主鍵(絕大多數(shù)DBMS都具備此項功能),就應(yīng)該為每個數(shù)據(jù)表定義各自的主鍵。外鍵(ForeignKey)是指表中的一個或多個列與其它表中的主鍵建立的對應(yīng)關(guān)系,在關(guān)系數(shù)據(jù)庫中,可以利用外鍵連接多個表,保證數(shù)據(jù)庫的參照完整性。外鍵的建立步驟如下:對應(yīng)規(guī)則有三類,它們的含義分別是:DisallowifDependentRowsExist(RESTRICT)DeleteanyDependentRows()CASCADESetDependentColumnstoNULL(SETNULL)
索引的創(chuàng)建與主鍵類似。3.2.3列屬性維護(hù)在定義數(shù)據(jù)表時,同時也定義了列的類型、初值等基本屬性。在數(shù)據(jù)庫畫板中還可以定義列的其它屬性,包括顯示格式、編輯風(fēng)格、有效性規(guī)則等。列的屬性定義方式與表的屬性類似,該屬性視圖共有五個標(biāo)簽頁:General、Headers、Display、Validation、EditStyle。3.2.4擴(kuò)展屬性列的“DisplayFormats”、“EditStyles”、“ValidationRules”屬性在表的屬性窗口中只能引用而不能對其定義,在數(shù)據(jù)庫畫板中選擇“View/ExtendedAttributes”菜單項,將打開擴(kuò)展屬性(ExtendedAttributes)視圖,在此視圖中可以定義列的顯示格式、編輯風(fēng)格和驗證規(guī)則。
自定義顯示格式(DisplayFormats)自定義編輯樣式(EditStyle)自定義有效性規(guī)則(ValidationRules)3.3數(shù)據(jù)表數(shù)據(jù)維護(hù)當(dāng)定義了數(shù)據(jù)庫的表后,在PowerBuilder開發(fā)環(huán)境中也能夠方便地輸入數(shù)據(jù)。數(shù)據(jù)庫畫板提供了如下三種界面來編輯數(shù)據(jù),分別為網(wǎng)格格式、列表格式和自由格式,它們的差別僅在于顯示數(shù)據(jù)方式的不同。3.3.1數(shù)據(jù)錄入以表“boy”為例,在對象視圖中選中表“boy”,單擊“PainterBar1”工具欄的“Datamanipulationgrid”工具按鈕,以網(wǎng)格狀來顯示數(shù)據(jù)。單擊“PainterBar3”工具欄的“InsertRow”工具按鈕,插入一條記錄,單擊“DeleteRow”工具按鈕刪除當(dāng)前記錄,單擊工具欄“PainterBar3”中的“SaveChanges”工具按鈕保存數(shù)據(jù)。3.3.2數(shù)據(jù)排序與過濾當(dāng)希望以某種順序查看數(shù)據(jù)時,可以指定數(shù)據(jù)的排序方式:首先進(jìn)入數(shù)據(jù)表數(shù)據(jù)的編輯界面,然后選擇“Rows/Sort”菜單項,彈出“SpecifySortColumns”對話框,用鼠標(biāo)左鍵按住左邊的“SourceData”中的列并拖動到右邊Columns列表框中,然后選擇排序方式。當(dāng)瀏覽部分?jǐn)?shù)據(jù)時,可以指定過濾條件對表中數(shù)據(jù)進(jìn)行篩選。步驟如下:首先將焦點切換到“Result”視圖,然后選擇“Rows/Filter”菜單項,彈出“SpecifyFilter”對話框。輸入過濾條件。單擊“Verify”按鈕驗證過濾表達(dá)式是否正確。單擊“OK”按鈕關(guān)閉對話框,滿足條件的數(shù)據(jù)被顯示出來。3.3.3建立視圖視圖是數(shù)據(jù)庫應(yīng)用系統(tǒng)中十分重要的組成部分,通過視圖可以進(jìn)一步簡化應(yīng)用程序編程工作,使其更加簡潔、靈活、方便、有效。視圖是一種非常特殊的虛擬表,它可以象表一樣地被訪問和使用,但視圖本身并不是真正的表,并不存在視圖這種物理結(jié)構(gòu),它的數(shù)據(jù)只是來自一個或多個數(shù)據(jù)庫中的表或視圖。3.3.4數(shù)據(jù)導(dǎo)入與導(dǎo)出在開發(fā)環(huán)境中可以將數(shù)據(jù)庫表中的數(shù)據(jù)導(dǎo)出到文件中。也可以將保存在文本文件或“DBF”庫文件中的數(shù)據(jù)通過數(shù)據(jù)庫畫板導(dǎo)入到數(shù)據(jù)庫中。導(dǎo)出數(shù)據(jù)導(dǎo)入數(shù)據(jù)3.3.5設(shè)置數(shù)據(jù)顯示格式
在數(shù)據(jù)庫畫板中,設(shè)置列的顯示格式的步驟如下:在數(shù)據(jù)庫畫板的對象(Objects)視圖下,展開樹視圖,顯示某個表的列清單。鼠標(biāo)右擊要指定顯示格式的列,在彈出的快捷菜單中選擇“Properties”菜單項,在列(Columns)視圖中選擇“Display”標(biāo)簽頁。在“DisplayFormat”下拉列表框中選一個顯示格式。單擊畫板工具欄上的“Save”按鈕。定義了某個顯示格式后,可以根據(jù)需要對它進(jìn)行修改。操作步驟如下:打開數(shù)據(jù)庫畫板。如果擴(kuò)展屬性(ExtendedAttributes)視圖沒有顯示,選擇“View/ExtendedAttributes”菜單項打開擴(kuò)展屬性視圖,否則單擊該視圖的標(biāo)簽頁。在擴(kuò)展屬性視圖下,打開顯示格式列表。鼠標(biāo)右擊要修改的顯示格式名稱,在彈出的快捷菜單中選擇“Properties”菜單項。在顯示格式視圖中修改已定義的顯示格式。3.4SQL命令
SQL命令是數(shù)據(jù)庫發(fā)布命令的交互標(biāo)準(zhǔn),適用于各種公開發(fā)行的數(shù)據(jù)庫系統(tǒng),PowerBuilder的數(shù)據(jù)庫畫板支持直接使用SQL命令進(jìn)行數(shù)據(jù)庫表的維護(hù)。3.4.1SQL命令類型
SQL(StructuredQueryLanguage)稱為結(jié)構(gòu)化查詢語言,主要功能就是同各種數(shù)據(jù)庫建立聯(lián)系,用來執(zhí)行各種各樣的操作,例如更新數(shù)據(jù)庫表中的數(shù)據(jù)、從數(shù)據(jù)庫表中提取數(shù)據(jù)等。
SQL語句有很多,功能齊全,可以分為四大類:數(shù)據(jù)定義數(shù)據(jù)查詢數(shù)據(jù)更新數(shù)據(jù)控制3.4.2SQL數(shù)據(jù)表命令
SQL命令可以在數(shù)據(jù)庫畫板中執(zhí)行,也可以在SybaseCentral或數(shù)據(jù)庫管理工具“InteractiveSQL”中執(zhí)行。定義類的SQL命令(CREATE、DROP、ALTER等語句)可以對數(shù)據(jù)庫、數(shù)據(jù)表、索引、視圖和存儲過程等進(jìn)行操作。這些命令一般都通過數(shù)據(jù)庫畫板來完成。
【例3.2】通過SQL語句創(chuàng)建數(shù)據(jù)庫
【例3.3】創(chuàng)建個人信息表(person)
【例3.4】刪除表:person【例3.5】修改表person的表結(jié)構(gòu),在表中新增一列備注(Notes)。【例3.6】修改表Boy的表結(jié)構(gòu),在表中新增一列部門編號(dp)?!纠?.7】查詢表boy?!纠?.8】在“boy”表中取id=”00101”記錄的工資數(shù)值,存入實型變量X中?!纠?.9】查看“boy”中的所有數(shù)據(jù),并要求按工資升序排列?!纠?.10】查找“boy”表中工資大于2000元的員工記錄?!纠?.11】查找“boy”表中工資大于2000元或性別為“女”的員工記錄?!纠?.12】查找dpt表中所在部門為01、03和05的記錄?!纠?.13】查詢會計系(01)的所有人員?!纠?.14】查找“王昭”所在部門所有人員的信息?!纠?.15】查詢目前沒有人員的部門?!纠?.16】查找姓“王”的人員的信息?!纠?.17】統(tǒng)計實際總?cè)藬?shù)?!纠?.18】統(tǒng)計01部門的平均工資?!纠?.19】統(tǒng)計各部門的實際總?cè)藬?shù)。3.4.4數(shù)據(jù)更新語句
SQL命令經(jīng)常通過Insert、Delete和Update命令對數(shù)據(jù)表進(jìn)行數(shù)據(jù)修改。在數(shù)據(jù)修改過程中必須注意數(shù)據(jù)表的主鍵不能有“值重復(fù)”和“空值”等特性。INSERT語句:用于向數(shù)據(jù)庫表中添加新的數(shù)據(jù)行。
【例3.20】給boy表中插入一個員工記錄。
【例3.21】批量插入記錄。UPDATE語句:用于更新或修改數(shù)據(jù)庫中滿足規(guī)定條件的現(xiàn)有記錄。
【例3.22】將boy表中的編號為“00101”的記錄工資修改為:2000元。
【例3.23】將boy表中的女性的工資增加200元。DELETE語句:用于刪除指定數(shù)據(jù)表中滿足條件的記錄。
【例3.24】在boy表中,刪除編號為“00102”的記錄。3.4.5數(shù)據(jù)庫提交命令數(shù)據(jù)庫提交撤消屬于SQL的數(shù)據(jù)控制類命令,在PowerBuilder中,經(jīng)常被用于控制數(shù)據(jù)庫的數(shù)據(jù)狀態(tài)。COMMIT語句:用于完成數(shù)據(jù)庫的物理修改。ROLLBACK語句:用于放棄自上一個COMMIT、ROLLBACK或CONNECT操作之后的所有數(shù)據(jù)庫操作。CONNECT語句:用于在程序中將指定的事務(wù)對象與數(shù)據(jù)庫連接。DISCONNECT語句:中斷與數(shù)據(jù)庫的連接
3.4.6獲取SQL命令前面的建表過程中都是利用圖形界面來完成的,PowerBuilder實際上是將建立數(shù)據(jù)庫的SQL命令傳遞到了后臺運(yùn)行的DBMS中。
【例3.25】獲取建表的SQL命令。
【例3.26】使用SQL命令進(jìn)行數(shù)據(jù)查詢。3.4.7交互執(zhí)行SQL命令編程時經(jīng)常會遇到要寫一些SQL語句來測試一下數(shù)據(jù)及修改表中的數(shù)據(jù)。選擇“View/InteractiveSQL”菜單項進(jìn)入“InteractiveSQL”視圖(ISQL)。直接執(zhí)行:直接在“ISQLSession”視圖中,輸入SQL語句。讀入SQL語句:在“InteractiveSQL”視圖中可讀入文件中的SQL語句。3.4.8自動生成SQL命令
PowerBuilder提供了圖形化的SQL語句生成工具,就是SQL畫板。SQL畫板可以通過類似于創(chuàng)建數(shù)據(jù)窗口對象的圖形界面生成SQL語句,并且直接粘貼到腳本環(huán)境中,而不必花過多時間去關(guān)注SQL語法。PowerBuilder的SQL語句畫板能夠構(gòu)造三類語句:游標(biāo)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 醫(yī)院財務(wù)收費合同范例
- 勞務(wù)合同范本15篇
- 勞動費支付合同范本
- 2025江蘇省安全員考試題庫附答案
- 工傷司法鑒定委托書
- 獸藥買賣合同范本
- 業(yè)主違約合同范本
- 信息建設(shè)合同范本
- 2025湖南省建筑安全員A證考試題庫附答案
- 加盟合伙合同范本
- 部編版小學(xué)(2024版)小學(xué)道德與法治一年級下冊《有個新目標(biāo)》-第一課時教學(xué)課件
- 稅法(第5版) 課件 第13章 印花稅
- 2024-2025學(xué)年廣州市高二語文上學(xué)期期末考試卷附答案解析
- 咖啡店合同咖啡店合作經(jīng)營協(xié)議
- 2025年山東鋁業(yè)職業(yè)學(xué)院高職單招職業(yè)技能測試近5年??及鎱⒖碱}庫含答案解析
- 全套電子課件:技能成就夢想
- 2024年教育公共基礎(chǔ)知識筆記
- 2025年江蘇農(nóng)林職業(yè)技術(shù)學(xué)院高職單招職業(yè)技能測試近5年??及鎱⒖碱}庫含答案解析
- 異構(gòu)數(shù)據(jù)融合技術(shù)-深度研究
- 北京市朝陽區(qū)2024-2025學(xué)年七年級上學(xué)期期末考試數(shù)學(xué)試卷(含答案)
- 《銷售合同執(zhí)行》課件
評論
0/150
提交評論