MES開發(fā)與應(yīng)用 課件 1.2 系統(tǒng)開發(fā)工具介紹-開發(fā)環(huán)境和UML建模_第1頁
MES開發(fā)與應(yīng)用 課件 1.2 系統(tǒng)開發(fā)工具介紹-開發(fā)環(huán)境和UML建模_第2頁
MES開發(fā)與應(yīng)用 課件 1.2 系統(tǒng)開發(fā)工具介紹-開發(fā)環(huán)境和UML建模_第3頁
MES開發(fā)與應(yīng)用 課件 1.2 系統(tǒng)開發(fā)工具介紹-開發(fā)環(huán)境和UML建模_第4頁
MES開發(fā)與應(yīng)用 課件 1.2 系統(tǒng)開發(fā)工具介紹-開發(fā)環(huán)境和UML建模_第5頁
已閱讀5頁,還剩88頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1.2系統(tǒng)開發(fā)工具介紹深圳市信息職業(yè)技術(shù)學(xué)院——開發(fā)環(huán)境和UML建模開發(fā)工具和操作系統(tǒng)環(huán)境介紹01目

錄NuGet包本地配置及升級(jí)說明02項(xiàng)目運(yùn)行配置說明03UML建模04代碼段的使用05知識(shí)回顧數(shù)據(jù)庫的基礎(chǔ)語法;數(shù)據(jù)庫的基礎(chǔ)操作;學(xué)習(xí)目標(biāo)通過本節(jié)學(xué)習(xí)可以:掌握工業(yè)軟件的項(xiàng)目運(yùn)行配置;掌握工業(yè)軟件UML建模工具的使用;掌握Nuget包本地是如何配置的;掌握代碼段的使用;了解工業(yè)軟件開發(fā)環(huán)境的操作系統(tǒng);了解工業(yè)軟件的開發(fā)用到的工具有哪些。01開發(fā)工具和操作系統(tǒng)環(huán)境介紹思考題工業(yè)管理軟件開發(fā)的操作系統(tǒng)環(huán)境是?系統(tǒng)開發(fā)工具使用的是?操作系統(tǒng)環(huán)境介紹工業(yè)軟件開發(fā)操作系統(tǒng):只能在Windows操作下進(jìn)行開發(fā);操作系統(tǒng)內(nèi)存:16G或以上;操作系統(tǒng)版本:Windows10或以上版本(Windows11家庭版除外);操作系統(tǒng)說明:1)windows11家庭版操作系統(tǒng)很多開發(fā)工具的安裝都會(huì)受到影響;如SQLServer數(shù)據(jù)庫、ODAC安裝失敗,創(chuàng)建不了ftp用戶名密碼等;2)檢查電腦操作系統(tǒng),如果操作系統(tǒng)為Windows11家庭版,可以升級(jí)到windows11專業(yè)版或者重裝系統(tǒng)。開發(fā)工具介紹工業(yè)管理軟件開發(fā)VS環(huán)境數(shù)據(jù)庫MQ代碼段Redis建模工具系統(tǒng)開發(fā)工具:VisualStudio2019或以上,VS2019以下不支持.netcore,工軟BS開發(fā)使用的是.netcore框架開發(fā)的;數(shù)據(jù)庫:支持oracle(11g或以上)、sqlserver(2012以上版本)和mysql(5.7或以上),工業(yè)軟件中使用數(shù)據(jù)庫較多的是Oracle,其次是SQLServer,MySql使用相對(duì)較少;Redis:session緩存信息的處理,工業(yè)管理軟件中項(xiàng)目啟動(dòng)讀取配置、數(shù)據(jù)庫表映射、元數(shù)據(jù)、實(shí)體規(guī)則、模塊定義等這些的處理都是Redis實(shí)現(xiàn)的;MQ:消息隊(duì)列,一部分的系統(tǒng)間的異步傳輸實(shí)現(xiàn)使用的是MQ,大部分系統(tǒng)的傳輸使用的是接口實(shí)現(xiàn)的;建模工具:ModelFirst,UML實(shí)體建模,根據(jù)建模生成實(shí)體和界面類的代碼是通過該工具實(shí)現(xiàn)的;代碼段:用于在開發(fā)過程中快速生成代碼片段,生成的代碼片段包括實(shí)體屬性和擴(kuò)展屬性,提升開發(fā)效率。02NuGet包本地配置及升級(jí)說明思考題工業(yè)管理軟件平臺(tái)程序集是通過什么進(jìn)行管理的?Nuget包本地配置及升級(jí)說明NuGet包升級(jí)配置平臺(tái)程序集是通過NuGet包進(jìn)行管理的,系統(tǒng)開發(fā)依賴于平臺(tái)程序集,在第一次獲取項(xiàng)目程序進(jìn)行開發(fā)之前需要將平臺(tái)程序集的NuGet包進(jìn)行本地項(xiàng)目配置及升級(jí)操作。操作步驟如下:1、解決方案項(xiàng)目用VS打開-->【工具】-->【NuGet包管理器】-->【程序包管理器設(shè)置】Nuget包本地配置及升級(jí)說明NuGet包升級(jí)配置2、進(jìn)入到選項(xiàng)-->【程序包源】Nuget包本地配置及升級(jí)說明NuGet包升級(jí)配置3、升級(jí)NuGet包03項(xiàng)目運(yùn)行配置思考題工業(yè)管理軟件開發(fā)環(huán)境要確保哪幾個(gè)工程能夠運(yùn)行成功才表示項(xiàng)目環(huán)境是OK的?項(xiàng)目運(yùn)行配置項(xiàng)目運(yùn)行配置工業(yè)管理軟件的項(xiàng)目程序調(diào)試工程包括調(diào)度服務(wù)SIE.ScheduleServer、應(yīng)用服務(wù)SIE.WebApiHost、Web服務(wù)WebClient、桌面端應(yīng)用程序WpfClient;在開發(fā)階段調(diào)試用到的工程為SIE.WebApiHost、WebClient、WpfClient,所以在項(xiàng)目開發(fā)前要確保這三個(gè)工程能夠正常運(yùn)行不報(bào)錯(cuò),為后續(xù)代碼開發(fā)出現(xiàn)異常減少排查時(shí)間和方便問題跟蹤定位。SIE.WEBAPIHOST項(xiàng)目運(yùn)行配置ApiHost項(xiàng)目運(yùn)行配置將SIE.WebApiHost項(xiàng)目設(shè)置為啟動(dòng)項(xiàng)目(注意啟動(dòng)類型要以WebAPIHost啟動(dòng)

),檢查SIE.WebApiHost的配置文件appsettings.json是否符合要求,需要檢查的配置包括:數(shù)據(jù)庫的配置、

