2023年金倉數(shù)據(jù)庫應(yīng)用技術(shù)實驗手冊ForWindows_第1頁
2023年金倉數(shù)據(jù)庫應(yīng)用技術(shù)實驗手冊ForWindows_第2頁
2023年金倉數(shù)據(jù)庫應(yīng)用技術(shù)實驗手冊ForWindows_第3頁
2023年金倉數(shù)據(jù)庫應(yīng)用技術(shù)實驗手冊ForWindows_第4頁
2023年金倉數(shù)據(jù)庫應(yīng)用技術(shù)實驗手冊ForWindows_第5頁
已閱讀5頁,還剩97頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

《金倉數(shù)據(jù)庫應(yīng)用技術(shù)》實驗操作手冊北京人大金倉信息技術(shù)股份有限公司電話:版本號:V1.2目錄TOC\o"1-3"\h\z\uHYPERLINK\l"_Toc"實驗(一):KingbaseES數(shù)據(jù)庫的安裝配置及啟動停止 PAGEREF_Toc\h4HYPERLINK\l"_Toc"任務(wù)1:圖形界面方式安裝?PAGEREF_Toc\h4HYPERLINK\l"_Toc"任務(wù)2:命令行方式安裝 PAGEREF_Toc\h5HYPERLINK任務(wù)3:啟動和停止數(shù)據(jù)庫服務(wù)?PAGEREF_Toc\h6HYPERLINK\l"_Toc"任務(wù)4:展示KingbaseES數(shù)據(jù)庫重要功能組件 PAGEREF_Toc\h8HYPERLINK實驗(二):SQL語句方式與圖形界面方式的創(chuàng)建實現(xiàn) h12HYPERLINK\l"_Toc"任務(wù)1:SAM數(shù)據(jù)庫創(chuàng)建 PAGEREF_Toc\h13HYPERLINK任務(wù)2:SAM數(shù)據(jù)庫中創(chuàng)建SCOT模式?PAGEREF_Toc\h13HYPERLINK任務(wù)3:表的創(chuàng)建?PAGEREF_Toc\h14HYPERLINK\l"_Toc"任務(wù)4:運用SQL語句向以上各表中插入數(shù)據(jù) PAGEREF_Toc\h16HYPERLINK\l"_Toc"實驗(三):數(shù)據(jù)備份與數(shù)據(jù)還原?PAGEREF_Toc\h19HYPERLINK\l"_Toc"任務(wù)1:KingbaseES數(shù)據(jù)庫的數(shù)據(jù)備份(圖形界面方式) PAGEREF_Toc\h19HYPERLINK\l"_Toc"任務(wù)2:KingbaseES數(shù)據(jù)庫的數(shù)據(jù)備份(命令行方式) PAGEREF_Toc\h23HYPERLINK\l"_Toc"任務(wù)3:KingbaseES數(shù)據(jù)庫還原(圖形界面方式)?PAGEREF_Toc\h23HYPERLINK\l"_Toc"任務(wù)4:KingbaseES數(shù)據(jù)庫還原(命令行方式)?PAGEREF_Toc\h24HYPERLINK實驗(四):表空間擴展實驗 PAGEREF_Toc\h24任務(wù)1:準(zhǔn)備工作(問題出現(xiàn))?PAGEREF_Toc\h25HYPERLINK任務(wù)2:解決方案一(增長數(shù)據(jù)文獻(xiàn))?PAGEREF_Toc\h25HYPERLINK\l"_Toc"任務(wù)3:解決方案二(增長數(shù)據(jù)文獻(xiàn)的大?。?PAGEREF_Toc\h26HYPERLINK\l"_Toc"實驗(五):SQL語句的查詢實現(xiàn)?PAGEREF_Toc\h26HYPERLINK任務(wù)1:運用SQL語句進(jìn)行單表查詢 PAGEREF_Toc\h27HYPERLINK任務(wù)4:分頁查詢?PAGEREF_Toc\h29HYPERLINK\l"_Toc"任務(wù)5:查詢強化訓(xùn)練 PAGEREF_Toc\h30HYPERLINK\l"_Toc"實驗(六):權(quán)限授予與權(quán)限傳播 PAGEREF_Toc\h34HYPERLINK實驗(七):用戶權(quán)限管理案例?PAGEREF_Toc\h37HYPERLINK任務(wù)1:用戶對表的操作權(quán)限。 PAGEREF_Toc\h37HYPERLINK\l"_Toc"任務(wù)2:用戶權(quán)限的級聯(lián)回收。 \h38HYPERLINK思考題(02):權(quán)限的授予是否會產(chǎn)生循環(huán)授權(quán)??PAGEREF_Toc\h40HYPERLINK\l"_Toc"實驗(八):角色權(quán)限管理案例?PAGEREF_Toc\h40HYPERLINK\l"_Toc"任務(wù)1:一個用戶具有多個角色,只有當(dāng)前角色生效。 PAGEREF_Toc\h41HYPERLINK\l"_Toc"任務(wù)2:角色的級聯(lián)回收。 PAGEREF_Toc\h42HYPERLINK\l"_Toc"任務(wù)3:角色的授予不會產(chǎn)生循環(huán)授權(quán)。?PAGEREF_Toc\h43HYPERLINK\l"_Toc"實驗(九):數(shù)據(jù)的完整性?PAGEREF_Toc\h44HYPERLINK\l"_Toc"任務(wù)1.實體完整性?PAGEREF_Toc\h44HYPERLINK\l"_Toc"任務(wù)2.參照完整性。 PAGEREF_Toc\h45HYPERLINK任務(wù)3.用戶定義完整性。 PAGEREF_Toc\h45HYPERLINK任務(wù)4.CONSTRAINT完整性約束命名子句 PAGEREF_Toc\h47HYPERLINK\l"_Toc"任務(wù)5.觸發(fā)器 PAGEREF_Toc\h48HYPERLINK實驗(十):應(yīng)用管理系統(tǒng)部署 PAGEREF_Toc\h49HYPERLINK任務(wù)1:KingbaseES數(shù)據(jù)庫部署 PAGEREF_Toc\h50HYPERLINK\l"_Toc"任務(wù)2:安裝jdk-6u5-windows-i586-p插件?PAGEREF_Toc\h53HYPERLINK\l"_Toc"任務(wù)3:安裝配置tomcat中間件服務(wù)?PAGEREF_Toc\h53HYPERLINK\l"_Toc"任務(wù)4:系統(tǒng)登錄 h54HYPERLINK\l"_Toc"實驗(十一)存儲過程實驗 PAGEREF_Toc\h56HYPERLINK\l"_Toc"實驗(十二):大容量測試實驗?PAGEREF_Toc\h57HYPERLINK\l"_Toc"任務(wù)1:表和存儲過程的創(chuàng)建,并執(zhí)行存儲過程 PAGEREF_Toc\h58HYPERLINK\l"_Toc"任務(wù)2:對表進(jìn)行操作,并記錄語句執(zhí)行速度?PAGEREF_Toc\h59HYPERLINK\l"_Toc"實驗(十三):運用ISQL系統(tǒng)工具向表中批量導(dǎo)入數(shù)據(jù) PAGEREF_Toc\h59HYPERLINK任務(wù)1:KingbaseES數(shù)據(jù)庫isql系統(tǒng)工具的登錄 PAGEREF_Toc\h59HYPERLINK\l"_Toc"任務(wù)2:運用isql系統(tǒng)工具向數(shù)據(jù)表中批量導(dǎo)入數(shù)據(jù)?PAGEREF_Toc\h60HYPERLINK任務(wù)1:啟動數(shù)據(jù)遷移工具 PAGEREF_Toc\h62HYPERLINK\l"_Toc"任務(wù)2:數(shù)據(jù)遷移過程?PAGEREF_Toc\h62HYPERLINK\l"_Toc"實驗(十五):數(shù)據(jù)庫功能性測試實驗?PAGEREF_Toc\h67HYPERLINK任務(wù)1:大對象存儲管理 PAGEREF_Toc\h68HYPERLINK\l"_Toc"任務(wù)2:分區(qū)表管理-水平分區(qū)表 PAGEREF_Toc\h69HYPERLINK\l"_Toc"任務(wù)3:DBMS參數(shù)配置?PAGEREF_Toc\h72HYPERLINK\l"_Toc"任務(wù)4:表對象管理?PAGEREF_Toc\h73HYPERLINK\l"_Toc"任務(wù)5:用戶權(quán)限和角色權(quán)限管理 PAGEREF_Toc\h79HYPERLINK\l"_Toc"實驗(十六):數(shù)據(jù)庫可靠性測試實驗 PAGEREF_Toc\h84HYPERLINK任務(wù)1:數(shù)據(jù)加載容錯性 PAGEREF_Toc\h84HYPERLINK\l"_Toc"任務(wù)2:系統(tǒng)故障恢復(fù) PAGEREF_Toc\h88HYPERLINK\l"_Toc"實驗(十七):綜合項目開發(fā)?PAGEREF_Toc\h89實驗(一):KingbaseES數(shù)據(jù)庫的安裝配置及啟動停止一、實驗?zāi)康?通過對金倉數(shù)據(jù)庫KingbaseES數(shù)據(jù)庫管理系統(tǒng)的安裝,掌握其安裝環(huán)節(jié)。搭建國產(chǎn)數(shù)據(jù)庫實驗平臺,了解國產(chǎn)數(shù)據(jù)庫的特點和優(yōu)點。二、實驗平臺:裝有windows操作系統(tǒng)的PC機;數(shù)據(jù)庫管理系統(tǒng):KingbaseESv6.1版本光盤。在安裝數(shù)據(jù)庫系統(tǒng)之前,請仔細(xì)看清硬件的配置規(guī)定。三、實驗內(nèi)容及規(guī)定1、根據(jù)安裝文獻(xiàn)的說明安裝數(shù)據(jù)庫系統(tǒng)。在安裝過程中記錄安裝的選擇環(huán)節(jié),并對所作的選擇進(jìn)行思考,為什么要進(jìn)行這樣的配置。2、學(xué)會啟動和停止數(shù)據(jù)庫服務(wù)。涉及:界面化的啟動和命令行啟動兩種方式。3、KingbaseES數(shù)據(jù)庫重要功能組件展現(xiàn)。KingbaseES數(shù)據(jù)庫的安裝與配置提醒環(huán)節(jié)一方面,安裝用戶必須具有Administrator的權(quán)限。請運營setup.exe,進(jìn)入安裝程序解壓界面,可以點擊【取消】退出,否則開始安裝。每一步按照提醒順序執(zhí)行,就可以對的完畢整個安裝。在安裝中有幾個重要環(huán)節(jié)需要著重說明。任務(wù)1:圖形界面方式安裝一、選擇安裝語言在安裝KingbaseES時,默認(rèn)是選擇簡體中文,可以根據(jù)需要選擇English方式安裝。二、安裝檢查在安裝KingbaseES時,一方面會檢查系統(tǒng)是否已經(jīng)安裝,安裝時會對所需第三方軟件進(jìn)行判斷,如VC2023Redistributable等。點【擬定】,進(jìn)入安裝;點【取消】,則退出安裝。三、歡迎界面該界面上會分別顯示KingbaseES和安裝程序的版本號。四、用戶許可協(xié)議在安裝KingbaseES時,默認(rèn)是不接受許可協(xié)議條款。五、選擇安裝類型-共有三種安裝類型:“完全安裝”-安裝KingbaseES所有組件,推薦大多數(shù)用戶使用,是默認(rèn)的安裝方式?!翱蛻舳税惭b”-安裝KingbaseES的所有客戶端工具、編程接口和擴展插件?!白远x安裝”-用戶可以選擇需要安裝的程序,涉及服務(wù)器、客戶端管理工具、編程接口和擴展插件,可以根據(jù)自身需要,選擇需要組件,推薦高級用戶使用。六、選擇授權(quán)文獻(xiàn)在安裝KingbaseES時,需要提供授權(quán)文獻(xiàn),并仔細(xì)閱讀其內(nèi)容,假如授權(quán)文獻(xiàn)非法,【下一步】按鈕會置灰,顯示的指定途徑合法的授權(quán)文獻(xiàn)。七、選擇安裝目錄如:“C:\Basesoft\KingbaseES\6.1.3”是系統(tǒng)在安裝中默認(rèn)的安裝目錄,用戶可以通過單擊【選擇】,修改安裝目錄。八、顯示安裝進(jìn)度九,初始化數(shù)據(jù)庫:若用戶選擇安裝了“數(shù)據(jù)庫初始化”,在安裝的最后,將進(jìn)行初始化數(shù)據(jù)庫。十、安裝完畢:安裝的最后一步將出現(xiàn)對話框,提醒用戶安裝已經(jīng)完畢。十一、安裝對的性驗證:在安裝完畢后,可以通過以下幾種方式進(jìn)行安裝對的性驗證:查看log,確認(rèn)沒有錯誤記錄;查看“開始”—>“所有程序”中是否安裝KingbaseES菜單項且對的關(guān)聯(lián)到相應(yīng)程序;在“控制面板”中打開“服務(wù)”組件,查看是否有KingbaseESListenerService服務(wù)組件;并且驗證是否能正常啟動和停止;驗證工具是否能連接數(shù)據(jù)庫。任務(wù)2:命令行方式安裝一方面,安裝用戶必須具有Administrat(yī)or的權(quán)限。安裝用戶進(jìn)入命令行窗口,定位到安裝程序所在目錄,運營“setup-iconsole”,每一步按照提醒順序執(zhí)行,就可以對的完畢整個安裝。在安裝中有幾個重要環(huán)節(jié)需要著重說明:一、安裝過程1、選擇安裝語言在安裝KingbaseES時,有兩種語言可供選擇:1為英語;2為簡體中文,默認(rèn)是簡體中文。2、安裝VC2023Redistributable假如系統(tǒng)上沒有安裝VC2023Redistributable組件,則需安裝此組件。選【擬定】,進(jìn)入安裝;否則,則退出安裝。3、歡迎界面該界面上會分別顯示KingbaseES和安裝程序的版本號。4、用戶許可協(xié)議在安裝KingbaseES時,安裝用戶需要選擇是否接受用戶許可協(xié)議。如需進(jìn)一步安裝KingbaseES,則在仔細(xì)閱讀協(xié)議條款后,選擇“Y”。5、選擇安裝類型共有三種安裝類型:“完全安裝”-安裝KingbaseES所有組件,推薦大多數(shù)用戶使用,是默認(rèn)的安裝方式?!翱蛻舳税惭b”-安裝KingbaseES的所有客戶端工具和編程接口?!岸ㄖ啤?用戶可以選擇需要安裝的程序,涉及服務(wù)器、客戶端管理工具和編程接口,可以根據(jù)自身需要,選擇需要組件,推薦高級用戶使用。如圖選擇組件。6、選擇授權(quán)文獻(xiàn)在安裝KingbaseES時,需要提供授權(quán)文獻(xiàn),并仔細(xì)閱讀其內(nèi)容,安裝用戶可以自由選擇授權(quán)文獻(xiàn)的途徑,也可采用默認(rèn)值。7、選擇安裝目錄用戶可以自己指定途徑,修改安裝目錄;也可采用默認(rèn)安裝目錄。8、查看安裝KingbaseES的預(yù)安裝摘要這是拷貝文獻(xiàn)之前的最后一個對話框,顯示了用戶在安裝過程中設(shè)定的安裝選項:第一項是KingbaseES產(chǎn)品的安裝名稱。第二項是KingbaseES安裝的位置。第三項是KingbaseES需安裝的功能部件。若要修改這三項的內(nèi)容,可以點擊【上一步】,返回前面的對話框中修改。9、安裝進(jìn)度10、初始化數(shù)據(jù)庫若用戶選擇安裝了“Y”,在安裝的最后,將進(jìn)行初始化數(shù)據(jù)庫11、安裝完畢安裝的最后一步將出現(xiàn)提醒用戶安裝已經(jīng)完畢,按回車退出。二、安裝結(jié)果在安裝完畢后,KingbaseES中用戶選擇的組件都裝在安裝途徑下,同時完畢注冊文獻(xiàn)的配置。并在『開始』│『程序』菜單中生成『KingbaseES』程序組。任務(wù)3:啟動和停止數(shù)據(jù)庫服務(wù)一、圖形界面方式:啟動KingbaseES:當(dāng)連接上KLS服務(wù)器后,就可以啟動該KLS服務(wù)器控制的KingbaseES服務(wù)器。當(dāng)服務(wù)器信息面板上的“啟動”按鈕可用時,點擊它,便可以啟動KingbaseES服務(wù)器。注意:假如啟動失敗,也許是KingbaseES服務(wù)器已經(jīng)啟動,請點擊“刷新”按鈕刷新當(dāng)前服務(wù)器信息面板的內(nèi)容。假如刷新后狀態(tài)仍然不對的,請檢查遠(yuǎn)程服務(wù)器上的KLS是否已經(jīng)啟動。停止KingbaseES:當(dāng)連接上KLS服務(wù)器后,就可以停止該KLS服務(wù)器控制的KingbaseES服務(wù)器。當(dāng)服務(wù)器信息面板上的“停止”按鈕可用時,點擊它,彈出停止方式選擇對話框,有兩種停止數(shù)據(jù)庫的方式:正常停止和強行停止。正常停止服務(wù)器:KingbaseES服務(wù)器在沒有發(fā)生異常的情況下,可以使用此種方式,推薦使用本方式。強制停止服務(wù)器:在某些異常情況下,服務(wù)器也許無法正常停止,例如正常停止后返回失敗提醒,或Windows任務(wù)管理器中仍有名為Kingbase.exe的服務(wù)進(jìn)程存在,此時可選擇“強制停止服務(wù)器”的方式并點擊“擬定”按鈕,結(jié)束所有服務(wù)進(jìn)程。注意:假如停止失敗,也許是KingbaseES服務(wù)器已經(jīng)停止,請點擊“刷新”按鈕刷新當(dāng)前服務(wù)器信息面板的內(nèi)容。假如刷新后狀態(tài)仍然不對的,請檢查遠(yuǎn)程服務(wù)器上的KLS是否已經(jīng)啟動。啟動和停止數(shù)據(jù)庫的服務(wù)的界面如下:二、命令行方式也可以在命令行中通過服務(wù)啟動和停止數(shù)據(jù)庫。在命令行里通過服務(wù)啟動數(shù)據(jù)庫,具體方法為:在數(shù)據(jù)庫庫停止?fàn)顟B(tài)下,打開命令行窗口,輸入:netstart“KingbaseESListenerService”正常啟動的提醒信息為:?KingbaseESListenerService服務(wù)正在啟動… KingbaseESListenerService服務(wù)已啟動成功。在命令行里通過服務(wù)停止數(shù)據(jù)庫,具體方法為:在已經(jīng)通過服務(wù)啟動KingbaseES數(shù)據(jù)庫情況下,打開命令行窗口,輸入:netstop“KingbaseESListenerService”正常停止的提醒信息如下: KingbaseESListenerService服務(wù)正在停止… KingbaseESListenerService服務(wù)已成功停止。三、Windows服務(wù)管理窗口中啟動和停止數(shù)據(jù)庫服務(wù)可以在Windows的服務(wù)管理窗口中進(jìn)行啟動和停止KingbaseES數(shù)據(jù)庫,或者更改KingbaseES的啟動方式。如下圖所示:任務(wù)4:展示KingbaseES數(shù)據(jù)庫重要功能組件一、KingbaseES數(shù)據(jù)庫安裝結(jié)束后,單擊【開始】->【程序】,在“金倉數(shù)據(jù)庫KingbaseES程序組”中可以看到如下內(nèi)容,如圖所示:KingbaseESV6.1.1校園版組件總覽在本次實驗中,重要進(jìn)行公司管理器、查詢分析器、邏輯備份還原工具、聯(lián)機幫助的功能展示。二、在“金倉數(shù)據(jù)庫KingbaseES程序組”中選擇【公司管理器】,將看到如下圖的登錄界面:此時需要輸入數(shù)據(jù)庫管理員的用戶名和密碼,登錄成功后,將看到如下界面:JManager管理工具的主窗口使用了主-細(xì)節(jié)視圖(Master-detail)的概念。在窗口左邊的【導(dǎo)航樹】中顯示了目的列表,在右邊細(xì)節(jié)視圖中顯示了關(guān)于被選中目的的更具體的描述。在【導(dǎo)航樹】中選擇的對象類型不同,右邊的細(xì)節(jié)視圖會發(fā)生變化。在公司管理器中可以實現(xiàn)如下各種數(shù)據(jù)庫對象管理功能:1、數(shù)據(jù)庫管理(創(chuàng)建、刪除、重命名數(shù)據(jù)庫;連接、斷開數(shù)據(jù)庫;清理、分析數(shù)據(jù)庫等功能)2、表空間管理(新建、刪除、修改、重命名表空間;管理權(quán)限等功能)3、模式管理(新建、刪除、重命名模式;設(shè)立模式權(quán)限)4、表管理、分區(qū)管理、視圖管理、觸發(fā)器管理、存儲過程管理、索引管理、用戶管理、角色管理、函數(shù)管理等諸多功能。具體的使用方法和功能介紹可以參考《KingbaseES公司管理器聯(lián)機幫助》。三、在“金倉數(shù)據(jù)庫KingbaseES程序組”中選擇【查詢分析器】,將看到如下圖所示的的登錄界面:查詢分析器登陸界面當(dāng)輸入數(shù)據(jù)庫管理員的用戶名和密碼以后,點擊【擬定】,成功登陸。將看到如下界面:KingbaseES查詢分析器(JSQL)是KingbaseES的客戶端交互式系統(tǒng),是基于JAVA語言開發(fā)的能運營在不同操作系統(tǒng)平臺上的交互式SQL工具,用戶通過這個圖形化工具執(zhí)行不同的SQL語句,查詢分析器提供方便的SQL語句執(zhí)行方式并顯示相應(yīng)的結(jié)果,其界面和諧、操作簡便。查詢分析器既可認(rèn)為超級用戶使用,也可認(rèn)為普通用戶使用。查詢分析器可以進(jìn)行以下操作:1、在"查詢器"中輸入SQL腳本或創(chuàng)建各種數(shù)據(jù)庫對象的SQL查詢語句,并執(zhí)行。2、通過KingbaseES查詢分析器主窗口左邊的“對象瀏覽器”瀏覽KingbaseES數(shù)據(jù)庫中存在的對象。3、使用“對象瀏覽器”的“導(dǎo)航樹”提供的腳本功能快速得到數(shù)據(jù)庫對象創(chuàng)建、刪除等腳本,執(zhí)行存儲過程和函數(shù)。4、使用“對象搜索器”在數(shù)據(jù)庫內(nèi)定位對象。5、使用“查詢優(yōu)化器”顯示執(zhí)行計劃。6、在“打開表”窗口中可快速瀏覽表中的行。四、在“金倉數(shù)據(jù)庫KingbaseES程序組”中選擇【邏輯備份還原工具】,將看到如下圖的登錄界面:KingbaseESV6.1邏輯備份還原工具提供了對數(shù)據(jù)庫對象的聯(lián)機備份還原功能,涉及對指定數(shù)據(jù)庫、指定對象和指定模式。邏輯備份工具提供三種備份方式--備份整個數(shù)據(jù)庫、備份指定表、以及備份指定模式;邏輯還原工具提供兩種還原方式--還原所有備份對象、還原部分備份對象。用戶可靈活調(diào)整、實行數(shù)據(jù)的備份還原計劃。數(shù)據(jù)庫邏輯備份還原工具,是在KingbaseES數(shù)據(jù)庫服務(wù)器聯(lián)機狀態(tài)下進(jìn)行備份還原操作。邏輯備份還原工具的運營可以通過在程序目錄菜單中選擇,或安裝目錄<installdir>/bin下執(zhí)行"java-jarJDump.jar",在Windows環(huán)境下可直接運營安裝目錄下的javatools.batJDump。五、在“金倉數(shù)據(jù)庫KingbaseES程序組”中選擇【聯(lián)機幫助】,將看到如下圖界面:由上圖可以看到,KingbaseES聯(lián)機幫助有如下特點:左邊是目錄樹,當(dāng)選擇左邊目錄樹的相關(guān)標(biāo)題時,右邊是相應(yīng)的內(nèi)容;可以根據(jù)【索引】對目錄樹上的標(biāo)題進(jìn)行模糊搜索;可以根據(jù)【搜索】對所有內(nèi)容進(jìn)行模糊匹配搜索;在操作數(shù)據(jù)庫的過程中,一般情況下,在各個界面的右下角都有一個【幫助】按鈕,點擊該按鈕可以直接定位到聯(lián)機幫助的目前正在操作的部分。這樣更方便我們在操作過程中碰到了問題隨時查詢幫助。實驗(二):SQL語句方式與圖形界面方式的創(chuàng)建實現(xiàn)一、實驗內(nèi)容:1、安裝KingbaseES數(shù)據(jù)庫系統(tǒng),使用SQL語言或圖形界面方式建立數(shù)據(jù)庫、模式和表,用SQL語句向創(chuàng)建的表中插入數(shù)據(jù)。二、實驗?zāi)康?掌握用SQL語句對數(shù)據(jù)庫和表的創(chuàng)建方法,掌握用SQL語句向表中插入數(shù)據(jù)的方法。掌握使用圖形界面的方式進(jìn)行庫和表的創(chuàng)建,以及數(shù)據(jù)的插入方法。三、實驗規(guī)定:1、運用SQL語句方式或圖形界面方式創(chuàng)建一個名為“SAM”的數(shù)據(jù)庫。?2、運用SQL語句方式或圖形界面方式創(chuàng)建一個名為“SCOT”的模式。2、運用SQL語句方式或圖形界面方式在SCOT模式中創(chuàng)建表:DEPT表;EMP表;SALGRADEB表。(注釋:DEPT代表部門表;EMP代表員工表;SALGRADEB代表工資等級表)3、向以上各表中用SQL語句插入數(shù)據(jù)(或運用圖形界面方式插入數(shù)據(jù))。任務(wù)1:SAM數(shù)據(jù)庫創(chuàng)建1、SQL語句方式創(chuàng)建SAM數(shù)據(jù)庫? 創(chuàng)建環(huán)節(jié)如下:打開查詢分析器->在查詢分析器工作窗口中輸入創(chuàng)建語句->點擊【執(zhí)行】按鈕即可。創(chuàng)建語句如下:CREATEDATABASE"SAM"WITHENCODING='GBK';2、圖形界面方式創(chuàng)建SAM數(shù)據(jù)庫創(chuàng)建環(huán)節(jié)如下:打開公司管理器->在公司管理器的【數(shù)據(jù)庫】節(jié)點點擊鼠標(biāo)右鍵->點擊【新建數(shù)據(jù)庫】->彈出【新建數(shù)據(jù)庫窗口】,在該窗口中的“數(shù)據(jù)庫名稱”后面輸入要創(chuàng)建的數(shù)據(jù)庫名,其他選項默認(rèn)即可->點擊【擬定】。創(chuàng)建窗口如下:任務(wù)2:SAM數(shù)據(jù)庫中創(chuàng)建SCOT模式【任務(wù)1】中已將SAM數(shù)據(jù)庫創(chuàng)建完畢,接下來需要在該數(shù)據(jù)庫中創(chuàng)建SCOT模式。模式(Schema)事實上是一個名字空間,它包含命名對象(表,視圖,存儲過程,函數(shù)和序列)。要創(chuàng)建模式,調(diào)用該命令的用戶必需在當(dāng)前數(shù)據(jù)庫上有CREATE權(quán)限。(超級用戶具有任何數(shù)據(jù)操作權(quán)限)1、SQL語句方式創(chuàng)建SCOT模式 創(chuàng)建環(huán)節(jié)如下:打開查詢分析器->展開SAM數(shù)據(jù)庫中的模式->選中該數(shù)據(jù)庫下面的任意一個“系統(tǒng)模式”->點擊【新建】,新建一個查詢分析器窗口,在查詢分析器工作窗口中輸入創(chuàng)建語句->點擊【執(zhí)行】按鈕即可。創(chuàng)建語句如下:CREATESCHEMA"SCOT";2、圖形界面方式創(chuàng)建SCOT模式創(chuàng)建環(huán)節(jié)如下:打開公司管理器->在公司管理器的【模式】節(jié)點點擊鼠標(biāo)右鍵->點擊【新建模式】->彈出【新建模式窗口】,在該窗口中的“模式名”后面輸入要創(chuàng)建的模式名,點擊【擬定】。創(chuàng)建窗口如下:任務(wù)3:表的創(chuàng)建1、圖形界面方式創(chuàng)建DEPT表表結(jié)構(gòu)如下?創(chuàng)建環(huán)節(jié)如下:打開公司管理器->在公司管理器的【表】節(jié)點點擊鼠標(biāo)右鍵->點擊【新建表】->彈出【新建表窗口】,在該窗口中的“模式名”后面輸入要創(chuàng)建的模式名,點擊【保存】。創(chuàng)建窗口如下:2、SQL語句方式創(chuàng)建DEPT表在查詢分析器中創(chuàng)建DEPT表的語句如下:CREATETABLE"SCOTT"."DEPT"("DEPTNO"NUMERIC(2,0)NOTNULL,"DNAME"VARCHAR(14),"LOC"VARCHAR(13),PRIMARYKEY("DEPTNO")USINGINDEXTABLESPACE"SYSTEM")TABLESPACE"SYSTEM";3、SQL語句方式創(chuàng)建EMP表 ?EMP表結(jié)構(gòu)如下:在查詢分析器中創(chuàng)建EMP表的語句如下:CREATETABLE"SCOT"."EMP"("EMPNO"NUMERIC(4,0)NOTNULL, "ENAME"VARCHAR(10),"JOB"VARCHAR(9),"MGR"NUMERIC(4,0),"HIREDATE"DATE,"SAL"NUMERIC(7,2),"COMM"NUMERIC(7,2), "DEPTNO"NUMERIC(2,0),PRIMARYKEY("EMPNO")USINGINDEXTABLESPACE"SYSTEM",CONSTRAINT"EMP_REF_DEPT_FK"FOREIGNKEY("DEPTNO")REFERENCES"SCOTT"."DEPT"("DEPTNO")ONDELETERESTRICTONUPDATERESTRICTNOTDEFERRABLE)TABLESPACE"SYSTEM";4、SQL語句方式創(chuàng)建SALGRADE表SALGRADE表結(jié)構(gòu)如下:在查詢分析器中創(chuàng)建SALGRADE表的語句如下:CREATETABLE"SCOT"."SALGRADE"("GRADE"NUMERIC(10,0),"LOSAL"NUMERIC(10,0),"HISAL"NUMERIC(10,0))TABLESPACE"SYSTEM";任務(wù)4:運用SQL語句向以上各表中插入數(shù)據(jù)1、需要向各表中插入的具體數(shù)據(jù) (1)、向DEPT表中插入的數(shù)據(jù)如下表: 向表中插入數(shù)據(jù)的SQL語句如下:INSERTINTO"DEPT"VALUES(10,'ACCOUNTING','NEWYORK');INSERTINTO"DEPT"VALUES(20,'RESEARCH','DALLAS');INSERTINTO"DEPT"VALUES(30,'SALES','CHICAGO');INSERTINTO(shè)"DEPT"VALUES(40,'OPERATIONS','BOSTON'); (2)、向EMP表中插入的數(shù)據(jù)如下表: 向表中插入數(shù)據(jù)的SQL語句如下:INSERTINTO(shè)"EMP"VALUES(7369,'SMITH','CLERK',7902,'1980-12-17',800.00,NULL,20);INSERTINTO"EMP"VALUES(7499,'ALLEN','SALESMAN',7698,'1981-02-20',1600.00,300.00,30);INSERTINTO"EMP"VALUES(7521,'WARD','SALESMAN',7698,'1981-02-22',1250.00,500.00,30);INSERTINTO"EMP"VALUES(7566,'JONES','MANAGER',7839,'1981-04-02',2975.00,NULL,20);INSERTINTO(shè)"EMP"VALUES(7654,'MARTIN','SALESMAN',7698,'1981-09-28',1250.00,1400.00,30);INSERTINTO(shè)"EMP"VALUES(7698,'BLAKE','MANAGER',7839,'1981-05-01',2850.00,NULL,30);INSERTINTO"EMP"VALUES(7782,'CLARK','MANAGER',7839,'1981-06-09',2450.00,NULL,10);INSERTINTO"EMP"VALUES(7788,'SCOTT','ANALYST',7566,'1987-04-19',3000.00,NULL,20);INSERTINTO(shè)"EMP"VALUES(7839,'KING','PRESIDENT',NULL,'1981-11-17',5000.00,NULL,10);INSERTINTO"EMP"VALUES(7844,'TURNER','SALESMAN',7698,'1981-09-08',1500.00,0.00,30);INSERTINTO"EMP"VALUES(7876,'ADAMS','CLERK',7788,'1987-05-23',1100.00,NULL,20);INSERTINTO"EMP"VALUES(7900,'JAMES','CLERK',7698,'1981-12-03',950.00,NULL,30);INSERTINTO"EMP"VALUES(7902,'FORD','ANALYST',7566,'1981-12-03',3000.00,NULL,20);INSERTINTO(shè)"EMP"VALUES(7934,'MILLER','CLERK',7782,'1982-01-23',1300.00,NULL,10); (3)、向SALGRADE表中插入的數(shù)據(jù)如下表: ? 向表中插入數(shù)據(jù)的SQL語句如下:INSERTINTO"SALGRADE"VALUES(1,700,1200);INSERTINTO"SALGRADE"VALUES(2,1201,1400);INSERTINTO"SALGRADE"VALUES(3,1401,2023);INSERTINTO"SALGRADE"VALUES(4,2023,3000);INSERTINTO"SALGRADE"VALUES(5,3001,9999);提醒:1、創(chuàng)建數(shù)據(jù)庫的SQL命令是CREATEDATABASE。2、創(chuàng)建或定義基本表的SQL命令是CREATETABLE,一般格式是:CREATETABLE<表名>(<列名><數(shù)據(jù)類型>[<列級完整性約束>],<列名><數(shù)據(jù)類型>[<列級完整性約束>],……,[<表級完整性約束>])其中數(shù)據(jù)完整性約束涉及:1、空值約束NOTNULL和NULL;2、主關(guān)鍵字約束PRIMARYKEY;3、唯一性約束UNIQUE;4、參照完整性約束FOREIGNKEY;5、默認(rèn)值定義DEFAULT;6、取值范圍約束CHECK。數(shù)據(jù)插入語句的命令為INSERTINTO。SQL語句知識補充數(shù)據(jù)操作(語句)功能SELECT從數(shù)據(jù)庫表中檢索數(shù)據(jù)行和列INSERT向數(shù)據(jù)庫表添加新數(shù)據(jù)行DELETE從數(shù)據(jù)庫表中刪除數(shù)據(jù)行UPDATE更新數(shù)據(jù)庫表中的數(shù)據(jù)數(shù)據(jù)定義(語句)功能CREATETABLE創(chuàng)建一個數(shù)據(jù)庫表DROPTABLE從數(shù)據(jù)庫中刪除表ALTERTABLE修改數(shù)據(jù)庫表結(jié)構(gòu)CREATEVIEW創(chuàng)建一個視圖DROPVIEW從數(shù)據(jù)庫中刪除視圖CREATEINDEX為數(shù)據(jù)庫表創(chuàng)建一個索引DROPINDEX從數(shù)據(jù)庫中刪除索引實驗(三):數(shù)據(jù)備份與數(shù)據(jù)還原一、實驗?zāi)康模毫私釱ingbaseES的數(shù)據(jù)備份和恢復(fù)機制,掌握KingbaseES中數(shù)據(jù)庫恢復(fù)的方法。二、實驗平臺:裝有KingbaseESv6.1版本數(shù)據(jù)庫的windows操作系統(tǒng)的PC機;并且已經(jīng)在KingbaseES數(shù)據(jù)庫中創(chuàng)建了屬于自己的數(shù)據(jù)庫。三、實驗內(nèi)容及規(guī)定1、分別運用“邏輯備份還原工具”向?qū)Ш兔钚蟹绞竭M(jìn)行數(shù)據(jù)庫的備份操作;2、規(guī)定學(xué)生在公司管理器的KingbaseES邏輯還原工具中將自己備份的數(shù)據(jù)文獻(xiàn)恢復(fù)到指定的庫中。3、將自己操作的環(huán)節(jié)填寫在實驗報告中。任務(wù)1:KingbaseES數(shù)據(jù)庫的數(shù)據(jù)備份(圖形界面方式)在“邏輯備份還原工具”向?qū)У臍g迎窗口中選擇【邏輯備份】按鈕,進(jìn)行數(shù)據(jù)庫備份。一、連接設(shè)立:用戶需要在此窗口中填寫指定數(shù)據(jù)庫服務(wù)器的IP地址,端標(biāo)語,以及執(zhí)行備份操作的用戶名稱、登錄密碼等信息,用于連接數(shù)據(jù)庫服務(wù)器。如圖所示:若要連接默認(rèn)服務(wù)器以外的服務(wù)器,請點擊"服務(wù)器"選框右端的【刷新】按鈕,在服務(wù)器列表框中選擇網(wǎng)絡(luò)上可以搜索到的其他KingbaseES服務(wù)器的主機。如圖所示:二、選擇備份方式:在備份方式窗口中設(shè)定所需要的備份方式:備份整個數(shù)據(jù)庫、備份多個表、備份指定模式。三、選擇備份對象:“備份整個數(shù)據(jù)庫”對指定數(shù)據(jù)庫內(nèi)所有對象進(jìn)行備份;“備份單個表”將對單表(涉及相關(guān)數(shù)據(jù)、索引、約束、觸發(fā)器、權(quán)限等)進(jìn)行備份;“備份多個表”同時備份同數(shù)據(jù)庫某個模式下的多個表;“備份指定模式”備份數(shù)據(jù)庫的某一模式下的所有對象。備份整個數(shù)據(jù)庫的界面圖備份多個表的界面圖備份指定模式的界面圖四、目的文獻(xiàn)設(shè)立:設(shè)立備份文獻(xiàn)的途徑以及相關(guān)的備注。假如備份文獻(xiàn)名不合法(不符合操作系統(tǒng)對于文獻(xiàn)名的規(guī)定),則會彈犯錯誤信息提醒。單擊【瀏覽(B)…】按鈕可以選擇文獻(xiàn)途徑。備注信息內(nèi)容將被儲存到連接的服務(wù)器系統(tǒng)表內(nèi)。默認(rèn)的備份文獻(xiàn)路徑為當(dāng)前文獻(xiàn)途徑,默認(rèn)備份文獻(xiàn)名由備份方式和備份時間信息構(gòu)成。默認(rèn)的文獻(xiàn)類型是BINARY類型。若選擇“備份為SQL文獻(xiàn)”,則備份文獻(xiàn)中記錄著數(shù)據(jù)庫中所有對象的SQL語句,可以在JSQL中直接執(zhí)行。如下圖所示:五、顯示用戶的選擇信息:此處將顯示用戶有關(guān)備份的所有設(shè)定,若單擊【上一步】按鈕可返回并修改信息設(shè)定;單擊【完畢】按鈕,將彈出“備份進(jìn)度信息”窗口,備份過程開始執(zhí)行。備份任務(wù)執(zhí)行結(jié)束后,會彈出信息提醒框。如下圖所示:任務(wù)2:KingbaseES數(shù)據(jù)庫的數(shù)據(jù)備份(命令行方式)命令行備份恢復(fù)數(shù)據(jù)庫(具體參數(shù)請參見聯(lián)機幫助):假設(shè)對本地機器的CMS數(shù)據(jù)庫進(jìn)行邏輯備份,用戶名為CMS,密碼為cms,備份文獻(xiàn)輸出到d盤根目錄下,命令如下:sys_dump-hlocalhost-p54321-UCMS-Wcms-fd:\1.dmpCMS參與下圖:任務(wù)3:KingbaseES數(shù)據(jù)庫還原(圖形界面方式)一、數(shù)據(jù)庫連接設(shè)立與邏輯備份工具同樣,這里也需要用戶填寫指定數(shù)據(jù)庫服務(wù)器的IP地址,端標(biāo)語,以及用戶名和密碼等信息,用于建立與數(shù)據(jù)庫服務(wù)器的連接。指定備份文獻(xiàn),還原數(shù)據(jù)庫以及還原的方式。還原時,可以選擇"還原至數(shù)據(jù)庫",并指定已經(jīng)存在的數(shù)據(jù)庫,將數(shù)據(jù)還原至已存在的數(shù)據(jù)庫中。如圖所示:二、指定還原對象當(dāng)在第二步中選擇還原部分對象時,需要進(jìn)一步指定需要還原對象(表、索引、觸發(fā)器或存儲過程)。需要注意的是,除表、索引、觸發(fā)器或存儲過程之外的對象,不能通過此環(huán)節(jié)單獨還原。三、顯示用戶的選擇信息此處將顯示用戶先前有關(guān)還原的所有設(shè)定,若單擊【上一步】按鈕可回到前面修改信息設(shè)定;假如用戶認(rèn)同顯示的內(nèi)容,則單擊【完畢】按鈕,彈出"進(jìn)度信息"窗口,還原程序開始執(zhí)行。還原過程中,還原進(jìn)度信息窗口中會顯示還原的進(jìn)度信息;還原任務(wù)執(zhí)行結(jié)束后,會彈出信息提醒框。如圖所示:任務(wù)4:KingbaseES數(shù)據(jù)庫還原(命令行方式)請將d盤的數(shù)據(jù)庫備份文獻(xiàn)1.dmp還原到新建數(shù)據(jù)庫TFWANG中。sys_restore-hlocalhost-p54321-USYSTEM-WMANAGER-dTFWANGc:\1.dmp實驗(四):表空間擴展實驗案例說明:表WTF存放到SP表空間上,表空間最大大小設(shè)為16M,當(dāng)數(shù)據(jù)裝滿16M空間后,假如再向WTF表插入數(shù)據(jù),這樣就會顯示空間局限性的錯誤。看下圖:請問:如何解決這一現(xiàn)象?實驗過程任務(wù)1:準(zhǔn)備工作(問題出現(xiàn))創(chuàng)建表空間SP001,設(shè)最大值16M,在表空間中建表WTF001,并向表中插入一行數(shù)據(jù);創(chuàng)建表空間的語句:CREATETABLESPACESP001(NAME=SP001FILENAME='SP001'SIZE=1MAXSIZE=16FILEGROWTH=10);創(chuàng)建表:createtableWTF001(WTF002VARCHAR(100))tablespaceSP001;插入數(shù)據(jù):insertintoWTF001values('FJEWLJJFLDS');創(chuàng)建表空間SP002,設(shè)最大值16M,在表空間中建表WTF002,并向表中插入一行數(shù)據(jù);創(chuàng)建表空間的語句:CREATETABLESPACESP002(NAME=SP002FILENAME='SP002'SIZE=1MAXSIZE=16FILEGROWTH=10);2、使用“自我復(fù)制語句”分別向兩個表中插入大量數(shù)據(jù):insertintoWTF001select*fromWTF001;insertintoWTF002select*fromWTF002;3、當(dāng)數(shù)據(jù)量達(dá)成一定限度時,就會出現(xiàn)無法擴展的問題。任務(wù)2:解決方案一(增長數(shù)據(jù)文獻(xiàn))增長數(shù)據(jù)庫文獻(xiàn)的語句如下:ALTERTABLESPACESP001ADDDATAFILE(NAME=SP0011FILENAME='D:/SP0011'SIZE=1MAXSIZE=16FILEGROWTH=10);注釋:SP001——原表空間名稱;NAME=SP0011——新曾數(shù)據(jù)文獻(xiàn)邏輯名稱;FILENAME='D:/SP0011'——新增數(shù)據(jù)文獻(xiàn)物理名稱SP0011,放在D盤根目錄下;SIZE=1——原始大小1M;MAXSIZE=16——最大值16M;FILEGROWTH=10——增長率10%新增數(shù)據(jù)文獻(xiàn)如下:在公司管理器中查看“表空間->SP001->屬性??梢圆榭葱略龅臄?shù)據(jù)文獻(xiàn)SP0011再次執(zhí)行:insertintoWTF001select*fromWTF001;語句,數(shù)據(jù)庫插入正常。任務(wù)3:解決方案二(增長數(shù)據(jù)文獻(xiàn)的大?。〢LTERTABLESPACESP002MODIFYDATAFILESP002RESIZE15;注釋:SP002——數(shù)據(jù)文獻(xiàn)名稱(物理名稱)。每次文獻(xiàn)增長長度應(yīng)小于此文獻(xiàn)的最大長度值(SP002最大為16M)。數(shù)據(jù)文獻(xiàn)的最終大小不要超過16000M,由于這是KingbaseES數(shù)據(jù)庫單個數(shù)據(jù)文獻(xiàn)的極限值。而:ORACLE10G數(shù)據(jù)庫的單個表空間文獻(xiàn)是不能超過500M的。再次執(zhí)行:insertintoWTF002select*fromWTF002;語句,數(shù)據(jù)庫插入正常。實驗(五):SQL語句的查詢實現(xiàn)一、實驗內(nèi)容:使用SQL語句對自己所建數(shù)據(jù)庫中的表進(jìn)行查詢。二、實驗?zāi)康模壕毩?xí)使用各種SQL語句查詢表的方法與技巧。三、實驗規(guī)定:1、單表查詢;2、多表查詢;3、子查詢;任務(wù)1:運用SQL語句進(jìn)行單表查詢?(1)、查詢EMP表中指定的列SELECTempno,ename,job,salFROM"SCOT"."EMP"; (2)、在結(jié)果集中給查詢的列以別名SELECTEMPNOAS員工編號,ENAMEAS員工姓名,JOBAS職位,SALAS工資FROM"SCOT"."EMP"; (3)、在EMP表中查詢每位員工的員工編號、姓名、和年薪SELECTEMPNO,ENAME,SAL*12FROM"SCOT"."EMP";?(4)、在EMP表中查詢月工資大于等于1500元,小于等于3000元的員工信息select*from"SCOT"."EMP"wheresal>=1500andsal<=3000;?(5)、在EMP表中查詢工作職位是“SALESMAN”的員工編號,姓名、職位和工資selectempno,ename,job,salfrom"SCOT"."EMP"wherejob='SALESMAN';任務(wù)2:運用SQL語句進(jìn)行多表查詢?(1)、查詢每個員工所屬部門和所在的具體地點由于所查詢的字段分別在EMP表和DEPT表中,所以需要進(jìn)行跨表進(jìn)行查詢。查詢語句如下:SELECTEMPNO,ENAME,SAL,EMP.DEPTNO,LOCFROM"SCOT"."EMP","SCOT"."DEPT"WHEREEMP.DEPTNO=DEPT.DEPTNOORDERBYLOC;該例子為相等連接,當(dāng)兩個表中記錄的deptno值完全相等時才進(jìn)行連接。這種連接查詢涉及主鍵和外鍵。也稱簡樸連接或內(nèi)連接。?(2)、查詢工資級別在4-5級之間的所有員工該查詢使用BETWEENAND作為連接運算符,該運算符不是等號(=),因此這個連接稱之為不等連接。SELECTe.empno,e.ename,e.job,e.sal,s.gradeFROM"SCOT"."EMP"e,"SCOT"."SALGRADE"sWHEREe.salbetweens.losalands.hisalands.grade>3;任務(wù)3:運用SQL語句進(jìn)行子查詢?(1)、查詢與SMITH這個員工職位相同的所有員工的員工編號,姓名,薪水和職位。SELECTempno,ename,sal,jobFROM"SCOT"."EMP"WHEREjob=(SELECTjobFROM"SCOT"."EMP"WHEREename='SMITH');該語句包含一個子查詢,屬于Where子句中的單行子查詢。括號內(nèi)的查詢叫子查詢或內(nèi)查詢,括號外的查詢叫主查詢或外查詢。(2)、查詢工作職位與SMITH相同,并且工資不超過ADAMS的所有員工的信息。SELECTempno,ename,sal,jobFROM"SCOT"."EMP"WHEREjob=(SELECTjobFROM"SCOT"."EMP"WHEREename='SMITH')ANDsal<=(SELECTsalFROM"SCOT"."EMP"WHEREename='ADAMS');任務(wù)4:分頁查詢(1)、在SAMPLES數(shù)據(jù)庫SCOTT模式下的EMP表中查詢第5條至第10條之間的記錄。如下圖所示:其查詢語句如下:select*from(selecta1.*,rownumrnfrom(select*fromscott.emp)a1whererownum<=10)wherern>=5;在查詢分析器中運營完以上查詢語句的結(jié)果如下:任務(wù)5:查詢強化訓(xùn)練約定:以下的所有查詢均以SAMPLES數(shù)據(jù)庫中,SCOTT模式下的“DEPT表”,“EMP表”,“SALGRADE表”作為查詢對象。一、單表查詢1、創(chuàng)建一個表users,并且插入一行數(shù)據(jù)。請寫一條插入語句,規(guī)定從自己復(fù)制,以迅速加大表的數(shù)據(jù)量。表創(chuàng)建:CREATETABLEusers(userIdVARCHAR2(10),uNameVARCHAR2(20),uPasswVARCHAR2(30));插入數(shù)據(jù):INSERTINTOusersVALUES('a0001','北京','abcdefg007');從自己復(fù)制插入數(shù)據(jù)的語句為?INSERTINTOusers(userId,UNAME,UPASSW)SELECT*FROMusers;2、上題中,假如需要讓表中的數(shù)據(jù)量達(dá)成1024條記錄,需要執(zhí)行幾次上題中對的選項的“自我復(fù)制插入語句”?10次3、如何用一條語句登記表中數(shù)據(jù)的行數(shù)SELECTCOUNT(*)FROMusers;4、查詢SCOTT模式下,EMP表中SMITH這位員工所在的部門號,工作,薪水selectdeptno,job,salfromscott.empwhereename='SMITH';5、如何顯示SCOTT模式下,EMP表中每個雇員的年工資及獎金?說明:表中EMPNO-員工編號,ENAME-員工姓名,JOB-職位,HIREDATE-入職時間,SAL-工資,COMM-獎金,DEPTNO-員工所在部門編號。員工表如下圖所示:SELECTsal*12+nvl(comm,0)*12AS"年薪",ename,commFROMSCOTT.EMP;6、如何查找SCOTT模式下EMP表中1982年5月1日后入職的員工?說明:表中ENAME表達(dá)員工姓名,HIREDATE-入職時間。SELECTename,hiredateFROMSCOTT.EMPWHEREhiredate>'5-1-1982';或SELECTename,hiredateFROMSCOTT.EMPWHEREhiredate>'1982-5-1';7、SCOTT模式下EMP表中,如何顯示第三個字符為大寫N的所有員工的姓名和工資?SELECTename,salFROMSCOTT.EMPWHEREenamelike'__N%';8、SCOTT模式下EMP表中,如何顯示empno為7844,7839,7566的雇員情況?SELECT*FROMscott.empWHEREempnoin(7844,7839,7566);9、在SCOTT模式下的EMP表中,“員工上級”的字段為MGR,如何顯示沒有上級的雇員的情況?SELECT*FROMscott.empWHEREmgrisnull;10、查詢工資高于500或者是崗位為MANAGER的雇員,同時還要滿足他們的姓名首字母為大寫的J?SELECT*FROMscott.empWHERE(sal>500orjob='MANAGER')andenameLIKE'J%';11、如何按照工資的從低到高的順序顯示雇員的信息??SELECT*FROMscott.empORDERbysal;12、按照部門號升序而雇員的工資降序排列SELECT*FROMscott.empORDERbydeptno,salDESC;13、如何顯示所有員工中最高工資和最低工資?selectmax(sal),min(sal)fromscott.emp;14、顯示所有員工中最高工資,最高工資那個人是誰?selectename,salfromscott.empwheresal=(selectmax(sal)fromscott.emp);15、如何顯示所有員工的平均工資和工資總和?selectavg(sal),sum(sal)fromscott.emp;16、如何計算總共有多少員工?以下選項哪個最為準(zhǔn)確selectcount(empno)fromscott.emp;17、查詢最高工資員工的名字,工作崗位和工資selectename,job,salfromscott.empwheresal=(selectmax(sal)fromscott.emp);18、顯示工資高于平均工資的員工信息select*fromscott.empwheresal>(selectavg(sal)fromscott.emp);19、如何顯示每個部門的平均工資和最高工資?selectavg(sal),max(sal),deptnofromscott.empgroupbydeptno;20、顯示每個部門的每種崗位的平均工資和最低工資?selectavg(sal),min(sal),job,deptnofromscott.empgroupbydeptno,job;21、顯示平均工資低于2023的部門號和它的平均工資?SELECTAVG(sal),deptnoFROMscott.empGROUPbydeptnohavingAVG(sal)<2023;二、多表查詢22、顯示雇員名,雇員工資及所在部門的名字SELECTe.ename,e.sal,d.dnameFROMscott.empe,scott.deptdWHEREe.deptno=d.deptno;23、顯示部門號為10的部門名、員工名和工資?SELECTd.dname,e.ename,e.salFROMscott.empe,scott.deptdWHEREe.deptno=d.deptnoande.deptno=10;24、顯示各個員工的姓名,工資及工資的級別?selectename,sal,gradefromscott.emp,scott.salgradewheresalbetweenlosalandhisal;25、顯示雇員名,雇員工資及所在部門的名字,并按部門排序?SELECTe.ename,e.sal,d.dnameFROMscott.empe,scott.deptdWHEREe.deptno=d.deptnoORDERbye.deptno;26、顯示某個員工的上級領(lǐng)導(dǎo)的姓名?【注釋:該題屬于自連接查詢】SELECTworker.enameas"員工姓名",boss.enameas"上級領(lǐng)導(dǎo)姓名"FROMscott.empworker,scott.empbossWHEREworker.mgr=boss.empnoANDworker.ename='FORD';三、子查詢27、如何查詢和部門10的工作相同的雇員的名字、崗位、工資、部門號?SELECT*FROMempWHEREjobIN(SELECTDISTINCTjobFROMempWHEREdeptno=10);28、如何顯示工資比部門30的所有員工的工資高的員工的姓名、工資和部門號?方法一:selectename,sal,deptnofromscott.empwheresal>all(selectsalfromscott.empwheredeptno=30);方法二:Selectename,sal,deptnofromscott.empwheresal>(selectmax(sal)fromscott.empwheredeptno=30);29、如何顯示工資比部門30的任意一個員工的工資高的員工的姓名、工資和部門號?方法一:selectename,sal,deptnofromscott.empwheresal>any(selectsalfromscott.empwheredeptno=30);方法二:Selectename,sal,deptnofromscott.empwheresal>(selectmin(sal)fromscott.empwheredeptno=30);30、如何查詢與SMITH的部門和崗位完全相同的所有雇員??SELECT*FROMscott.empWHERE(deptno,job)=(SELECTdeptno,jobFROMscott.empWHEREename='SMITH');31、如何顯示高于自己部門平均工資的員工的信息??方法一:selecte1.*,e2.myavgfromscott.empe1,(selectavg(sal)myavg,deptnofromscott.empgroupbydeptno)e2wheree1.deptno=e2.deptnoande1.sal>e2.myavg;方法二:selecte1.*fromscott.empe1wheree1.sal>(selectavg(sal)fromscott.empwheredeptno=e1.deptno);32、查找每個部門工資最高的人的具體資料?select*fromscott.empewheresal=(selectmax(sal)fromscott.empwheredeptno=e.deptno);33、用查詢結(jié)果創(chuàng)建新表(這個命令是一種快捷的建表方法)creat(yī)etablemytable(id,name,sal,job,deptno)asselectempno,ename,sal,job,deptnofromscott.emp;34、自我復(fù)制數(shù)據(jù)(蠕蟲復(fù)制)有時,為了對某個sql語句進(jìn)行效率測試,我們需要海量數(shù)據(jù)時,可以使用此法為表創(chuàng)建海量數(shù)據(jù)。insertintomytable(id,name,sal,job,deptno)selectempno,ename,sal,job,deptnofromscott.emp;大家思考:如下的語句在執(zhí)行以后,會產(chǎn)生什么結(jié)果?insertintopublic.mytable(id,name,sal,job,deptno)select*frompublic.mytable;四、分頁查詢35、查詢5-10條記錄(分頁查詢)select*from(selecta1.*,rownumrnfrom(select*fromscott.emp)a1whererownum<=10)wherern>=5;實驗(六):權(quán)限授予與權(quán)限傳播任務(wù)1:授權(quán)與回收【例1】授權(quán)。在KingbaseES中建立多個用戶,給他們賦予不同的權(quán)限,然后查看是否真正擁有被授予的權(quán)限了。1)建立用戶U1、U2、U3、U4、U5、U6、U7。密碼均為123456CREATEUSERU1WITHPASSWORD'123456';2)在SYSTEM(即DBA)與七個用戶之間進(jìn)行授權(quán)。[例1-1]把查詢Student表的權(quán)限授給用戶U1。由于當(dāng)前用戶即為SYSTEM,所以直接寫授權(quán)語句即可。GRANTSELECTO(shè)NTABLEStudentTOU1;[例1-2]把對Student表和Course表的所有操作權(quán)限授予用戶U2和U3。GRANTALLPRIVILEGESONTABLEStudent,CourseTOU2,U3;[例1-3]把對表SC的查詢權(quán)限授予所有用戶。GRANTSELECTONTABLESCTO(shè)PUBLIC;[例1-4]把查詢Student表和修改學(xué)生學(xué)號的權(quán)限授給用戶U4。GRANTUPDATE(Sno),SELECTO(shè)NStudentTOU4;[例1-5]把對表SC的INSERT權(quán)限授予U5,并允許U5將此權(quán)限再授予其他用戶。GRANTINSERTONSCTO(shè)U5WITHGRANTO(shè)PTION;[例1-6]用戶U5將對表SC的INSERT權(quán)限授予U6,并允許將權(quán)限轉(zhuǎn)授給其他用戶。一方面應(yīng)當(dāng)以U5的身份重新登錄數(shù)據(jù)庫,然后再進(jìn)行授權(quán)。GRANTINSERTONSCTO(shè)U6WITHGRANTOPTION;[例1-7]用戶U6將對表SC的INSERT權(quán)限授予U7。一方面應(yīng)當(dāng)以U6的身份重新登錄數(shù)據(jù)庫,然后再進(jìn)行授權(quán)。GRANTINSERTONSCTOU7;3)在授權(quán)之后驗證用戶是否擁有了相應(yīng)的權(quán)限。在執(zhí)行完上面七個語句之后,我們可以分別以不同用戶的身份登錄數(shù)據(jù)庫,進(jìn)行相關(guān)操作,檢查系統(tǒng)是否許可。例如:[例1-8]U4更新Student表的學(xué)生學(xué)號。UPDATEStudentSETSNO=‘95101’WHERESNO=‘95001’;顯示更新1條記錄,即U4用戶擁有了對Student表Sno的更新權(quán)限。[例1-9]U7向SC表中插入一條數(shù)據(jù):(95020,20,88)。INSERTINTOSCVALUES(‘95020’,’20’,88);顯示插入1條記錄,即用戶U7擁有了對SC表的插入權(quán)限?!纠病炕厥諜?quán)限。將【例1】授予的權(quán)限部分收回,檢查回收后,該用戶是否真正喪失了對數(shù)據(jù)的相應(yīng)權(quán)限。1)回收權(quán)限。[例2-1]收回用戶U4修改學(xué)生學(xué)號的權(quán)限。當(dāng)前用戶為SYSTEM,直接執(zhí)行下列語句:REVOKEUPDATE(SNO)ONTABLEStudentFROMU4;[例2-2]收回所有用戶對表SC的查詢權(quán)限。REVOKESELECTONTABLESCFROMPUBLIC;[例2-3]收回用戶U5對SC表的INSERT權(quán)限。將權(quán)限INSERT授予給用戶U5時,允許該用戶將權(quán)限再授予給其他用戶;之后,用戶U5將INSERT權(quán)限轉(zhuǎn)授給了U6,U6又將權(quán)限轉(zhuǎn)授給U7。因此,將用戶U5的INSERT權(quán)限收回的時候必須級聯(lián)收回,不然系統(tǒng)將拒絕執(zhí)行該命令:REVOKEINSERTONTABLESCFROMU5CASCADE;執(zhí)行該命令之后,U6從U5處獲得的權(quán)限也將被收回,U7從U6處獲得的權(quán)限也將同時被收回。2)在回收權(quán)限之后驗證用戶是否真正喪失了該權(quán)限。[例2-4]用戶U3查詢表SC。一方面用戶U3重新登錄數(shù)據(jù)庫TEST。執(zhí)行命令:SELECT*FROMSC;執(zhí)行失敗,該用戶不擁有此權(quán)限。證實用戶U3喪失了對表SC查詢的權(quán)限。[例2-5]用戶U6向表SC中插入一條記錄(‘95035’,’3’,92)。一方面用戶U6重新登錄數(shù)據(jù)庫TEST。執(zhí)行命令:INSERTINTO(shè)SCVALUES(‘95035’,’3’,92);執(zhí)行失敗,該用戶不擁有此權(quán)限。證實用戶U6喪失了從用戶U5處獲得的對表SC插入的權(quán)限。實驗(七):用戶權(quán)限管理案例任務(wù)1:用戶對表的操作權(quán)限。創(chuàng)建一個用戶USER_SELECT_NO。

