版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
實(shí)訓(xùn)1 PHP開發(fā)平臺(tái)搭建P1.1.1PHP環(huán)境1.操作系統(tǒng)準(zhǔn)備PHP80打開indows(indowsregedit,HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTPStart的項(xiàng)(EG_DOD類型,將其值改為0,如圖1所示。圖1修改注冊表Start項(xiàng)的值StartHTTPSYSTEM2所示。ApachePHP了。圖2設(shè)置SYSTEM的權(quán)限2.安裝Apache服務(wù)器(1)獲取Apache軟件包Apache是開源軟件,可以免費(fèi)獲得。訪問Apache官網(wǎng)下載頁/downlodo.cgi,得到安裝包文件名為httpd-2.4.54-o111s-x64-vs16.zip。(2)定義服務(wù)器根目錄將安裝包解壓至C:\ProgramFiles\Php\Apache24目錄下,進(jìn)入其下的\conf子目錄,找到Apache的配置文件httpd.conf,用indows記事本打開,在其中定義服務(wù)器根目錄(如圖3所示: DefineSRVROOT"C:/ProgramFiles/Php/Apache24" (3)Apache服務(wù)
圖3定義Apache服務(wù)器根目錄Windowsbin子目錄,輸入以下命令安裝Apache服務(wù)(如圖4所示: httpd.exe-kinstall-napache (4)Apache
圖4安裝Apache服務(wù)C:\ProgramFiles\Php\Apache24\binApacheMonitor.exe,在桌面任務(wù)欄右下角出現(xiàn)一圖標(biāo),圖標(biāo)內(nèi)的三角形為綠色時(shí)表示服務(wù)正在運(yùn)行,為紅色時(shí)表示服務(wù)停止。雙擊該圖標(biāo)會(huì)彈出Apache服務(wù)管理界面,如圖5所示,單擊其上的“StartStop”和“estart”按鈕可分別啟動(dòng)、停止和重啟Apache服務(wù)。圖5Apache服務(wù)管理界面至此,Apache安裝完成。讀者可以測試一下看是否成功,在瀏覽器地址欄中輸入http://localhost或后回車。如果安裝成功,會(huì)出現(xiàn)如圖6所示的頁面。3.安裝PHP
圖6Apache安裝成功WindowsPHP/download/PHP7.4php-.4.3-in3-vc5-4.zi(線程安全\ProgramFiles\Php\php7目錄下。(1)指定擴(kuò)展庫目錄C:\ProgramFiles\Php\php7php.ini-productionphp.ini(作為PHP的配置文件使用,用indows記事本打開,在其中指定擴(kuò)展庫目錄(如圖7所示:extension_dir="C:/ProgramFiles/Php/php7"Onwindows:extension_dir="C:/ProgramFiles/Php/php7"Onwindows:extension_dir="C:/ProgramFiles/Php/php7/ext"圖7指定PHP擴(kuò)展庫目錄(2)開放擴(kuò)展庫(.dll)extension=curlextension=gd2extension=mbstringextension=mysqliextension=pdo_mysql接著,在php.ini文件中,設(shè)置開放(去掉行前分號(hào))以下這些基本的擴(kuò)展庫(如圖8所示:extension=curlextension=gd2extension=mbstringextension=mysqliextension=pdo_mysql4.Apache整合PHP
圖8開放PHP基本擴(kuò)展庫C:\ProgramFiles\Php\Apache24\confApache(如圖9所示:LoadModulephp7_module"C:/ProgramFiles/Php/php7/php7apache2_4.dll"AddTypeapplication/x-httpd-php.php.html.htmLoadModulephp7_module"C:/ProgramFiles/Php/php7/php7apache2_4.dll"AddTypeapplication/x-httpd-php.php.html.htmPHPIniDir"C:/ProgramFiles/Php/php7/"圖9Apache2.4整合PHP7配置將php解壓文件中的libssh2.dll放入Apache2.4解壓目錄下的bin文件夾。配置完后重啟Apache服務(wù)管理器,其下方的狀態(tài)欄會(huì)顯示“Apache/2.4.54(Win64)OpenSSL/1.1.1cPHP7.4.3310所示,這說明PHP已經(jīng)安裝成功。P1.1.2Eclipse
圖10Apache已支持PHP1.安裝JDKEclipse需要JRE的支持,而JRE包含在JDK中,故先要安裝JDK。(1)下載JDK可以從Oracle官網(wǎng)下載到最新版本的JDK,網(wǎng)址為https://www.or/java/technologies/downloads,選擇適合自己操作系統(tǒng)的JDK。筆者下載JDK17,得到的文件名為“jdk-17_windows-x6M(Oracle經(jīng)常會(huì)發(fā)布DK的更新版本,到本書出版的時(shí)候,JDK。(2)安裝JDK導(dǎo)航到瀏覽器下載安裝文件的位置,并雙擊執(zhí)行該文件。一旦安裝開始,將會(huì)看到安裝向?qū)?,Windows安裝程C:\ProgramFiles\Java\。要更改安裝目錄的位置,可單擊“更改”按鈕。本書安裝12。圖11JDK安向?qū)?圖12選擇JDK的安裝目錄2.安裝EclipseEclipseeclipse-inst-jre-win64.exe的EclipeIDEEclipeIDEfrPHPDevelopes(即PHP版13程要始終確保聯(lián)網(wǎng)以實(shí)時(shí)下載所需的文件。13PHPEclipse點(diǎn)“INSTALL”開始安裝,如圖14所示。14Eclipse安裝過程中會(huì)出現(xiàn)對(duì)話框確認(rèn)許可協(xié)議條款,如圖15所示,點(diǎn)“AcceptNow”接受。圖15接受全部協(xié)議條款安裝完成點(diǎn)“LAUNCH”啟動(dòng)并設(shè)置工作區(qū),如圖16所示。3.更改工作區(qū)
圖16初次啟動(dòng)EclipseEclipse17所示。圖17Eclipse主界面歡迎頁及開發(fā)環(huán)境ApacheProgramFiesPhpApache24htdocsEclipse的工作區(qū)也更改為與此路徑一致。選擇主菜單“File”→“SwitchWorkspace”→“Other”項(xiàng),彈出對(duì)話框,點(diǎn)“Workspace”欄后的“Browse”按鈕選取新的工作區(qū),如圖18所示,這里設(shè)為“C:\ProgramFiles\Php\Apache24htdocsLaunch”按鈕重啟Eclipe使設(shè)置生效。圖18選取新的工作區(qū)第1章 MySQL安裝MySQLCommunityServer的安裝包可從MySQL官網(wǎng)(/downloads)免費(fèi)下載。在安裝MySQL前,須確保系統(tǒng)中已安裝了最新的Microsoft.NETFramework。1.MySQL的安裝(1)雙擊安裝文件彈出歡迎窗口,然后開始進(jìn)行安裝。在詢問是否需要賦予權(quán)限時(shí),回答“是”。如果系統(tǒng)中已經(jīng)存在MySQL,則系統(tǒng)自動(dòng)列出已經(jīng)安裝的內(nèi)容。(2)彈出“LicenseAgreement”窗口,該窗口列出用戶使用本產(chǎn)品相應(yīng)接受的項(xiàng)目(用戶許可協(xié)議。選中“Iacceptthelicenseterms”復(fù)選框,然后單擊“Next”按鈕。(3)系統(tǒng)進(jìn)入“SelectProductsandFeatures(選擇安裝項(xiàng)目)窗口,如圖1所示。圖1選擇安裝項(xiàng)目vailableProductsProductsFeaturesoeIntalled”中列出SLrs是yLasMySQLConnectorsMySQLDocumentation(初學(xué)者可以僅僅選擇安裝MySQLServers項(xiàng)目,單擊“Next”按鈕進(jìn)入下一個(gè)窗口。(4“Installation2Back”按鈕可返回上一個(gè)窗口重新選擇,單擊“Next完成后相應(yīng)的項(xiàng)目前自動(dòng)打勾。圖2安裝成功窗口至此,MySQL安裝成功(Intallsuccess單擊“Next”按鈕,可進(jìn)入服務(wù)器配置過程。2.MySQL服務(wù)器配置(1)進(jìn)入服務(wù)器配置窗口(ProductConfiguration)后,單擊“Next”按鈕,進(jìn)入“TypeandNetworking”窗口,采用系統(tǒng)默認(rèn)的“StandaloneMySQLServer(標(biāo)準(zhǔn)MySQL服務(wù)器。單擊“Next”按鈕,進(jìn)入“TypeandNetworking-ServerConfigurationType”配置窗口,配置MySQL服務(wù)器運(yùn)行的參數(shù),如圖3所示。圖3配置MySQL服務(wù)器運(yùn)行的參數(shù)其中部分參數(shù)的用法如下。3DevelopmentMachne(開發(fā)者機(jī)器:將MySQL服務(wù)器配置成使用最少的系統(tǒng)資源。ServerMachine(服務(wù)器機(jī)器:將MySQL服務(wù)器配置成使用適當(dāng)比例的系統(tǒng)資源。DedicatedMySQLServerMachine(專用MySQL服務(wù)器機(jī)器:將MySQL服務(wù)器配置成使用所有可用系統(tǒng)資源。作為初學(xué)者,建議選擇“DevelopmentMachine”就可以了?!癈onnectivityMySQL的參數(shù)。默認(rèn)情況下啟用TP/IP網(wǎng)絡(luò);默認(rèn)端口為3306(必須保證該端口號(hào)沒有被占用;打開通過網(wǎng)絡(luò)存取數(shù)據(jù)庫防火墻功能。同時(shí)取消勾選命名管道和共享內(nèi)存功能?!癆dvancedConfigurationShowAdvanced對(duì)于初學(xué)者,使用默認(rèn)配置即可。單擊“Next”按鈕進(jìn)入下一個(gè)窗口。(2)系統(tǒng)顯示“AccountsandRoles”窗口,配置Root賬戶和角色,如圖4所示。圖4配置Root賬戶和角色設(shè)置ootMySQLootPasword(輸入新密碼epeatPaword(確認(rèn)密碼)123456。也可以單擊下方的“AddUser”按鈕另行創(chuàng)建新的用戶,設(shè)置有關(guān)角色。單擊“Next”按鈕進(jìn)入下一個(gè)窗口。(3)系統(tǒng)顯示“WindowsService”窗口,配置Windows程序運(yùn)行參數(shù)。系統(tǒng)默認(rèn)Windows啟動(dòng)時(shí)自動(dòng)啟動(dòng)MySQL程序,進(jìn)程名為MySQL57。Windows啟動(dòng)時(shí)采用StandardSytemAccount標(biāo)準(zhǔn)賬戶,保留默認(rèn)值即可。單擊“Next”按鈕,進(jìn)入下一個(gè)窗口。PluginsandMySQL(5)系統(tǒng)顯示“Applyonfguration(應(yīng)用服務(wù)配置過程)窗口。單擊“Execute”按鈕,系統(tǒng)將根據(jù)列出的應(yīng)用服務(wù)順序進(jìn)行配置,直到項(xiàng)目前全部打勾表示完成。單擊“Finish”按鈕,進(jìn)入下一個(gè)窗口。(6)系統(tǒng)顯示“ProductConfiguration”窗口,其中顯示MySQLServer配置完成。單擊“Next”按鈕,進(jìn)入顯示完成窗口。單擊“Finish”按鈕,結(jié)束配置。實(shí)訓(xùn)2 MySQL數(shù)據(jù)庫準(zhǔn)備WindowsMySQL5.7mysql>SQL語句。也NavicatSQL語句執(zhí)SQL語Navicat看看執(zhí)行結(jié)果或者根據(jù)需要通過界面修改內(nèi)容。創(chuàng)建數(shù)據(jù)庫數(shù)據(jù)庫名稱:pxscj。字符集和相應(yīng)的排序規(guī)則:utf8SQL語句如下:CREATEDATABASEpxscjCREATEDATABASEpxscjDEFAULTCHARACTERSETutf8DEFAULTCOLLATEutf8_general_ci;Navicatpxscj1所示。創(chuàng)建學(xué)生表(xs)
圖1“新建數(shù)據(jù)庫”窗口學(xué)生表(xs)結(jié)構(gòu)如表1所示。表1 學(xué)生表(xs)結(jié)構(gòu)項(xiàng)目名列名數(shù)據(jù)類型不可空說明姓名xmchar(4)主鍵性別xbtinyint1男0女出生時(shí)間cssjdate總學(xué)分zxfint由成績表(cj)觸發(fā)器同步更新備注bztext照片zpblob);#();#(b)#(c)NOTNULLPRIMARYKEY,NOTNULLDEFAULT1CHECK(xbIN(1,0)),NOTNULL,NULL,NULL,NULLxm char(4)xb tinyint(1)cssj datezxf int(2)bz textzp blob#(a)USEpxscj;DROPTABLEIFEXISTSxs;CREATETABLExs(說明:(a)為了防止原來xs已經(jīng)存在,若存在xs表時(shí)先刪除它,CREATETABLExs才能執(zhí)行。xmb11或者0值。創(chuàng)建成績表(cj)成績表(cj)結(jié)構(gòu)如表2所示。表2 成績表(cj)結(jié)構(gòu)項(xiàng)目名列名數(shù)據(jù)類型不可空說明姓名xmchar(4)主鍵課程名kcmvarchar(10)主鍵成績cjtinyint范圍:0~100);#();#(a)#(b)PRIMARYKEY(xm,kcm),CHECK(cj>=0ANDcj<=100)NOTNULL,NOTNULL,NULL,DROPTABLEIFEXISTScj;CREATETABLEcj(xm char(4)kcm varchar(10)cj tinyint(1)說明:(a)因?yàn)橹麈I由(xm,kcm)列共同組成,所以只能在所有列定義后單獨(dú)定義。(b)僅僅涉及成績列(cj)完整性也可以在所有列后單獨(dú)定義。#(#(c)#(a)#(b)USEpxscj;INSERTINTOxsVALUES('周何駿',1,'1998-09-25',0,null,null);INSERTINTOxsVALUES('徐鶴',DEFAULT,'1997-11-08',0,null,null);INSERTINTOxsVALUES('林雪',0,'1997-10-19',0,null,null);INSERTINTOxsVALUES('王新平',1,'1998-03-06',0,null,null);UPDATExsSETbz='通信工程轉(zhuǎn)入'WHERExm='周何駿';SELECT*FROMxs;說明:(a)VALUESxs表結(jié)構(gòu)定義的列的前后null填入。注意,nullnull屬性列。(b)如果采用默認(rèn)值,需要填入DEFAULT。(c)因?yàn)橛涗浺呀?jīng)存在,所以只能更新記錄列值或者改變原來值。如果插入的列數(shù)據(jù)不符合定義時(shí)的完整性要求,就會(huì)顯示錯(cuò)誤,插入記錄不會(huì)成功。例如:姓名(xm)='周何駿 ',null:字符串長度為5超過最大長度,列不能為空。另外,因?yàn)樵摿袨橹麈I,兩條記錄姓名不能相同。性別(xb)=2:xb01。出生時(shí)間(cssj)='1998-09-00':日期數(shù)據(jù)不正確;學(xué)分(xf)=10:超過范圍。#(#(b)#(a)林雪',50);INSERTINTOcj(kcm,xm,cjVALUES('計(jì)算機(jī)導(dǎo)論','周何駿',82);INSERTINTOcj(kcm,xm,cjVALUES('計(jì)算機(jī)網(wǎng)絡(luò)','徐鶴',85);INSERTINTOcj(kcm,xm,cjVALUES('C++','周何駿',82);INSERTINTOcj(kcm,xm,cjVALUES('計(jì)算機(jī)導(dǎo)論','王新平',65);SELECT*FROMcjORDERBYxm;INSERTINTOcj(kcm,xm,cj)VALUES('Java','周何駿',70),('Java','徐鶴',80),('Java','說明:VALUES(b)xm排序,所有學(xué)生的記錄同一個(gè)人的成績記錄排在一起。實(shí)訓(xùn)2SpringBoot開發(fā)環(huán)境配置P2.1.1JDK1.下載JDKOraclehttps://www.or/technetwork/java/javase/downloads/index.htmlJDKJDK(Oracle經(jīng)常會(huì)發(fā)布DK的更新版本,到本書出版的時(shí)候,JDK。2.安裝JDK導(dǎo)航到瀏覽器下載安裝文件的位置,并雙擊執(zhí)行該文件。一旦安裝開始,將會(huì)看到安裝向?qū)В?Windows中,JDK安裝程C:\ProgramFiles\Java\。要更改安裝目錄的位置,可單擊“更改”按鈕。本書安裝2。圖1JDK安向?qū)?圖2選擇JDK的安裝目錄3.配置環(huán)境變量3所示。圖3Windows10的環(huán)境變量JDKC:\ProgramFiles\Java\jdk-17.0.54所示。圖4新建JAVA_HOME環(huán)境變量接下來添加系統(tǒng)Path環(huán)境變量,在“系統(tǒng)變量”列表中選中“Path5Path %JAVA_HOME%\bin 圖5添加Path環(huán)境變量連續(xù)三次單擊“確定”按鈕,Windows接受這些修改并返回到最初的“設(shè)置”窗口。這樣,系統(tǒng)就在原來的Path路徑上增加了一個(gè)指向新安裝JDK的查找路徑。P2.1.2Maven1.下載Maven打開官網(wǎng)/download.cgi,在“Download”頁“Files”下載區(qū)點(diǎn)“apache-maven-3.9.0-bin.zip”鏈接,下載得到壓縮包文件apache-maven-3.9.0-bin.zip,如圖6所示。2.解壓將其解壓到一個(gè)路徑下,如C:\mvn\apache-maven-3.9.0。3.配置環(huán)境變量要配置兩處,如圖7所示。(1)C:\mvn\apache-maven-3.9.0(讀者請(qǐng)按照自己下Maven的實(shí)際解壓路徑來配置。(2)編輯Path變量,加上:%MAVEN_HOME%\bin。圖6下載Maven圖7配置環(huán)境變量4.檢查安裝打開Windows命令行,輸入: mvn-V 若出現(xiàn)如圖8所示的一堆信息,開頭包含了Maven的路徑、Java版本、操作系統(tǒng)版本等,說明安裝成功。5.配置Maven倉庫
圖8檢查安裝(1)在Maven安裝目錄下創(chuàng)建文件夾repository。(2)進(jìn)入Maven安裝目錄下的conf文件夾,打開文件settings.xml,找到localRepository標(biāo)簽(此時(shí)是被注釋掉的,在下面配置路徑: <localRepository>C:\mvn\apache-maven-3.9.0\repository</localRepository> 這樣以后Maven管理下載的JAR包就都會(huì)放在這個(gè)路徑下。(3)配置遠(yuǎn)程倉庫,在settings.xml中找到mirrors標(biāo)簽,在下面添加配置:<mirror><mirror><id>nexus-aliyun</id><mirrorOf>*</mirrorOf><name>Nexusaliyun</name><url>/nexus/content/groups/public</url></mirror>MavenJARsettings.xml9所示。圖9配置Maven倉庫P2.1.3IDEA1.下載IDEA訪問IDEA官網(wǎng)https:///idea/download/#section=windows,選擇下載Ultimate版本,得到安裝包文件(例如:ideaIU-20223.2.xe。2.安裝IDEA(1)雙擊安裝包ideaIU-2022.3.2.xe,啟動(dòng)IDEA安裝向?qū)?,如圖10所示。單擊“NextInstallLocation圖10IDEA安向?qū)?圖11指定初始安裝默認(rèn)錄(2)單擊“NexIntallationOption”界面,如圖12所示。 圖12指定裝選項(xiàng) 圖13指定(命名)啟動(dòng)單文件夾其中各項(xiàng)的選擇及作用如下:IntelliJIDEAIDEA的快捷方式。Add"bin"foldertotheIDEAbin環(huán)境變量中,以方便此后對(duì)該目錄下文件的查找和執(zhí)行。Add"OpenFolderasProject":增加“OpenFolderasProjectIDEA上下文菜單。.javaIDEAJava語言程序。.groovyIDEAgroovy語言程序。.ktIDEAKotlin語言程序。.ktsIDEAKotlin腳本語言文件。(3hooeStartMenuFolder(命名(Jetrain,13所示。(4)單擊“Install”開始安裝,顯示安裝進(jìn)度,如圖14所示。最后在“CompletingIntelliJIDEASetup”界面勾選“Rebootnow”,點(diǎn)“Finish”按鈕結(jié)束安裝并重啟計(jì)算機(jī),如圖15所示。圖14顯示裝進(jìn)度 圖15安裝結(jié)束重啟計(jì)3.初次啟動(dòng)(1)初次啟動(dòng)需要先接受用戶許可條款,如圖16所示,勾選底部“IconfirmthatIhavereadandacceptthetermsofthisUserAgreement”選項(xiàng),單擊“Continue”按鈕。圖16接受用戶許可條款(2)系統(tǒng)彈出激活(Activate)License,可選中“ActivateIntelliJStarttrial(30,如圖17所示。圖17激活(Activate)對(duì)話框(3)IDEA啟動(dòng)后首先進(jìn)入IntelliJIDEA歡迎界面,如圖18所示。圖18IntelliJIDEA歡迎界面5個(gè)選項(xiàng)頁,通過左側(cè)的選項(xiàng)標(biāo)簽進(jìn)行切換,默認(rèn)處于“Projects”頁,此頁上布置IDEAVCSVCSIntelliJIDEAVCSURLGITURL地址可以克隆并下載項(xiàng)目。IDEACustomize”頁來另行定制,選中左側(cè)欄上的“Customize19所示。圖19定制開發(fā)界面從“Colortheme”欄的下拉列表中選“IntelliJLight”,界面立即變?yōu)榍逅牧涟咨?。接下來就可以用IDEA創(chuàng)建SpringBoot項(xiàng)目并進(jìn)入到開發(fā)環(huán)境了。4.整合MavenSpringBoot在IDEA開發(fā)環(huán)境中,選擇主菜單“e”→“SettingsSetting”配置窗口,展開左uild,Execution,Depoyment”→“uildools”→“MavenMaven配20所示。圖20Maven配置界面從“MavenhomepathMaven的解壓路徑(C:/mvn/apache-mave-39.0勾“Userettingsfile欄后面“Override選項(xiàng)后單“按鈕從彈SelectUserSettingsMaven安裝路徑下的用戶配置文件(etting.xml,如圖21所示。21Maven單擊“OK”按鈕,回到“Settings”配置窗口,此時(shí)“Mavenhomepath”及其后兩欄的內(nèi)容顯示如圖22所示。單擊“OK”按鈕保存設(shè)置。
圖22Maven路徑配置完成實(shí)訓(xùn)3 MySQL數(shù)據(jù)庫準(zhǔn)備WindowsMySQL5.7mysql>SQL語句。也NavicatSQL語句執(zhí)SQL語Navicat看看執(zhí)行結(jié)果或者根據(jù)需要通過界面修改內(nèi)容。創(chuàng)建數(shù)據(jù)庫數(shù)據(jù)庫名稱:pxscj。字符集和相應(yīng)的排序規(guī)則:utf8SQL語句如下:CREATEDATABASEpxscjCREATEDATABASEpxscjDEFAULTCHARACTERSETutf8DEFAULTCOLLATEutf8_general_ci;Navicatpxscj1所示。創(chuàng)建課程表(kc)
圖1“新建數(shù)據(jù)庫”窗口課程表(kc)結(jié)構(gòu)如表1所示。表1 課程表(kc)結(jié)構(gòu)項(xiàng)目名列名數(shù)據(jù)類型不可空說明課程名kcmvarchar(10)主鍵學(xué)分xftinyint范圍:1~6考試人數(shù)krsint平均成績pjcjfloat(5.2)SQL語句如下:DROPTABLEIFEXISTSkc;CREATETABLEkc(kcmvarchar(10)NOTNULLPRIMARYKEY,xftinyint(1)NOTNULLCHECK(xf>0ANDxf<=6),krsint(2)NULL,pjcjfloat(5.2)NULL);說明:課程名(kcm)列實(shí)際內(nèi)容存儲(chǔ)長度差別較大,所以選擇varchar(10)。創(chuàng)建成績表(cj)成績表(cj)結(jié)構(gòu)如表2所示。表2 成績表(cj)結(jié)構(gòu)項(xiàng)目名列名數(shù)據(jù)類型不可空說明姓名xmchar(4)主鍵課程名kcmvarchar(10)主鍵成績cjtinyint范圍:0~100);#();#(a)#(b)PRIMARYKEY(xm,kcm),CHECK(cj>=0ANDcj<=100)NOTNULL,NOTNULL,NULL,DROPTABLEIFEXISTScj;CREATETABLEcj(xm char(4)kcm varchar(10)cj tinyint(1)說明:(a)因?yàn)橹麈I由(xm,kcm)列共同組成,所以只能在所有列定義后單獨(dú)定義。(b)僅僅涉及成績列(cj)完整性也可以在所有列后單獨(dú)定義。創(chuàng)建存儲(chǔ)過程(cj_kAverage)在成績表(cj)中按照課程名(kcm)統(tǒng)計(jì)考試人數(shù)(即記錄數(shù))和平均成績,保存到課程表(kc)對(duì)應(yīng)課程的相應(yīng)列中。1.存儲(chǔ)過程的創(chuàng)建#(b#(b)#(c.2)#(c.3)#(d)#(c.4)#(c.5)#(a)#(a)#(a)#(c.1)USEpxscj;DELIMITER$$DROPPROCEDUREIFEXISTScj_kAverage;PROCEDUREcj_kAverage()BEGINDECLAREkcm1varchar(10);DECLAREkrs1int(2);DECLAREpjcj1float(5.2);DECLAREmyfoundbooleanDEFAULTtrue;DECLAREmykcjCURSORFORSELECTkcm'課程名',count(kcm)AS'考試人數(shù)',avg(cj)AS'平均成績'FROMcjGROUPBYkcmORDERBYkcm;DECLARECONTINUEHANDLERFORNOTFOUNDSETmyfound=false;OPENmykcj;mylabel:LOOPFETCHmykcjINTOkcm1,krs1,pjcj1;IFNOTmyfoundTHENLEAVEmylabel;ELSEUPDATEkcSETkrs=krs1,pjcj=pjcj1WHEREkcm=kcm1;ENDIF;##(d)#(c.6)ENDLOOPmylabel;CLOSEmykcj;END$$DELIMITER;說明:(a定義3(kcm1(kr1(pjcj1DECLAREmykcjCURSORFORSELECTkcm'課程名',count(kcm)AS'DECLAREmykcjCURSORFORSELECTkcm'課程名',count(kcm)AS'考試人數(shù)',avg(cj)AS'平均成績'FROMcjGROUPBYkcmORDERBYkcm;先按照課程名排序(ORDERYkcm,相同課程排在一起;再按照課程名分組(GOUPYkcm;按照課程名統(tǒng)計(jì)(count(kcm))改顯示列名(AS考試人數(shù)';按照課程名計(jì)算成績的平均值并改顯示列名(avg(cj)AS'平均成績;查詢輸出課程名(kcm、考試人數(shù)和平均成績。(c)與游標(biāo)控制有關(guān)的語句。(c.1)定義邏輯變量(myfound,初值為真(rue(c.2)根據(jù)定位游標(biāo)結(jié)果,如果沒有找到,則myfound=false。(c.3)打開游標(biāo)。((kcm1,krs1,pjcj1)中。(c.5(NOTmyfound(LEVE(UPDTE)課程表(kc)對(duì)應(yīng)課程名的考試人數(shù)(krs)和平均成績(pjcj)列數(shù)據(jù)。(c.6)關(guān)閉游標(biāo)。(d)循環(huán)開始和循環(huán)結(jié)束語句。注意:由于存儲(chǔ)過程是相對(duì)于數(shù)據(jù)庫而不是某個(gè)表而言的,所以在存儲(chǔ)過程創(chuàng)建后,在pxscj數(shù)據(jù)庫的“函數(shù)”對(duì)象中就會(huì)出現(xiàn)cj_kAverage函數(shù)。2.存儲(chǔ)過程的執(zhí)行存儲(chǔ)過程定義后,通過下列語句執(zhí)行: CALLcj_kAverage(); INSERTINTOkc(kcm,xf)VALUES('計(jì)算機(jī)導(dǎo)論INSERTINTOkc(kcm,xf)VALUES('計(jì)算機(jī)導(dǎo)論',2),('計(jì)算機(jī)網(wǎng)絡(luò)',4),('Java',5);INSERTINTOkc(kcm,xf)VALUES('C++',4);INSERTINTOkc(kcm,xf)VALUES('大數(shù)據(jù)',3);INSERT語句可以同時(shí)插入多條記錄。INSERTINTOcj(kcm,xm,cj)VALUES('Java','周何駿INSERTINTOcj(kcm,xm,cj)VALUES('Java','周何駿',70),('Java','徐鶴',80),('Java','林雪',50); #(a)INSERTINTOcj(kcm,xm,cj)VALUES('計(jì)算機(jī)導(dǎo)論','周何駿',82);INSERTINTOcj(kcm,xm,cj)VALUES('計(jì)算機(jī)網(wǎng)絡(luò)','徐鶴',85);INSERTINTOcj(kcm,xm,cj)VALUES('C++','周何駿',82);##(b)INSERTINTOcj(kcm,xm,cjVALUES('計(jì)算機(jī)導(dǎo)論','王新平',65);SELECT*FROMcjORDERBYxm;說明:VALUES(b)xm排序,所有學(xué)生的記錄同一個(gè)人的成績記錄排在一起。UPDATEkcSETkrs=0,pjcj=0;UPDATEkcSETkrs=0,pjcj=0;CALLcj_kAverage();SELECT*FROMkc;2所示。圖2存儲(chǔ)過程統(tǒng)計(jì)每門課的考試人數(shù)和平均成績1Python3.9
實(shí)訓(xùn)3安裝Python環(huán)境PHP80(1)下載安裝包在Python官方網(wǎng)站:https:///downloads/windows/獲取對(duì)應(yīng)的Python安裝文件,Windows要求選擇Windows7以上64位操作系統(tǒng)版本,在瀏覽器瀏覽Python官網(wǎng)下載頁面,在下載列表中選擇Windows平臺(tái)64位安裝包,下載后得到的文件名為python-3.9.13-amd64.exe。(2)安裝Python雙擊安裝包,啟動(dòng)Python安裝向?qū)В鐖D1所示。圖1Python安裝向?qū)nstallPython(AddPython3.9toPythonWindowsPath的路徑中。單擊“IntallNowPython安裝過程,安裝完畢顯示如圖2所示的成功界面。圖2成功界面點(diǎn)“Disablepathlengthlimit”取消路徑長度限制,單擊“Close”按鈕結(jié)束安裝。(3)驗(yàn)證安裝安裝了Python后,在Windows開始菜單中就會(huì)包含Python的程序組,如圖3所示。圖3Python程序組為了驗(yàn)證Pythonindowspython--verionPython的版本信息,就表示安裝是成功的。讀者也可以用“pythonPython語Python4所示。2.安裝PyCharm
圖4驗(yàn)證Python安裝是否成功PyCharmJetBrainsPythonPythonPython程序。PyCharm官網(wǎng):/pycharm/PyCharmCommunity(免費(fèi)開源的版本,得到安裝包文件名為pycharm-cmmnity-222..1.exe。(2)雙擊安裝包,啟動(dòng)安裝向?qū)?,如圖5所示。單擊“Next”按鈕。圖5PyCharm安裝向?qū)В?)進(jìn)入安裝路徑選擇界面,如圖6所示。點(diǎn)“Browse…”可以改變PyCharm安裝目錄。圖6選擇PyCharm安裝路徑(4)單擊“Next”按鈕,進(jìn)入安裝選項(xiàng)界面,如圖7所示。在此界面上可通過勾選設(shè)置PyCharm的一些安裝選項(xiàng)。圖7設(shè)置PyCharm的安裝選項(xiàng)PyrmiytinPyChrmAddn"leroteHPm的nis當(dāng)前AddenlrastPyChm工程設(shè)置完成后單擊“Next”按鈕。(5)PyCharmWindows(或創(chuàng)建命名一個(gè)新的)8所示,通常采用默認(rèn)文件夾。單擊“Install”按鈕啟動(dòng)安裝進(jìn)程。圖8選擇(創(chuàng)建)PyCharm的Windows開始菜單文件夾(6安裝過程結(jié)束后顯示Pyharm9ebootnowFinish”按鈕重啟計(jì)算機(jī)。(7)PyCharm
圖9PyCharm安裝完成界面PyCharmPyCharm官方發(fā)送使用統(tǒng)計(jì)信息。勾選“IconfirmthatIhavereadandacceptthetermsofthisUserAgreement”接受條款,點(diǎn)“ontinueDontSend(不發(fā)送使用統(tǒng)計(jì)信息,如圖10所示。圖10接受許可協(xié)議條款、不發(fā)送使用統(tǒng)計(jì)信息接著出現(xiàn)啟動(dòng)畫面,然后進(jìn)入如圖11所示的歡迎界面。圖11PyCharm歡迎界面PyCharm默認(rèn)的界面風(fēng)格是暗黑背景,看起來很不舒服,大多數(shù)用戶都會(huì)將它改成亮白色,方法是:選中歡迎界面左側(cè)“Customize”選項(xiàng),在出現(xiàn)界面的“Colortheme”欄下拉列表中選擇“IntelliJLight”,界面立馬就變得明亮整潔了,如圖12所示。12PyCharm當(dāng)然,讀者也可以在使用PyCharm的時(shí)候再更換界面風(fēng)格,方法是:選擇主菜單“File”→“Setting...Appearance&eaviorAppearanceme”欄下拉列表中選擇“IntelliJLight13所示。13PyCharm3.為PyCharm工程配置Python解釋器PyCharmPython語言的解釋器,但這個(gè)解釋器與本地計(jì)算機(jī)上PythonPythonPyCharm工程虛擬環(huán)境中無法識(shí)別PythonPyCharm工程的解釋器更換為計(jì)算機(jī)上所安裝Python環(huán)境的解釋器,這一步很關(guān)鍵!介紹如下。(1)在PyCharm歡迎界面上點(diǎn)“NewProject”按鈕新建一個(gè)PyCharm工程,如圖14所示。14PyCharm工程出現(xiàn)“NewProject”窗口,在“Location”欄配置PyCharm工程的存放路徑和工程名,其他保持默認(rèn),單擊“Create”按鈕創(chuàng)建工程,如圖15所示。15PyCharm(2)創(chuàng)建好工程后,自動(dòng)進(jìn)入PyCharm開發(fā)環(huán)境,如圖16所示。圖16PyCharm開發(fā)環(huán)境選擇主菜單“File”→“Setting...Project:xxx(xxx為當(dāng)前工程名)下面的“PythonInterpreterPython17所示。圖17Python解釋器配置界面這時(shí)頂部“PythonInterpreter”欄里顯示的解釋器是PyCharm工程虛擬環(huán)境的而非之前計(jì)算機(jī)上所安裝的Python,必須更換。(3)添加和更換Python解釋器有兩種操作方法(如圖18所示:①從“PythonInterpreter”欄的下拉列表中選“ShowAll...PythonInterpreters”對(duì)話框點(diǎn)左上角按鈕。②直接選擇“PythonInterpreter”欄右側(cè)的“AddInterpreter”→“AddLocalInterpreter...”選項(xiàng)。操作方法①操作方法②18Python解釋器進(jìn)入到“AddPythonInterpreter”窗口,如圖19所示,左側(cè)選“SystemInterpreter”選項(xiàng),在右邊界面配置新的解釋器。圖19配置新的解釋器欄右邊的按鈕出“SelectPython對(duì)話框單擊其頂部PythonAppDatapython.exe,選中,單擊“OK20所示?;氐健癙ythonInterpreters(如圖21所示,它才是本地計(jì)算機(jī)上安裝Python的解釋器,選中它,再先后單擊對(duì)話框底部“ApplyOK”按鈕。此時(shí)返回Python解釋器配置界面,其頂部“PythonInterpreter”欄下拉列表里就有了新添加的解釋器選項(xiàng),選中后單擊“OK”按鈕即可。圖20找到并選中本地Python解釋器圖21解釋器添加成功1JDK
實(shí)訓(xùn)4 Android開發(fā)工具安裝無論移動(dòng)端還是服務(wù)器端程序的開發(fā)機(jī)器上都要安裝JDK,最好版本一致。(1)下載JDK可以從Oracle官網(wǎng)下載到最新版本的JDK,網(wǎng)址為https://www.or/technetwork/java/javase/downloads/index.htmlJDKJDK(Oracle經(jīng)常會(huì)發(fā)布DK的更新版本,到本書出版的時(shí)候,JDK。(2)安裝JDK導(dǎo)航到瀏覽器下載安裝文件的位置,并雙擊執(zhí)行該文件。一旦安裝開始,將會(huì)看到安裝向?qū)В?Windows中,JDK安裝程C:\ProgramFiles\Java\。要更改安裝目錄的位置,可單擊“更改”按鈕。本書安裝2。圖1JDK安向?qū)?圖2選擇JDK的安裝目錄(3)配置環(huán)境變量配置環(huán)境變量的目的是為了讓后面安裝的AndroidStudio和Eclipse能夠找到JDK。3所示。圖3Windows10的環(huán)境變量JDKC:\ProgramFiles\Java\jdk-17.0.54所示。圖4新建JAVA_HOME環(huán)境變量接下來添加系統(tǒng)Path環(huán)境變量,在“系統(tǒng)變量”列表中選中“Path5Path %JAVA_HOME%\bin 圖5添加Path環(huán)境變量連續(xù)三次單擊“確定”按鈕,Windows接受這些修改并返回到最初的“設(shè)置”窗口。這樣,系統(tǒng)就在原來的Path路徑上增加了一個(gè)指向新安裝JDK的查找路徑。2.安裝AndroidStudio在移動(dòng)端開發(fā)機(jī)器上安裝AndroidStudio。(1)下載AndroidStudio去Android官網(wǎng)下載AndroidStudio的安裝包,網(wǎng)址為:/stuAndroidStudioDOWNLOADANDROID6所示。(2)AndroidStudio
圖6下載AndroidStudio4.1因?yàn)樵贏ndroidStudioWindows防火墻和殺毒軟件。雙擊執(zhí)行下載得到的文件,啟動(dòng)安裝向?qū)?,?所示。單擊“Next”按鈕向前推進(jìn)界面,每一步都采用默認(rèn)設(shè)置,直至安裝完成到達(dá)“CompletingAndroidStudioSetup8StartAndroidStudioAndroidStudio在FinihFinihAndroidStudio將會(huì)啟動(dòng)。AndroidStudio。圖7啟動(dòng)AndroidStudio安裝向?qū)?圖8完成AndroidStudio的裝(3)第一次啟動(dòng)AndroidStudioAndroidStudio9接著出現(xiàn)啟動(dòng)畫面,如圖10所示,在彈出的“DataSharing”對(duì)話框中點(diǎn)選“Don’tsend”拒絕谷歌對(duì)個(gè)人隱私信息的采集,接下來彈出的“AndroidStudioFirstRun”提示框中點(diǎn)“Cancel”忽略系統(tǒng)對(duì)AndroidSDK的檢查。圖9AndroidStudio的初始設(shè)置圖10不發(fā)送個(gè)人信息及不進(jìn)行SDK檢查接著出現(xiàn)AndroidStudioSetupWizard的Welcome(歡迎)界面,如圖11所示。SetupWizard。單擊“Next”按鈕。Standar(標(biāo)準(zhǔn),單擊“NextUI主題界面風(fēng)格,如圖12所示。AndroidSDK組件的詳細(xì)信Finish”按鈕,SetupWizardAndroidStudio13所示。稍等一會(huì)兒,待完成后單擊“Finish”按鈕,關(guān)閉SetupWizard。圖11SetupWizard歡迎界面 圖12采用默認(rèn)的UI主題面風(fēng)格3.安裝Eclipse
圖13SetupWizard下載組件在服務(wù)器端開發(fā)機(jī)器上安裝Eclipse,使用最新的EclipseIDE2022?12作為開發(fā)Web端Java程序的工具,目前官方只提供Eclipse安裝器的下載,下載地址:https://www./downloads/,獲取文件名為:eclipse-inst-jre-win64.exe。eclipse-inst-jre-win64.exe選擇要安裝的EclipeIDEEclipeIDEforEntrprieavaandebDevelpers(即aveEE版,如圖14所示,安裝全過程要始終確保聯(lián)網(wǎng)以實(shí)時(shí)下載所需的文件。14JavaEEEclipse點(diǎn)“INSTALL”開始安裝,如圖15所示。15Eclipse安裝完成點(diǎn)“LAUNCH”啟動(dòng)并設(shè)置工作區(qū),如圖16所示。4.安裝Tomcat
圖16初次啟動(dòng)/download-10.cgiapache-tomcat-9.0.71.exe17所示。圖17Tomcat安裝向?qū)erverShutdownPort”由-1改為8005(或者在安裝完成之后由配置文件中改再重啟omcat,如圖18所示,只有這樣修改之后才Eclipse實(shí)例來調(diào)試程序。圖18修改“ServerShutdownPort”JDK17JREJREJDK目錄即可,如圖19所示。19JDKJRE目錄5.配置Eclipse環(huán)境中的Tomcat要將Tomcat與EclipseIDE整合起來,才能在開發(fā)調(diào)試程序時(shí)使用。下面簡述整合的步驟:(1在EclipeindowPreferencesPreferencesServer”→“untimeEnvirnmensAdd20所示。圖20配置服務(wù)器運(yùn)行時(shí)環(huán)境(2)在接下來的“NewServerRuntimeEnvironmentApacheomcatv90reateanewlocalerver21所示,點(diǎn)“Next圖21選擇創(chuàng)建服務(wù)器的類型(3)9.0JRE就是本地計(jì)算機(jī)上所安裝的DK(這里是“jdk-17.05,如圖22所示。22TomcatJRE經(jīng)上述配置后,就可以從Eclipse環(huán)境啟動(dòng)Tomcat來調(diào)試運(yùn)行程序。注意:注意:Eclipse實(shí)訓(xùn)4 MySQL數(shù)據(jù)庫準(zhǔn)備WindowsMySQL5.7mysql>SQL語句。也NavicatSQL語句執(zhí)SQL語Navicat看看執(zhí)行結(jié)果或者根據(jù)需要通過界面修改內(nèi)容。創(chuàng)建數(shù)據(jù)庫數(shù)據(jù)庫名稱:pxscj。字符集和相應(yīng)的排序規(guī)則:utf8SQL語句如下:CREATEDATABASEpxscjCREATEDATABASEpxscjDEFAULTCHARACTERSETutf8DEFAULTCOLLATEutf8_general_ci;Navicatpxscj1所示。創(chuàng)建學(xué)生表(xs)
圖1“新建數(shù)據(jù)庫”窗口學(xué)生表(xs)結(jié)構(gòu)如表1所示。表1 學(xué)生表(xs)結(jié)構(gòu)項(xiàng)目名列名數(shù)據(jù)類型不可空說明姓名xmchar(4)主鍵性別xbtinyint1男0女出生時(shí)間cssjdate總學(xué)分zxfint由成績表(cj)觸發(fā)器同步更新備注bztext照片zpblob);#();#(b)#(c)NOTNULLPRIMARYKEY,NOTNULLDEFAULT1CHECK(xbIN(1,0)),NOTNULL,NULL,NULL,NULLxm char(4)xb tinyint(1)cssj datezxf int(2)bz textzp blob#(a)USEpxscj;DROPTABLEIFEXISTSxs;CREATETABLExs(說明:(a)為了防止原來xs已經(jīng)存在,若存在xs表時(shí)先刪除它,CREATETABLExs才能執(zhí)行。xmb11或者0值。創(chuàng)建課程表(kc)課程表(kc)結(jié)構(gòu)如表2所示。表2 課程表(kc)結(jié)構(gòu)項(xiàng)目名列名數(shù)據(jù)類型不可空說明課程名kcmvarchar(10)主鍵學(xué)分xftinyint范圍:1~6考試人數(shù)krsint平均成績pjcjfloat(5.2)SQL語句如下:DROPTABLEIFEXISTSkc;CREATETABLEkc(kcmvarchar(10)NOTNULLPRIMARYKEY,xftinyint(1)NOTNULLCHECK(xf>0ANDxf<=6),krsint(2)NULL,pjcjfloat(5.2)NULL);說明:課程名(kcm)列實(shí)際內(nèi)容存儲(chǔ)長度差別較大,所以選擇varchar(10)。創(chuàng)建成績表(cj)成績表(cj)結(jié)構(gòu)如表3所示。表3 成績表(cj)結(jié)構(gòu)項(xiàng)目名列名數(shù)據(jù)類型不可空說明姓名xmchar(4)主鍵課程名kcmvarchar(10)主鍵成績cjtinyint范圍:0~100);#();#(a)#(b)PRIMARYKEY(xm,kcm),CHECK(cj>=0ANDcj<=100)NOTNULL,NOTNULL,NULL,DROPTABLEIFEXISTScj;CREATETABLEcj(xm char(4)kcm varchar(10)cj tinyint(1)說明:(a)因?yàn)橹麈I由(xm,kcm)列共同組成,所以只能在所有列定義后單獨(dú)定義。(b)僅僅涉及成績列(cj)完整性也可以在所有列后單獨(dú)定義。記錄完整性包括下列三個(gè)方面:對(duì)應(yīng)的記錄則不能插入。(kcm)對(duì)應(yīng)的記錄,則不能插入。USEpxscj;ALTERTABLEcjADDCONSTRAINTwzx_xmFOREIGNKEY(xm)REFERENCESxs(xm)ONUPDATERESTRICT,ADDCONSTRAINTwzx_kcmFOREIGNKEY(kcm)REFERENCESkc(kcm)ONUPDATERESTRICTUSEpxscj;ALTERTABLEcjADDCONSTRAINTwzx_xmFOREIGNKEY(xm)REFERENCESxs(xm)ONUPDATERESTRICT,ADDCONSTRAINTwzx_kcmFOREIGNKEY(kcm)REFERENCESkc(kcm)ONUPDATERESTRICT說明:cj表上述表間記錄完整性后,xsxmkckcm列結(jié)構(gòu)不能修改,也不能刪除表(DROPALE,否則需要先刪除有關(guān)完整性約束。②因?yàn)閷W(xué)生表(xs)記錄與成績表(cj)記錄之間存在關(guān)聯(lián),雖然可以創(chuàng)建下列完整性:在學(xué)生表(xs)中刪除指定姓名(xm)記錄,同時(shí)也會(huì)刪除成績表(cj)中對(duì)應(yīng)該姓名(xm)的所(cj)中沒有對(duì)應(yīng)的學(xué)生記錄才能刪除。同理,判斷成績表(cj)中沒有對(duì)應(yīng)的課程記錄時(shí),才能刪除課程表(kc)中的記錄。創(chuàng)建觸發(fā)器在成績表(cj)中創(chuàng)建下列3個(gè)觸發(fā)器:成績表(cj)插入觸發(fā)器中對(duì)應(yīng)該學(xué)生記錄的總學(xué)分(zxf)加課程對(duì)應(yīng)的學(xué)分?jǐn)?shù)。#(a#(a)#(b)USEpxscj;DELIMITER$$DROPTRIGGERIFEXISTScj_insert_zxf;CREATETRIGGERcj_insert_zxfAFTERINSERTONcjFOREACHROWBEGINDECLAREvxfintDEFAULT0;SELECTxfFROMkcWHERENEW.kcm=kcmINTOvxf;UPDATExsSETzxf=zxf+vxfWHERENEW.xm=xmANDNEW.cj>=60;END$$DELIMITER;說明:(a)查詢插入成績記錄課程名(NEW.kcm)在課程表(kc)中對(duì)應(yīng)該課程名(kcm)的學(xué)分,保存到vxf變量中。(b)如果成績大于等于60學(xué)分,對(duì)應(yīng)學(xué)生總學(xué)分(zxf)加課程學(xué)分(vxf成績表(cj)刪除觸發(fā)器中對(duì)應(yīng)該學(xué)生記錄的總學(xué)分(zxf)減課程對(duì)應(yīng)的學(xué)分?jǐn)?shù)。USEpxscj;DELIMITER$$DROPTRIGGERIFEXISTScj_delete_zxf;CREATETRIGGERcj_delete_zxfAFTERDELETEONcjFOREACHROWBEGINUSEpxscj;DELIMITER$$DROPTRIGGERIFEXISTScj_delete_zxf;CREATETRIGGERcj_delete_zxfAFTERDELETEONcjFOREACHROWBEGINDECLAREvxfintDEFAULT0;SELECTxfFROMkcWHEREkcm=OLD.kcmINTOvxf;UPDATExsSETzxf=zxf-vxfWHERExm=OLD.xmANDOLD.cj>=60;END$$DELIMITER;成績表(cj)更新觸發(fā)器在成績表(cj)6060,則學(xué)生表(xs)中對(duì)應(yīng)該學(xué)生記錄的總學(xué)分(zxf)6060,對(duì)應(yīng)該學(xué)生總學(xué)分(zxf)加課程對(duì)應(yīng)的學(xué)分?jǐn)?shù)。USEpxscj;USEpxscj;DELIMITER$$DROPTRIGGERIFEXISTScj_update_zxf;TRIGGERcj_update_zxfAFTERONcjFOREACHROWBEGINDECLAREvxfintDEFAULT0;SELECTxfFROMkcWHEREkcm=OLD.kcmINTOvxf;IF(OLD.cj>=60ANDNEW.cj<60)THENUPDATExsSETzxf=zxf-vxfWHERExm=OLD.xm;ENDIF;IF(OLD.cj<60ANDNEW.cj>=60)THENUPDATExsSETzxf=zxf+vxfWHERExm=OLD.xm;ENDIF;END$$DELIMITER;#(#(c)#(a)#(b)USEpxscj;INSERTINTOxsVALUES('周何駿',1,'1998-09-25',0,null,null);INSERTINTOxsVALUES('徐鶴',DEFAULT,'1997-11-08',0,null,null);INSERTINTOxsVALUES('林雪',0,'1997-10-19',0,null,null);INSERTINTOxsVALUES('王新平',1,'1998-03-06',0,null,null);UPDATExsSETbz='通信工程轉(zhuǎn)入'WHERExm='周何駿';SELECT*FROMxs;說明:(a)VALUESxs表結(jié)構(gòu)定義的列的前后null填入。注意,nullnull屬性列。(b)如果采用默認(rèn)值,需要填入DEFAULT。(c)因?yàn)橛涗浺呀?jīng)存在,所以只能更新記錄列值或者改變原來值。如果插入的列數(shù)據(jù)不符合定義時(shí)的完整性要求,就會(huì)顯示錯(cuò)誤,插入記錄不會(huì)成功。例如:姓名(xm)='周何駿 ',null:字符串長度為5超過最大長度,列不能為空。另外,因?yàn)樵摿袨橹麈I,兩條記錄姓名不能相同。性別(xb)=2:xb01。出生時(shí)間(cssj)='1998-09-00':日期數(shù)據(jù)不正確;學(xué)分(xf)=10:超過范圍。INSERTINTOkc(kcm,xf)VALUES('計(jì)算機(jī)導(dǎo)論INSERTINTOkc(kcm,xf)VALUES('計(jì)算機(jī)導(dǎo)論',2),('計(jì)算機(jī)網(wǎng)絡(luò)',4),('Java',5);INSERTINTOkc(kcm,xf)VALUES('C++',4);INSERTINTOkc(kcm,xf)VALUES('大數(shù)據(jù)',3);INSERT語句可以同時(shí)插入多條記錄。#(#(b)#(a)林雪',50);INSERTINTOcj(kcm,xm,cjVALUES('計(jì)算機(jī)導(dǎo)論','周何駿',82);INSERTINTOcj(kcm,xm,cjVALUES('計(jì)算機(jī)網(wǎng)絡(luò)','徐鶴',85);INSERTINTOcj(kcm,xm,cjVALUES('C++','周何駿',82);INSERTINTOcj(kcm,xm,cjVALUES('計(jì)算機(jī)導(dǎo)論','王新平',65);SELECT*FROMcjORDERBYxm;INSERTINTOcj(kcm,xm,cj)VALUES('Java','周何駿',70),('Java','徐鶴',80),('Java','說明:VALUES(b)xm排序,所有學(xué)生的記錄同一個(gè)人的成績記錄排在一起。觸發(fā)器功能測試(1)插入觸發(fā)器(cj_insert_zxf) SELECTxm'姓名',zxf'總學(xué)分'FROMxs; 2所示。圖2插入觸發(fā)器累加學(xué)分 圖3新觸發(fā)器修改學(xué)分說明:表插入記錄前,zxf(總學(xué)分cj表插入記錄后,zxf(總學(xué)分)就會(huì)累加上所有成績>=60課程對(duì)應(yīng)的學(xué)分。INSERTINTOcj(kcm,xm,cj)VALUES('大數(shù)據(jù)','王新平',50);SELECTxm'姓名INSERTINTOcj(kcm,xm,cj)VALUES('大數(shù)據(jù)','王新平',50);SELECTxm'姓名',zxf'總學(xué)分'FROMxsWHERExm='王新平';UPDATEcjSETcj=60WHERExm='UPDATEcjSETcj=60WHERExm='王新平'ANDkcm='大數(shù)據(jù)';SELECTxm'姓名',zxf'總學(xué)分'FROMxsWHERExm='王新平';50修改為60,在xs表“王新平”的zxf增加了3(大數(shù)據(jù)課程學(xué)分,顯示如圖3所示。(3)刪除觸發(fā)器(cj_delete_zxf)DELETEFROMcjWHERExm='DELETEFROMcjWHERExm='王新平'ANDkcm='大數(shù)據(jù)';SELECTxm'姓名',zxf'總學(xué)分'FROMxsWHERExm='王新平';說明:王新平的zxf(總學(xué)分)減去了3。xskcxskc表記錄沒有定義任何參考完整性。INSERTINTOcj(kcm,xm,cj)VALUES('Java','郭一方',65);INSERTINTOcj(kcm,xm,cj)VALUES('人工智能','周何駿',82);cjxskc表記錄更新(UPDATE)參考完整性(wzx_xmwzx_kcm)約束,INSERTINTOcj(kcm,xm,cj)VALUES('Java','郭一方',65);INSERTINTOcj(kcm,xm,cj)VALUES('人工智能','周何駿',82);cjxskcxskc表中沒有“人工智能”記錄。實(shí)訓(xùn)5 MySQL數(shù)據(jù)庫準(zhǔn)備WindowsMySQL5.7mysql>SQL語句。也NavicatSQL語句執(zhí)SQL語Navicat看看執(zhí)行結(jié)果或者根據(jù)需要通過界面修改內(nèi)容。創(chuàng)建數(shù)據(jù)庫數(shù)據(jù)庫名稱:pxscj。字符集和相應(yīng)的排序規(guī)則:utf8SQL語句如下:CREATEDATABASEpxscjCREATEDATABASEpxscjDEFAULTCHARACTERSETutf8DEFAULTCOLLATEutf8_general_ci;Navicatpxscj1所示。創(chuàng)建學(xué)生表(xs)
圖1“新建數(shù)據(jù)庫”窗口學(xué)生表(xs)結(jié)構(gòu)如表1所示。表1 學(xué)生表(xs)結(jié)構(gòu)項(xiàng)目名列名數(shù)據(jù)類型不可空說明姓名xmchar(4)主鍵性別xbtinyint1男0女出生時(shí)間cssjdate總學(xué)分zxfint由成績表(cj)觸發(fā)器同步更新備注bztext照片zpblob);#();#(b)#(c)NOTNULLPRIMARYKEY,NOTNULLDEFAULT1CHECK(xbIN(1,0)),NOTNULL,NULL,NULL,NULLxm char(4)xb tinyint(1)cssj datezxf int(2)bz textzp blob#(a)USEpxscj;DROPTABLEIFEXISTSxs;CREATETABLExs(說明:(a)為了防止原來xs已經(jīng)存在,若存在xs表時(shí)先刪除它,CREATETABLExs才能執(zhí)行。xmb11或者0值。創(chuàng)建成績表(cj)成績表(cj)結(jié)構(gòu)如表2所示。表2 成績表(cj)結(jié)構(gòu)項(xiàng)目名列名數(shù)據(jù)類型不可空說明姓名xmchar(4)主鍵課程名kcmvarchar(10)主鍵成績cjtinyint范圍:0~100);#();#(a)#(b)PRIMARYKEY(xm,kcm),CHECK(cj>=0ANDcj<=100)NOTNULL,NOTNULL,NULL,DROPTABLEIFEXISTScj;CREATETABLEcj(xm char(4)kcm varchar(10)cj tinyint(1)說明:(a)因?yàn)橹麈I由(xm,kcm)列共同組成,所以只能在所有列定義后單獨(dú)定義。(b)僅僅涉及成績列(cj)完整性也可以在所有列后單獨(dú)定義。#(#(c)#(a)#(b)USEpxscj;INSERTINTOxsVALUES('周何駿',1,'1998-09-25',0,null,null);INSERTINTOxsVALUES('徐鶴',DEFAULT,'1997-11-08',0,null,null);INSERTINTOxsVALUES('林雪',0,'1997-10-19',0,null,null);INSERTINTOxsVALUES('王新平',1,'1998-03-06',0,null,null);UPDATExsSETbz='通信工程轉(zhuǎn)入'WHERExm='周何駿';SELECT*FROMxs;說明:(a)VALUESxs表結(jié)構(gòu)定義的列的前后null填入。注意,nullnull屬性列。(b)如果采用默認(rèn)值,需要填入DEFAULT。(c)因?yàn)橛涗浺呀?jīng)存在,所以只能更新記錄列值或者改變原來值。如果插入的列數(shù)據(jù)不符合定義時(shí)的完整性要求,就會(huì)顯示錯(cuò)誤,插入記錄不會(huì)成功。例如:姓名(xm)='周何駿 ',null:字符串長度為5超過最大長度,列不能為空。另外,因?yàn)樵摿袨橹麈I,兩條記錄姓名不能相同。性別(xb)=2:xb01。出生時(shí)間(cssj)='1998-09-00':日期數(shù)據(jù)不正確;學(xué)分(xf)=10:超過范圍。#(#(b)#(a)林雪',50);INSERTINTOcj(kcm,xm,cjVALUES('計(jì)算機(jī)導(dǎo)論','周何駿',82);INSERTINTOcj(kcm,xm,cjVALUES('計(jì)算機(jī)網(wǎng)絡(luò)','徐鶴',85);INSERTINTOcj(kcm,xm,cjVALUES('C++','周何駿',82);INSERTINTOcj(kcm,xm,cjVALUES('計(jì)算機(jī)導(dǎo)論','王新平',65);SELECT*FROMcjORDERBYxm;INSERTINTOcj(kcm,xm,cj)VALUES('Java','周何駿',70),('Java','徐鶴',80),('Java','說明:VALUES(b)xm排序,所有學(xué)生的記錄同一個(gè)人的成績記錄排在一起。實(shí)訓(xùn)5 Qt的安裝P5.1.1訪問Qt官網(wǎng)https://www.qt.io,點(diǎn)主頁右上角按鈕進(jìn)入“GetQt&QA”頁,找TryQtFrameworkand1DownloadQt申請(qǐng)2所示。圖1“TryQtFrameworkandTools”版塊圖2申請(qǐng)免費(fèi)賬號(hào)6位短信,在隨后出現(xiàn)的驗(yàn)證對(duì)話框輸3所示。圖3申請(qǐng)賬號(hào)成功后的頁面該頁面包含兩個(gè)方面信息:(1)提供在線安裝器下載。(2)提示用戶根據(jù)Qt官方發(fā)送的郵件鏈接盡快登錄驗(yàn)證,因?yàn)樵撴溄佑袝r(shí)效,使用后不能再用。進(jìn)入該鏈接網(wǎng)頁,如圖4完成Qt賬號(hào)登錄。(a) (b)圖4完成Qt賬號(hào)登錄P5.1.2Qt5.15安裝前要確保計(jì)算機(jī)是處于聯(lián)網(wǎng)狀態(tài)。(1)5Qt賬號(hào)(也就是剛剛申請(qǐng)的免費(fèi)賬號(hào),輸入完單擊“下一步”按鈕。圖5輸入賬號(hào)(2)QtQt-Qt安裝所需的元信息,進(jìn)入“ContributetoQtDevelopmentQt官方發(fā)送(或不發(fā)送)Qt使用的統(tǒng)計(jì)信息。單擊“下一步”按鈕。(4)在“安裝文件夾”頁顯示如圖6所示。圖6指定安裝目錄及安裝模式默認(rèn)安裝目錄為:Qtutomintallation(自定義安裝(組件)安裝。勾選底部“AsociatecommonfiletypeswithQtreato.Creator關(guān)聯(lián)。單擊“下一步”按鈕。(5)在“選擇組件”頁選擇要安裝的組件,如圖7所示。因?yàn)橐惭b的是Qt5.15,我們在界面中央?yún)^(qū)樹狀視圖的“Qt”節(jié)點(diǎn)下找到“Qt5.15.2”項(xiàng),展開,看到其包含的所有組件,只須選擇其中的部分進(jìn)行安裝。圖7選擇組件頁首先要選的是QtMSVC20154-biMSVC20192-biMSVC20194-biMinGW8.1.032-bi”和“MinGW8.1.064-bi”都是Qt的編譯器,Qt主流的編譯器就是MSVC與MinGW,本實(shí)訓(xùn)開發(fā)使用的是MinGW編譯器,筆者操作系統(tǒng)是64位的indows10專業(yè)版,故勾選“MinGW8.1.04-bi其他模塊大家可根據(jù)實(shí)際應(yīng)用開發(fā)需要靈活選擇。(6)在“許可協(xié)議”頁,選中“Ihavereadandagreetothetermscontainedinthelicenseagreements.”接受許可協(xié)議,單擊“下一步”按鈕。(7)在“開始菜單快捷方式”頁可命名Qt啟動(dòng)菜單名,這里保持默認(rèn)名,單擊“下一步”按鈕。(8)在“準(zhǔn)備安裝”頁顯示需要的磁盤空間,點(diǎn)“安裝”按鈕,開始在線安裝Qt5.15。安裝的過程通過進(jìn)程條顯示,安裝速度取
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年企業(yè)文員崗位工作標(biāo)準(zhǔn)及流程合同3篇
- 2025中國鐵塔總部直屬單位春季校園招聘18人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025中國移動(dòng)上海公司招聘高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025中國電信上海公司校園招聘高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025中國民航科學(xué)技術(shù)研究院公開招聘應(yīng)屆畢業(yè)生11人(第二期)高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025中國農(nóng)業(yè)科學(xué)院農(nóng)業(yè)信息研究所公開招聘10人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025下半年黑龍江通信管理局事業(yè)單位招聘6人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025下半年江蘇鹽城市阜寧縣事業(yè)單位招聘工作人員13人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025下半年安徽省馬鞍山含山縣事業(yè)單位招聘13人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025下半年四川廣元市利州區(qū)考試招聘事業(yè)單位工作人員76人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 韓式皮膚管理培訓(xùn)
- 艾滋病預(yù)防知識(shí)講座
- 八年級(jí)道德與法治開學(xué)摸底考試卷(天津?qū)S茫ù痤}卡)A4版
- 《4 平平安安回家來》 說課稿-2024-2025學(xué)年道德與法治一年級(jí)上冊統(tǒng)編版
- 2024中考英語真題分類匯編-代詞
- 第九版內(nèi)科學(xué)配套課件-8-骨髓增生異常綜合征(MDS)
- 水利信息化數(shù)據(jù)中心及軟件系統(tǒng)單元工程質(zhì)量驗(yàn)收評(píng)定表、檢查記錄
- 部編版2023-2024學(xué)年六年級(jí)上冊語文期末測試試卷(含答案)2
- 應(yīng)用PDCA提高醫(yī)療安全不良事件的上報(bào)率
- 2024年資格考試-高校教師崗前培訓(xùn)考試近5年真題集錦(頻考類試題)帶答案
- 新聞宣傳報(bào)道先進(jìn)單位(集體)申報(bào)材料
評(píng)論
0/150
提交評(píng)論