Redis的配置(不配置使用內(nèi)存緩存)、MQ的配置(未使用消息隊(duì)列可以不配置)、日志的配置、上傳方式的配置。SIE.WEBAPIHOST項(xiàng)目運(yùn)行配置ApiHost項(xiàng)目運(yùn)行配置配置無問題后,生成解決方案不報(bào)錯(cuò),運(yùn)行項(xiàng)目能夠啟動(dòng)成功則表示SIE.WebApiHost環(huán)境OK。webclient項(xiàng)目運(yùn)行配置WebClient項(xiàng)目運(yùn)行配置將WebClient項(xiàng)目設(shè)置為啟動(dòng)項(xiàng)目,檢查WebClient的配置文件appsettings.Development.json是否符合要求,需要檢查的配置包括:數(shù)據(jù)庫的配置、

Redis的配置(不配置使用內(nèi)存緩存)、MQ的配置(未使用消息隊(duì)列可以不配置)、日志的配置、上傳方式的配置。webclient項(xiàng)目運(yùn)行配置WebClient項(xiàng)目運(yùn)行配置生成解決方案不報(bào)錯(cuò),運(yùn)行項(xiàng)目,能跳轉(zhuǎn)到登錄界面,輸入用戶名和密碼能登錄成功,說明WebClient開發(fā)環(huán)境OK。Wpfclient項(xiàng)目運(yùn)行配置WpfClient項(xiàng)目運(yùn)行配置將WpfClient項(xiàng)目設(shè)置為啟動(dòng)項(xiàng)目,檢查WpfClient的配置文件appsettings.json是否符合要求,需要檢查的配置包括:數(shù)據(jù)庫的配置、MQ的配置(未使用消息隊(duì)列可以不配置)、日志的配置、上傳方式的配置。Wpfclient項(xiàng)目運(yùn)行配置WpfClient項(xiàng)目運(yùn)行配置生成解決方案不報(bào)錯(cuò),運(yùn)行項(xiàng)目,能跳轉(zhuǎn)到登錄界面,輸入用戶名和密碼能登錄成功,說明WpfClient開發(fā)環(huán)境OK。04UML建模思考題工業(yè)管理軟件中UML建模是通過什么工具進(jìn)行建模的?UML建模UML建模是軟件工程中一種重要的工具和方法,它提供了一種統(tǒng)一的語言和符號(hào)體系,用于描述和設(shè)計(jì)軟件系統(tǒng)的結(jié)構(gòu)和行為,幫助開發(fā)人員更好地理解和溝通系統(tǒng)需求和設(shè)計(jì);工業(yè)軟件開發(fā)中UML建模是通過ModelFirst進(jìn)行創(chuàng)建的,創(chuàng)建完成后使用模板生成代碼拷貝到解決方案項(xiàng)目中;ModelFirst建模主要是建實(shí)體和實(shí)體之間的關(guān)系,實(shí)體類統(tǒng)一繼承基類DataEntity,關(guān)系包含一般關(guān)系和組合關(guān)系。UML建模工具的使用UML建模工具的使用1、解壓ModelFirst工具到對(duì)應(yīng)文件夾下(免安裝),使用EAP.ModelFirst.exe打開,可以右鍵將這個(gè)exe文件發(fā)送到桌面快捷方式,方便下次使用。UML建模工具的使用UML建模工具的使用2、創(chuàng)建工程,打開ModelFirst,在右邊項(xiàng)目總管中,右鍵新建工程,雙擊創(chuàng)建類圖。注意:使用modelfirst建模時(shí),右邊preject工程的層級(jí)最好跟項(xiàng)目的層級(jí)保持一致,這樣生成的實(shí)體類拷貝到解決方案項(xiàng)目中就不用一個(gè)個(gè)去修改命名空間,也可以防止改漏的命名空間而引發(fā)的異常問題。UML建模工具的使用UML建模工具的使用3、創(chuàng)建實(shí)體類,如下圖,可以在左邊工具箱中把類型中的類或者枚舉拖到中間創(chuàng)建,也可以右鍵新建-類。說明:使用ModelFirst建立模型,我們只使用到了類和枚舉,接口和控制器等不要在UML建模中體現(xiàn)。UML建模工具的使用UML建模工具的使用4、創(chuàng)建屬性。說明:屬性名不能命名為Id,因?yàn)榭蚣鼙淼闹麈I設(shè)置的為Id,這里的屬性只建業(yè)務(wù)相關(guān)的屬性,框架級(jí)別通用的屬性框架有統(tǒng)一處理。UML建模工具的使用UML建模工具的使用5、創(chuàng)建關(guān)系。說明:這里的關(guān)系,常用關(guān)系為關(guān)聯(lián)和組合關(guān)系;聚會(huì)關(guān)系沒有在關(guān)系中體現(xiàn),通過中間表實(shí)現(xiàn)的。UML建模工具的使用UML建模工具的使用6、組合關(guān)系說明:需要手動(dòng)將箭頭去掉,不去掉是單向關(guān)系。UML建模工具的使用UML建模工具的使用7、生成代碼,BS的功能模型選擇2018下的Entity和WebViewConfig。05代碼段的使用思考題工業(yè)管理軟件中視圖屬性的代碼片段引入的快捷鍵是?普通屬性的代碼片段引入的快捷鍵是?代碼段的作用1、SMOM代碼段引入的目的是為了提升開發(fā)效率,將一段代碼行提取出來,可以多次重復(fù)使用。2、SMOM引入的代碼段包括屬性和擴(kuò)展屬性,與ModelFrist實(shí)體建模的屬性類似。3、代碼段和ModelFrist是兩種不同的實(shí)現(xiàn)方式,實(shí)現(xiàn)效果是一樣的,對(duì)于新功能我們可以通過ModelFrist進(jìn)行實(shí)體建模,項(xiàng)目原有功能上做二開增加屬性可以通過代碼段添加,效率會(huì)更高。4、實(shí)體和實(shí)體之間的屬性一致,盡量不要使用復(fù)制操作,如果復(fù)制之后關(guān)聯(lián)的實(shí)體名沒有修改,功能會(huì)報(bào)錯(cuò)排查問題也比較麻煩;這種方式的操作盡量通過代碼段實(shí)現(xiàn)。代碼段的導(dǎo)入代碼段的導(dǎo)入1、將代碼段解壓到對(duì)應(yīng)文件夾下,點(diǎn)擊VS中的“工具-代碼片段管理器”。代碼段的導(dǎo)入代碼段的導(dǎo)入2、在彈出的“代碼片段管理器”對(duì)話框中,語言選擇“CSharp”。代碼段的導(dǎo)入代碼段的導(dǎo)入3、點(diǎn)擊“添加”或者“導(dǎo)入”按鈕,這里以“添加”為例。代碼段的導(dǎo)入代碼段的導(dǎo)入4、如下圖代碼片段能夠查看到,表示添加或者導(dǎo)入成功,點(diǎn)擊確定,即操作完成。注意:代碼段不要重復(fù)添加,重新添加進(jìn)來后使用代碼段會(huì)顯示多個(gè),需要去選擇操作。代碼段的使用代碼段的使用1、代碼段導(dǎo)入成功后,在實(shí)體中輸入“pfp”,代碼片段能否顯示出來,如果可以說明OK,如果代碼片段不能出來重啟VS再試試。代碼段的使用代碼段的使用2、輸入pfp(視圖屬性代碼段為pfv),兩次tab鍵導(dǎo)入,修改備注和屬性名(修改備注和屬性名時(shí)鼠標(biāo)定位到對(duì)應(yīng)位置,不要來回切,會(huì)把關(guān)聯(lián)的內(nèi)容一起修改)。代碼段注意事項(xiàng)代碼段注意事項(xiàng)1、擴(kuò)展列表屬性使用代碼段生成出來的注冊(cè)擴(kuò)展列表屬性(RegisterListExtension)是錯(cuò)的,需手動(dòng)調(diào)整為RegisterExtensionList。代碼段注意事項(xiàng)代碼段注意事項(xiàng)2、擴(kuò)展屬性默認(rèn)關(guān)聯(lián)的實(shí)體為Entity,Entity是我們實(shí)體的基類,一定要修改,不修改如果該屬性要映射為數(shù)據(jù)庫字段,會(huì)導(dǎo)致該數(shù)據(jù)庫連接名下所有的表都映射該字段。練習(xí)1、工業(yè)管理軟件開發(fā)中調(diào)試工程包括()A:SIE.ScheduleServer; B:SIE.WebApiHost;C:WebClient; D:WpfClient。2、工業(yè)管理軟件中,網(wǎng)頁端功能的項(xiàng)目運(yùn)行啟動(dòng)使用的調(diào)試工程是()A:SIE.ScheduleServer; B:SIE.WebApiHost;C:WebClient; D:WpfClient。3、工業(yè)管理軟件開發(fā)中通過代碼段加入引用屬性使用的快捷鍵是pfv。ABCDC錯(cuò)本章小結(jié)SMOM開發(fā)工具介紹建模工具及代碼段的使用結(jié)束介紹了工業(yè)軟件UML建模的工具,詳細(xì)講解了建模工具的使用,必須掌握;介紹了代碼段的導(dǎo)入及使用,代碼段的使用在開發(fā)過程中使用較多,必須掌握。開發(fā)環(huán)境及項(xiàng)目運(yùn)行配置介紹了工業(yè)軟件在什么操作系統(tǒng)下進(jìn)行開發(fā);介紹了工業(yè)軟件涉及到的開發(fā)工具;詳細(xì)講解了Nuget包本地配置及升級(jí),需要掌握;詳細(xì)講解了項(xiàng)目運(yùn)行配置,這部分內(nèi)容較重要需要掌握。THANKYOU深圳市信息職業(yè)技術(shù)學(xué)院——基礎(chǔ)語法、基礎(chǔ)操作4.2.3數(shù)據(jù)庫常用介紹查詢數(shù)據(jù)更新數(shù)據(jù)使用視圖管理事務(wù)處理了解SQL使用存儲(chǔ)過程知識(shí)回顧學(xué)習(xí)目標(biāo)通過本節(jié)學(xué)習(xí)可以:重點(diǎn)學(xué)習(xí)如何查詢數(shù)據(jù)重點(diǎn)學(xué)習(xí)如何更新數(shù)據(jù)掌握視圖的使用掌握存儲(chǔ)過程的使用了解如何管理事務(wù)處理01了解SQL了解SQLSQL(發(fā)音為字母S-Q-L或sequel)是結(jié)構(gòu)化查詢語言(StructuredQueryLanguage)的縮寫。SQL是一種專門用來與數(shù)據(jù)庫溝通的語言。SQL有如下的優(yōu)點(diǎn):SQL不是某個(gè)特定數(shù)據(jù)庫供應(yīng)商專有的語言。幾乎所有重要的DBMS都支持SQL,所以學(xué)習(xí)此語言使你幾乎能與所有數(shù)據(jù)庫打交道。SQL簡(jiǎn)單易學(xué)。它的語句全都是由有很強(qiáng)描述性的英語單詞組成,而且這些單詞的數(shù)目不多。SQL雖然看上去很簡(jiǎn)單,但實(shí)際上是一種強(qiáng)有力的語言,靈活使用其語言元素,可以進(jìn)行非常復(fù)雜和高級(jí)的數(shù)據(jù)庫操作。了解SQL使用PLSQLDeveloperPLSQLDeveloper工具是Oracle常用的數(shù)據(jù)庫管理工具。在安裝PLSQLDeveloper之前,要先安裝好Oracle客戶端。Oracle客戶端的安裝很簡(jiǎn)單,下載解壓后放到某個(gè)目錄下即可。安裝Oracle客戶端使用PLSQLDeveloperPLSQLDeveloper的安裝很簡(jiǎn)單,按照提示安裝即可。安裝完后,打開PLSQLDeveloper,打開配置選項(xiàng)窗口,按下面說明進(jìn)行配置,配置完后關(guān)閉并重新打開PLSQLDeveloper。安裝和配置PLSQLDeveloper指定Oracle客戶端的目錄指定oci.dll的目錄,在Oracle客戶端目錄下使用PLSQLDeveloper連接數(shù)據(jù)庫需要知道數(shù)據(jù)庫的IP、端口、服務(wù)名以及用戶名和密碼。連接數(shù)據(jù)庫用戶名密碼ip:port/service_name02查詢數(shù)據(jù)查詢數(shù)據(jù)_檢索數(shù)據(jù)SELECT