CREATEUSERUSER_SELECT_NOWITHPASSWORD'123456';創(chuàng)建一個表,表名字TAB_ADDRESS1,并向表中插入一條數(shù)據(jù)。

CREATETABLETAB_ADDRESS1

(

ID_NOVARCHAR(100)NOTNULL,

ADDRESSVARCHAR(200)NOTNULL

);

INSERTINTO(shè)TAB_ADDRESS1(ID_NO,ADDRESS)VALUES('1000001','北京市海淀區(qū)上地南路8號');把表TAB_ADDRESS1的查詢權(quán)限授予給用戶USER_SELECT_NO。

GRANTSELECTONTABLETAB_ADDRESS1TOUSER_SELECT_NO;

切換當(dāng)前會話用戶USER_SELECT_NO,對表TAB_ADDRESS1進(jìn)行查詢。

SETSESSIONAUTHORIZATIONUSER_SELECT_NO;

SELECT*FROMTAB_ADDRESS1;

ID_NO|ADDRESS

--+------

1000001|北京市海淀區(qū)上地南路8號

(1row)任務(wù)2:用戶權(quán)限的級聯(lián)回收。

現(xiàn)有用戶A,B,C,有權(quán)限P,P具有對表TAB_ADDRESS1的查詢權(quán)限。如下圖所示:把表TAB_ADDRESS1的查詢權(quán)限授予給用戶A,并且使用戶A具有管理權(quán)限。

