




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
MySQL數據庫基礎與實踐錯誤!文檔中沒有指定樣式的文字。 PAGE16實踐與練習答案第1章1.選擇題1-5BBACA6-10ACCBB2.概念題數據庫(DstabaseDB)是“按照某種數據結構對數據進行組織、存儲和管理的容器”,簡單的說就是用來存儲、管理數據的容器。數據庫系統(DstabaseSystem,DBS)是指在計算機中引入數據庫后的系統,一般由數據庫、數據庫管理系統、應用程序、數據庫管理員組成。數據庫管理系統(DstabaseManagementSystem,DBMS)是一個管理、控制數據庫容器中各種數據庫對象的系統軟件。使用關系模型對數據進行組織、存儲和管理的數據庫稱為關系數據庫,關系數據庫系統是支持關系數據模型的數據庫系統。表1-1SQL功能及包含的主要動詞SQL功能動詞數據定義CREATE、DROP、ALTER數據查詢SELECT數據操縱INSERT、UPDATE、DELETE數據控制GRANT、REVOKE數據庫設計分為如下6個階段:需求分析階段、概念結構設計階段、邏輯結構設計階段、數據庫物理結構設計階段、數據庫實施階段以及數據庫運行于維護階段。各階段內容(略)。E-R圖中的實體表示現實世界具有相同屬性描述的事物的集合,不是某一個具體事物,而是一類事物的統稱。E-R圖中的實體通常使用矩形表示。E-R圖中的屬性通常表示實體的某種特征,也可以使用屬性表示實體間關系的特征。一個實體通常包含多個屬性,每個屬性由屬性名唯一標記,畫在橢圓內。3.操作題(1)學生:學好、姓名、年齡、性別、班級名班級:班級名、班主任、班級人數(2)一個學生只能屬于一個班級,一個班級可以有很多學生,多以班級和學生之間是1對多的關心,即1:n。(3)擁有(4)E-R圖如下:第2章MySQL數據庫概述 一、選擇題DCDBBBBABC二、填空題1.UNIQUE2.PRIMARYKEY3.33064.ROOT5.SHOWDATABASES;三、操作題(1)createdatabaseschool;(2)useschool;createtablestudents(s_idchar(8)notnullprimarykey,s_namevarchar(10)notnull,s_sexchar(2), s_birthdatetime);(3)altertablestudentsadds_phonevarchar(20)notnull;(4)altertablestudentsdrops_birth;(5)droptablestudents;(6)dropdatabaseschool;第3章MySQL管理表記錄實踐與練習單選題:AABABBBADC概念題:MySQL中整數類型有幾種?每種類型所占用的字節數為多少?MySQL中整數類型有:TINYINT、SMALLINT、MEDIUMINT、INT(INTEGER)和BIGINT。每種整數類型所占用字節數如表3-1所示。表3-1整數類型的字節數類型字節數TINYINT1字節SMALLINT2字節MEDIUMINT3字節INT(INTEGER)4字節BIGINT8字節MySQL中日期類型的種類及其取值范圍是什么?日期時間類型包括:DATE、TIME、DATETIME、TIMESTAMP和YEAR。DATE表示日期,默認格式為YYYY-MM-DD;TIME表示時間,默認格式為HH:MM:SS;DATETIME和TIMESTAMP表示日期和時間,默認格式為YYYY-MM-DDHH:MM:SS;YEAR表示年份。日期時間類型及其表示范圍如表3-3所示。表3-2日期時間類型及其取值范圍類型最小值最大值DATE1000-01-019999-12-31TIME-838:59:59838:59:59DATETIME1000-01-0100:00:009999-12-3123:59:59TIMESTAMP1970-01-0108:00:012037年的某個時刻YEAR19012155MySQL中復合數據類型有幾種?MySQL中的復合數據類型包括:ENUM枚舉類型和SET集合類型。ENUM類型只允許從集合中取得某一個值,SET類型允許從集合中取得多個值。ENUM類型的數據最多可以包含65535個元素,SET類型的數據最多可以包含64個元素。使用什么命令可以查看MySQL服務器實例支持的字符集信息?使用MySQL命令“showcharacterset;”即可以查看當前MySQL服務實例支持的字符集、字符集的默認排序規則、字符集占用的最大字節長度等信息。使用什么命令可以查看MySQL服務器實例使用的字符集信息?使用MySQL命令“showvariableslike‘character%’;”可以查看當前服務實例使用的字符集信息。character_set_client:MySQL客戶機的字符集,默認安裝MySQL時,該值為latin1。character_set_connection:數據通信鏈路的字符集,當MySQL客戶機向服務器發送請求時,請求數據以該字符集進行編碼。默認安裝MySQL時,該值為latin1。character_set_database:數據庫字符集,默認安裝MySQL時,該值為latin1。character_set_filesystem:MySQL服務器文件系統的字符集,該值固定為binary。character_set_results:結果集的字符集,MySQL服務器向MySQL客戶機返回執行結果時,執行結果以該字符集進行編碼。默認安裝MySQL時,該值為latin1。character_set_server:MySQL服務實例字符集,默認安裝MySQL時,該值為latin1。character_set_system:元數據(字段名、表名、數據庫名等)的字符集,默認值為utf8。操作題:使用SQL語句完成以下操作:創建數據庫及數據表,并在表中插入雇員信息。createdatabaseemployees_test;useemployees_test;createtableemployees(employee_idchar(4)primarykey,employee_namevarchar(20)notnull,employee_sexvarchar(4)notnull,departmentvarchar(20)notnull,salarydecimal(10,2)notnull);insertintoemployeesvalues('0001','劉衛平','男','開發部',5500.00);insertintoemployeesvalues('0002','馬東','男','開發部',6200.00);insertintoemployeesvalues('0003','張明華','女','銷售部',4500.00);insertintoemployeesvalues('0004','郭文斌','男','財務部',5000.00);insertintoemployeesvalues('0005','肖海燕','女','開發部',6000.00);修改“開發部”雇員的薪水,修改后其薪水增加20%。updateemployeessetsalary=salary+salary*0.2wheredepartment='開發部';將雇員表中性別為“男”的所有雇員信息復制到employee_copy表中。createtableemployee_copylikeemployees;insertintoemployee_copyselect*fromemployeeswhereemployee_sex='男';將employee_copy表中所有記錄清空。truncateemployee_copy;第4章檢索表記錄 1.選擇題BDBCAB2.填空題(1)SUM() (2)ORDERBYNameDESC(3)SELECT(4)WHERENameISNULL(5)-3.操作題(1)SELECT*FROMBookInfoWHEREB_NameLIKE'%MySQL%';(2)SELECT*FROMBookInfoWHEREB_Publisher='機械工業出版社'ANDB_Date>'2020-01-01';(3)SELECT*FROMBookInfoORDERBYB_MarketPriceDESC,B_Date;(4)SELECTU_ID,SUM(O_TotalPrice)訂單總額FROMOrdersGROUPBYU_ID;(5)SELECTO_Time,SUM(O_TotalPrice)訂單總額FROMOrdersGROUPBYO_TimeORDERBYSUM(O_TotalPrice)DESC;(6)SELECTBI.B_ID,BI.B_NameFROMBookInfoBIINNERJOINOrderDetailsODONBI.B_ID=OD.B_IDWHEREOD.O_IDIN(SELECTO.O_IDFROMOrdersOINNERJOINUsersUONO.U_ID=U.U_IDWHEREU.U_Name='lijuan');(7)UPDATEOrdersSETO_Status='1'WHERE'linli'=(SELECTU_NameFROMUsersWHEREUsers.U_ID=Orders.U_ID);實踐與練習答案第5章1.選擇題1-5DBCAA6-10DBAAA2.概念題(1)視圖是一個虛擬的表,其結構和數據是建立在對表的查詢基礎上的,也可以說視圖的內容由查詢定義,而視圖中的數據并不像表、索引那樣需要占用存儲空間,視圖中保存的僅僅是一條select語句,其數據來自于視圖所引用的數據庫表或者其他視圖,對視圖的操作與對表的操作一樣,可以對其進行查詢、修改、刪除。(2)保護數據安全、簡化操作、使分散數據集中、提高數據的邏輯獨立性。(3)觸發器定義了一系列操作,這一系列操作稱為觸發程序,當觸發事件發生時,觸發程序會自動運行。觸發器主要用于監視某個表的插入(insert)、更新(update)和刪除(delete)等更新操作,這些操作可以分別激活該表的insert、update和delete類型的觸發程序運行,從而實現數據的自動維護。(4)觸發程序是與表有關的命名數據庫對象,當表上出現特定事件時,將激活該對象在MySQL中,可以使用createtrigger語句創建觸發器,具體語法格式為:createtriggertrigger_nametrigger_timetrigger_eventontbl_nameforeachlowtrigger_stmt與其他數據庫對象一樣,可以使用drop語句將觸發器從數據庫中刪除,語法格式為:droptrigger[schema_name.]trigger_name3.操作題(1)創建一個表tb,其中只有一列a,在表上創建一個觸發器,每次插入操作時將用戶變量count值增加1。createtabletb(aint);set@count=0;createtriggertb1_insertafterinsertontbforeachrowset@count=@count+1;(2)在(1)基礎上,創建一個由delete觸發多個執行語句的觸發器tb_delete,每次刪除記錄時,@count記錄刪除的個數。set@old_value=null,@count=0;delimiter$$createtriggertb_deleteafterdeleteontbforeachrowbeginset@old_value=old.a;set@count=@count+1;end$$delimiter;(3)定義了一個update觸發程序,用于檢查更新每一行時將使用的新值,并更改值,使之位于0~100內。(提示:它必須是before觸發程序,因為需要將值用于更新行之前對其進行檢查。)delimiter$$createtriggerudp_checkbeforeupdateontbforeachrowbeginifnew.a<0thensetnew.a=0;elseifnew.a>1100thensetnew.a=100;endif;end;$$delimiter;第6章事務管理實踐與練習單選題:BCBCD(6)-(13)ABBBCDAD簡答題:事務的開啟、回滾和提交命令是什么?使用命令“starttransaction;”可以開啟一個事務,該命令開啟事務的同時會隱式地關閉MySQL自動提交。當MySQL關閉自動提交后,可以使用COMMIT命令來完成事務的提交。使用rollback命令可以完成事務的回滾,事務的回滾可以撤銷未提交的事務所做的各種修改操作,并結束當前這個事務。事務的四大特性及其含義?數據庫中的事務具有ACID屬性,即原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)和持永性(Durability)。原子性意味著每個事務都必須被認為是一個不可分割的單元,事務中的操作必須同時成功事務才是成功的。如果事務中的任何一個操作失敗,則前面執行的操作都將回滾,以保證數據的整體性沒有受到影響。事務的一致性保證了事務完成后,數據庫能夠處于一致性狀態。如果事務執行過程中出現錯誤,那么數據庫中的所有變化將自動地回滾,回滾到另一種一致性狀態。在MySQL中一致性主要由MySQL的日志機制處理,它記錄了數據庫的所有變化,為事務恢復提供了跟蹤記錄。如果系統在事務處理中發生錯誤,MySQL恢復過程將使用這些日志來發現事務是否已經完全成功地執行,是否需要返回。一致性保證了數據庫從不返回一個未處理完的事務。事務的隔離性確保多個事務并發訪問數據時,各個事務不能相互干擾。系統中的每個事務在自己的空間執行,并且事務的執行結果只有在事務執行完才能看到。即使系統中同時執行多個事務,事務在完全執行完之前,其他事務是看不到結果的。在多數事務系統中,可以使用頁級鎖定或行級鎖定來隔離不同事務的執行。事務的持久性意味著事務一旦提交,其改變會永久生效,不能再被撤銷。即使系統崩潰,一個提交的事務仍然存在。MySQL通過保存所有行為的日志來保證數據的持久性,數據庫日志記錄了所有對于表的更新操作。事務的隔離級別及其含義?事務的隔離級別是事務并發控制的整體解決方案,是綜合利用各種類型的鎖機制解決并發問題。每個事務都有一個隔離級,它定義了事務彼此之間隔離和交互的程度。在MySQL中提供了4種隔離級別:readuncommitted(讀取未提交的數據)、readcommitted(讀取提交的數據)、repeatableread(可重復讀)和serializable(串行化)。其中,readuncommitted的隔離級別最低,serializable的隔離級別最高,4種隔離級別逐漸增加。readuncommitted(讀取未提交的數據):提供了事務之間的最小隔離程度,處于這個隔離級別的事務可以讀到其他事務還沒有提交的數據。readcommitted(讀取提交的數據):處于這一級別的事務可以看見已經提交事務所做的改變,這一隔離級別要低于repeatableread(可重復讀)。repeatableread(可重復讀):這是MySQL默認的事務隔離級別,它確保在同一事務內相同的查詢語句其執行結果總是相同的。serializable(串行化):這是最高級別的隔離,它強制事務排序,使事務一個接一個地順序執行。什么是臟讀、不可重復讀和幻讀?一個事務可以讀到另一個事務未提交的數據則為臟讀。如果將事務的隔離級別設置為readuncommitted,則可能出現臟讀、不可重復讀和幻讀等問題。將事務的隔離級別設置為readcommitted則可以避免臟讀,但可能出現不可重復讀以及幻讀等問題。在同一個事務中,兩條相同的查詢語句其查詢結果不一致。當一個事務訪問數據時,另一個事務對該數據進行修改并提交,導致第一個事務兩次讀到的數據不一樣。當事務的隔離級別設置為readcommitted時可以避免臟讀,但可能會出現不可重復讀。將事務的隔離級別設置為repeatableread,則可以避免臟讀和不可重復讀。幻讀是指當前事務讀不到其他事務已經提交的修改。將事務的隔離級別設置為repeatableread可以避免臟讀和不可重復讀,但可能會出現幻讀。將事務的隔離級別設置為serializable,可以避免幻讀。第7章MySQL連接器JDBC和連接池一、選擇題BABCCCBBAB二、簡答題1.(1)加載JDBC驅動程序;(2)創建數據庫連接;(3)創建Statement對象;(4)執行SQL語句;(5)處理執行SQL語句的返回結果;(6)關閉連接。2.(1)createQuery:針對數據庫Select查詢;(2)createUpdate:針對數據庫新增、刪除、修改操作。3.一種是使用Statement對象提供的帶參數的executeQuery()方法,另一種是通過PreparedStatement對象提供的無參數的executeQuery()方法。4.數據庫連接池就是為數據庫連接建立一個“緩沖池”,預先在“緩沖池”中放入一定數量的連接。當需要建立數據庫連接時,只需從“緩沖池”中取出一個,使用完畢之后再放回去。在Tomcat中配置連接池:(1)將MySQL數據庫的JDBC驅動程序包復制到Tomcat安裝路徑下的lib文件夾中。(2)配置數據源。配置Tomcat根目錄下conf文件夾中的文件context.xml,代碼如下:<Context><Resourcename="jdbc/datasource"auth="Container"type="javax.sql.DataSource"driverClassName="com.mysql.jdbc.Driver"url="jdbc:mysql://localhost:3306/bookstore"username="root"password="123456"maxActive="8"maxIdle="4"maxWait="6000"/></Context>5.(1)建立與數據庫的連接。(2)向數據庫發送SQL語句。(3)處理從數據庫返回的結果。第8章Hibernate框架介紹選擇題:BAB DC B B DCA簡答題:1.描述Hibernate工作流程Hibernate工作過程如下:(1)應用程序先調用Configuration類,實例化Configuration類,該類讀取Hibernate的核心配置文件hibernate.cfg.xml及映射文件XX.hbm.xml中的信息。(2)創建SessionFactory。通過Configuration對象讀取配置文件信息,并創建SessionFactory,并將Configuration對象中的所有配置文件信息存入SessionFactory內存中。(3)創建Session對象。Session是通過SessionFactory對象的openSession()方法創建Session,這樣就相當于創建了一個數據庫連接的session。(4)創建Transaction實例,即開啟一個事務。通過Session對象的beginTransaction()方法即可開啟一個事務,利用這的開啟的事務,便可以對數據庫進行各種持久化操作。(5)利用Session對象通過增刪改查等方法對數據庫進行各種持久化操作。(6)提交事務。將第(4)步打開的事務通過mit()方法,進行事務的提交(7)關閉Session。斷開與數據庫的連接。(8)關閉SessionFactory。簡述Hibernate持久化操作的主要步驟。Hibernate持久化操作的主要步驟下面四個步驟:導入相關Hibernate的jar包、創建數據庫及表、創建實體類(持久化類)、配置映射文件XX.hbm.xml、配置主配置文件hibernate.cfg.,xml、編寫數據庫操作(增刪改查)。舉例說明Hibernate的檢索方式主要有幾種方式:一種get和load方式,一種是使用Query對象和HQL語句進行查詢,一種使用criteria進行查詢。具體事例見課本。第9章事件和數據管理實踐與練習答案1.填空題(1)GLOBALevent_scheduler(2)事件(3)createuser(4)revoke2.選擇題(1)D(2)B(3)A(4)A(5)C(6)A(7)B(8)A(9)A(10)D3.概念題(1)查看用戶的語法格式如下:select*frommysql.userwherehost=’host_name’anduser=’user_name’刪除用戶的語法:使用dropuser語句可以刪除普通用戶,dropuser語句刪除用戶必須有dropuser權限,語法規則如下:dropuseruser[,user]…(2)使用mysqladmin命令來修改密碼,語法規則如下:mysqladmin-uusernameppasswordpassword為關鍵字使用set語句來修改密碼,語法規則如下:setpassword[for’username’@’hostname’]=password(‘new_password’);如果不加[for’username’@’hostname’],則表明修改當前用戶密碼,如果加了[for’username’@’hostname’],則表明修改當前主機上的特定用戶的密碼。(3)給予用戶授權可以使用grant語句,語法格式如下:grantpriv_type[(column_list)][,priv_type[(column_list)]]…on[object_type]priv_leveltouser_specification[,user_specification]…[withwith_option…](4)當需要撤銷一個用戶的權限,但不從user表中刪除該用戶,可以使用revoke語句,語法格式如下:revokepriv_type[(column_list)][,priv_type[(column_list)]]…on[object_type]priv_levelfromuser[,user]…或者revokeallprivieges,grantoptionfromuser[,user]…4.操作題selectcurdate(),current_date(),curtime(),current_time(),now(),current_timestamp(),localtime(),sysdate()\G第10章常見函數和存儲過程實踐與練習答案1.填空題(1)GLOBALevent_scheduler(2)事件2.概念題(1)查看用戶的語法格式如下:select*frommysql.userwherehost=’host_name’anduser=’user_name’刪除用戶的語法:使用dropuser語句可以刪除普通用戶,dropuser語句刪除用戶必須有dropuser權限,語法規則如下:dropuseruser[,user]…(2)使用mysqladmin命令來修改密碼,語法規則如下:mysqladmin-uusernameppasswordpassword為關鍵字使用set語句來修改密碼,語法規則如下:setpassword[for’username’@’hostname’]=password(‘new_password’);如果不加[for’username’@’hostname’],則表明修改當前用戶密碼,如果加了[for’username’@’hostname’],則表明修改當前主機上的特定用戶的密碼。(3)給予用戶授權可以使用grant語句,語法格式如下:grantpriv_type[(column_list)][,priv_type[(column_list)]]…on[object_type]priv_leveltouser_specification[,user_specification]…[withwith_option…](4)當需要撤銷一個用戶的權限,但不從user表中刪除該用戶,可以使用revoke語句,語法格式如下:revokepriv_type[(column_list)][,priv_type[(column_list)]]…on[object_type]priv_levelfromuser[,user]…或者revokeallprivieges,grantoptionfromuser[,user]…3.操作題selectcurdate(),current_date(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 健身產業投資協議
- 《深入理解Bootloader:課件概覽》
- 授課教師石冬劍66課件
- 《人際交往藝術》課件
- 雙語列車長非正常事件服務技巧課件
- 鐵路路基與軌道課件
- 標準體育場館租賃合同
- 房產擔保借款合同
- 世紀英才文化課件五上
- 《房地產基礎》課件 情境二 教你選對小區
- 護理巡視巡查管理制度
- 沈陽華海錕泰投資有限公司招聘筆試沖刺題2025
- 高分子化學8-開環聚合
- 給小學生講醫療知識
- ISO9001質量管理體系培訓課件
- 2024年科技例會管理制度(4篇)
- 云肩完整版本
- 汽車經紀人服務行業市場現狀分析及未來三至五年行業預測報告
- 《Python語言程序設計》課件-第四章(中英文課件)
- 影視劇拍攝與制作合同
- 如何編制解決方案
評論
0/150
提交評論