<列名>

FROM

<表名>

WHERE

<條件>;該SQL包含了SELECT、FROM以及WHERE三個(gè)子句。SELECT:子句用于指定要查詢的列名稱。FROM:子句指定查詢的表名稱。WHERE:子句指定過濾數(shù)據(jù)的條件。一般來說,以分號(hào)作為單個(gè)SQL語句的結(jié)尾,但不是強(qiáng)制的。如果有多個(gè)SQL語句,可以使用分號(hào)區(qū)分不同的SQL,所以加上分號(hào)是一個(gè)好習(xí)慣?;静樵冋Z法查詢數(shù)據(jù)_檢索數(shù)據(jù)SELECTdnameFROMdept;把要查詢的列放在SELECT子句后面,非常簡(jiǎn)單。檢索單個(gè)列查詢數(shù)據(jù)_檢索數(shù)據(jù)SELECTdeptno,dname,locFROMdept;指定檢索多個(gè)列,列與列之間使用逗號(hào)分隔開。如果檢索所有列,可以顯示指定所有字段,也可以只指定*,*表示所有字段,如下所示:SELECT*FROMdept;檢索多個(gè)列查詢數(shù)據(jù)_檢索數(shù)據(jù)SELECTjobFROMemp;如果希望去掉上面重復(fù)的數(shù)據(jù),比如SALESMAN只顯示一個(gè),可以加上DISTINCT關(guān)鍵字去重:SELECTDISTINCTjobFROMemp;去除重復(fù)數(shù)據(jù)查詢數(shù)據(jù)_檢索數(shù)據(jù)SELECTdeptnoASno,dnameASname,locFROMdept;當(dāng)字段命名較長(zhǎng)時(shí),可以使用別名簡(jiǎn)化。如果是表達(dá)式,可以使用別名命名,比如a+bASsalary。當(dāng)從多張表查詢數(shù)據(jù)時(shí),如果有相同的字段,可以使用別名進(jìn)行區(qū)分。指定別名查詢數(shù)據(jù)_排序數(shù)據(jù)SELECT*FROMempORDERBYjob;通過使用ORDERBY子句對(duì)數(shù)據(jù)排序。如果不排序,數(shù)據(jù)一般將以它在底層表中出現(xiàn)的順序顯示,這有可能是數(shù)據(jù)最初添加到表中的順序。排序數(shù)據(jù)查詢數(shù)據(jù)_排序數(shù)據(jù)SELECT*FROMemptORDERBYsal,ename;可以指定按多個(gè)列排序,使用逗號(hào)隔開。首先會(huì)按前面的字段排序,如果值相同則按后面的字段排序。按多個(gè)列排序查詢數(shù)據(jù)_排序數(shù)據(jù)SELECTempno,ename,job,mgr,hiredate,sal,commFROMempORDERBY2,3;SELECT子句先于ORDERBY執(zhí)行,所以在排序時(shí)可以得到字段所在位置然后進(jìn)行排序。按列的位置排序查詢數(shù)據(jù)_排序數(shù)據(jù)SELECTempno,sal,ename,job,mgrFROMempORDERBYsalASC,enameDESC;ASC表示升序,默認(rèn)排序方式,DESC表示降序。如果想在多個(gè)列上進(jìn)行降序排序,必須對(duì)每一列指定DESC關(guān)鍵字。指定排序方向查詢數(shù)據(jù)_過濾數(shù)據(jù)比較運(yùn)算符查詢數(shù)據(jù)_過濾數(shù)據(jù)SELECT*FROMempWHEREjob='MANAGER';要查詢某個(gè)值的數(shù)據(jù),可以使用=運(yùn)算符判斷。匹配過濾一般把字段放左邊,具體值放右邊字符串類型要放到引號(hào)內(nèi),即使這個(gè)字串符是數(shù)值查詢數(shù)據(jù)_過濾數(shù)據(jù)SELECT*FROMempWHEREjob<>'SALESMAN';SELECT*FROMempWHEREjob!='SALESMAN';可以使用<>也可以使用!=,不過有的數(shù)據(jù)庫不支持!=,建議使用<>。不匹配過濾查詢數(shù)據(jù)_過濾數(shù)據(jù)SELECT*FROMempWHEREsal>3000;SELECT*FROMempWHEREsal<1800;SELECT*FROMempWHEREsal>2000ANDsal<3000;SELECT*FROMempWHEREsal>=1250ANDsal<=1600;SELECT*FROMempWHEREsalBETWEEN1250AND1600;范圍過濾..between..and....>=..and..<=..查詢數(shù)據(jù)_過濾數(shù)據(jù)SELECT*FROMempWHEREcomm=NULL;SELECT*FROMempWHEREcommISNULL;SELECT*FROMempWHEREcommISNOTNULL;SELECT*FROMempWHEREcomm<>300;當(dāng)碰到NULL值時(shí),會(huì)被判定為不滿足條件,所以這里不會(huì)查出NULL值的數(shù)據(jù)。需要添加下面的條件才能把NULL的數(shù)據(jù)查出來:SELECT*FROMempWHEREcomm<>300ORcommISNULL;空值過濾這種方式無法查詢?yōu)榭罩档臄?shù)據(jù)針對(duì)空值,需要使用ISNULL或ISNOTNULL不會(huì)把查詢出包含NULL的數(shù)據(jù)查詢數(shù)據(jù)_過濾數(shù)據(jù)SELECT*FROMempWHERENOT(job='SALESMAN’);WHERE子句中的NOT操作符有且只有一個(gè)功能,那就是否定其后所跟的任何條件。這里當(dāng)匹配條件時(shí)返回TRUE,然后NOT取反得到FALSE,這樣匹配條件的數(shù)據(jù)被過濾了,查出的是未匹配的數(shù)據(jù)。NOT運(yùn)算符查詢數(shù)據(jù)_過濾數(shù)據(jù)SELECT*FROMempWHEREjob='SALESMAN'ANDsal>1300;SELECT*FROMempWHEREjob='SALESMAN'ORdeptno=30;AND運(yùn)算符在其兩側(cè)的查詢條件都成立時(shí)整個(gè)查詢條件才成立,其意思相當(dāng)于“并且”。OR運(yùn)算符在其兩側(cè)的查詢條件有一個(gè)成立時(shí)整個(gè)查詢條件都成立,其意思相當(dāng)于“或者”。AND、OR運(yùn)算符需兩側(cè)條件同時(shí)成立僅需其中一個(gè)條件成立查詢數(shù)據(jù)_過濾數(shù)據(jù)SELECT*FROMempWHEREjobIN('CLERK','PRESIDENT’);SELECT*FROMempWHEREjob='CLERK'ORjob='PRESIDENT';取出CLERK和PRESIDENT的所有數(shù)據(jù),功能上與OR是一樣的。當(dāng)值特別多時(shí),相比較OR而言,使用IN書寫會(huì)更簡(jiǎn)潔。IN運(yùn)算符得到的結(jié)果是一樣的查詢數(shù)據(jù)_過濾數(shù)據(jù)SELECT*FROMempWHEREsal+comm=1900;可以拿字段進(jìn)行計(jì)算形成一個(gè)新的字段。既可以在WHERE子句也可以在SELECT子句對(duì)字段進(jìn)行計(jì)算。SELECTsal+comm,t.*FROMemptWHEREsal+comm=1900;計(jì)算字段查詢數(shù)據(jù)_過濾數(shù)據(jù)SELECT*FROMempWHEREename||','||job='ALLEN,SALESMAN';可以使用||把字符串拼接起來形成一個(gè)新的字段,有些數(shù)據(jù)庫使用+拼接。既可以在WHERE子句也可以在SELECT子句對(duì)字段進(jìn)行拼接。SELECTename||','||job,t.*FROMemptWHEREename||','||job='ALLEN,SALESMAN';