GRANTSELECTONTABLETAB_ADDRESS1TO(shè)AWITHGRANTOPTION;

切換到當(dāng)前會話用戶A,把表TAB_ADDRESS1的查詢權(quán)限授予給用戶B,并且使用戶B具有管理權(quán)限。

SETSESSIONAUTHORIZATIONA;--切換到用戶A

GRANTSELECTONTABLETAB_ADDRESS1TOBWITHGRANTO(shè)PTION;

切換到當(dāng)前會話用戶B,把表TAB_ADDRESS1的查詢權(quán)限授予給用戶C。

SETSESSIONAUTHORIZATIONB;--切換到用戶B

GRANTSELECTONTABLETAB_ADDRESS1TOC;

分別使用戶A,B,C對表TAB_ADDRESS1進(jìn)行查詢。

SETSESSIONAUTHORIZATIONA;--切換到用戶A

SELECT*FROMTAB_ADDRESS1;

ID_NO|ADDRESS

-----+-------------

1000001|北京市海淀區(qū)上地南路8號

(1row)

SETSESSIONAUTHORIZATIONB;--切換到用戶B

SELECT*FROMTAB_ADDRESS1;

ID_NO|ADDRESS

-----+---------

1000001|北京市海淀區(qū)上地南路8號

(1row)