拼接字段查詢數(shù)據(jù)_模糊匹配在條件中可以使用通配符%或_進(jìn)行模糊匹配,%表示匹配多個(gè)任意字符,_只能匹配一個(gè)任意字符。SELECT*FROMempWHEREenameLIKE'J%’;查出J開頭的所有數(shù)據(jù),不管J后面有多少個(gè)字符。SELECT*FROMempWHEREenameLIKE'%N';查出以N結(jié)尾的所有數(shù)據(jù),不管N前面有多少個(gè)字符都能匹配出來。SELECT*FROMempWHEREenameLIKE'%AR%';查出只要包含了AR的所有數(shù)據(jù),不管AR前后有多少個(gè)字符。模糊匹配查詢數(shù)據(jù)_聚合數(shù)據(jù)SELECTCOUNT(*),SUM(sal),MIN(mgr),MAX(mgr),AVG(sal)FROMemp;聚合函數(shù)用于對(duì)所有數(shù)據(jù)或分組數(shù)據(jù)進(jìn)行計(jì)算。COUNT統(tǒng)計(jì)行數(shù),SUM匯總,MIN統(tǒng)計(jì)最小值,MAX統(tǒng)計(jì)最大值,AGV計(jì)算平均值;聚合函數(shù)會(huì)忽略NULL值,在使用COUNT的時(shí)候要特別注意,如果指定的是*不會(huì)忽略NULL值,如果指定的是某個(gè)字段,該字段有NULL會(huì)被忽略,意味著所在行不會(huì)被統(tǒng)計(jì)。SELECTCOUNT(*),COUNT(mgr)FROMempt;聚合函數(shù)其中一行的MRG是NULL不會(huì)被統(tǒng)計(jì)查詢數(shù)據(jù)_聚合數(shù)據(jù)可以使用GROUPBY子句對(duì)數(shù)據(jù)進(jìn)行組,GROUPBY后面指定分組字段,會(huì)把字段值相同的視為一組,然后可以基于分組進(jìn)行統(tǒng)計(jì)。如果分組列中包含具有NULL值的行,NULL值將單獨(dú)劃分為一組。SELECTjob,COUNT(*),SUM(sal),AVG(sal)FROMempGROUPBYjob;分組數(shù)據(jù)查詢數(shù)據(jù)_聚合數(shù)據(jù)在分組后,可以使用HAVING子句對(duì)分組統(tǒng)計(jì)進(jìn)一步過濾。HAVING是基于分組計(jì)算過濾的,必須結(jié)合GROUPBY子句一起使用。SELECTjob,COUNT(*),SUM(sal),AVG(sal)FROMempGROUPBYjobHAVINGCOUNT(*)>2;該示例統(tǒng)計(jì)出了每個(gè)分組超過兩行的數(shù)據(jù):過濾分組03更新數(shù)據(jù)更新數(shù)據(jù)_插入數(shù)據(jù)INSERTINTO<表名>(字段1,字段2,…)VALUES(值1,值2,…);INSERTINTOemp(empno,ename,job,mgr,hiredate,sal,comm,deptno)VALUES(7935,'XIAOLI','CLERK',7566,to_date('1985-1-23','yyyy-mm-dd'),1200,NULL,20);在表名旁邊指定字段名稱,在VALUES子句中指定字段對(duì)應(yīng)值。如果對(duì)所有字段賦值,可以不用指定這些字段名稱,只要在VALUES子句指定列值即可。如果僅對(duì)部分字段賦值,那么就必須指定這些字段名稱。對(duì)于設(shè)置為非空的字段,必須要賦值。INSERTINTOemp(empno,ename,job,mgr,hiredate,sal,comm,deptno)SELECT7935,'XIAOLI','CLERK',7566,to_date('1985-1-23','yyyy-mm-dd'),1200,NULL,20FROMdual;可以把查詢語句的數(shù)據(jù)插入到表中,意味著可以通過這種方式把多行的數(shù)據(jù)插入到表中。插入數(shù)據(jù)更新數(shù)據(jù)_修改、刪除數(shù)據(jù)UPDATE<表名>SET字段1=值1,字段2=值2,字段3=值3,…WHERE;UPDATEempSETename='XIAOLI2'WHEREempno=7935;修改滿足條件的數(shù)據(jù)。DELETEFROM<表名>WHERE...;DELETEFROMemp;刪除所有數(shù)據(jù)。DELETEFROMempWHEREempno=7935;刪除滿足條件的數(shù)據(jù)。注意:為了防止誤修改和刪除,在執(zhí)行前要仔細(xì)檢查,有條件的話要先做備份。修改、刪除數(shù)據(jù)04使用視圖更新數(shù)據(jù)_使用視圖視圖并不存放數(shù)據(jù),相當(dāng)于一張?zhí)摂M表,里面包含了一段SQL語句,然后基于這個(gè)視圖查詢數(shù)據(jù)。使用視圖查詢數(shù)據(jù)的好處如下:重用SQL語句。簡(jiǎn)化復(fù)雜的SQL操作。在編寫查詢后,可以方便地重用它而不必知道其基本查詢細(xì)節(jié)。使用表的一部分而不是整個(gè)表。保護(hù)數(shù)據(jù)??梢允谟栌脩粼L問表的特定部分的權(quán)限,而不是整個(gè)表的訪問權(quán)限。更改數(shù)據(jù)格式和表示。視圖可返回與底層表的表示和格式不同的數(shù)據(jù)。了解視圖更新數(shù)據(jù)_使用視圖SELECT*FROMempa,deptbWHEREa.deptno=b.deptno;針對(duì)這兩張兩表聯(lián)結(jié)的查詢,可以將其創(chuàng)建為視圖:CREATEVIEWemp_allASSELECTa.empno,a.ename,a.job,a.mgr,a.hiredate,a.sal,m,a.deptno,b.dnameFROMempa,deptbWHEREa.deptno=b.deptno;通過視圖可以簡(jiǎn)化查詢語句:SELECT*FROMemp_all;創(chuàng)建視圖05使用存儲(chǔ)過程更新數(shù)據(jù)_使用存儲(chǔ)過程存儲(chǔ)過程(StoredProcedure)是一組為了完成特定功能的SQL語句集,它存儲(chǔ)在數(shù)據(jù)庫中,一次編譯后永久有效,用戶通過指定存儲(chǔ)過程的名字并給出參數(shù)(如果該存儲(chǔ)過程帶有參數(shù))來執(zhí)行它。使用存儲(chǔ)過程的原因:通過把處理封裝在一個(gè)易用的單元

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論