SETSESSIONAUTHORIZATIONC;--切換到用戶C

SELECT*FROMTAB_ADDRESS1;

ID_NO|ADDRESS

+------------

1000001|北京市海淀區(qū)上地南路8號

(1row)切換到當(dāng)前會話用戶A,回收用戶B對表TAB_ADDRESS1的查詢權(quán)限。

SETSESSIONAUTHORIZATIONA;--切換到用戶A

REVOKESELECTONTABLETAB_ADDRESS1FROMB;

ERROR:存在依賴關(guān)系

HINT:使用CASCADE撤消它們

做級聯(lián)回收的時候應(yīng)當(dāng)使用CASCADE,否則回收失敗。

REVOKESELECTONTABLETAB_ADDRESS1FROMBCASCADE;

用戶B,C的權(quán)限回收后,分別使用用戶A,B,C對表TAB_ADDRESS1進(jìn)行查詢。用戶B,C是沒有對表TAB_ADDRESS1查詢權(quán)限的。

SETSESSIONAUTHORIZATIONA;--切換到用戶A

SELECT*FROMTAB_ADDRESS1;

ID_NO|ADDRESS

-----+--------------

1000001|北京市海淀區(qū)上地南路8號

(1row)

SETSESSIONAUTHORIZATIONB;--切換到用戶B

SELECT*FROMTAB_ADDRESS1;

ERROR:不允許訪問關(guān)系TAB_ADDRESS1

SETSESS

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論