版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
數(shù)據(jù)庫技術(shù)I(2015年春)序號:數(shù)據(jù)庫技術(shù)I實(shí)驗(yàn)報(bào)告系別:計(jì)算機(jī)科學(xué)與技術(shù)班級:計(jì)15姓名:周洪巖學(xué)號:2015331120103成績:評語:指導(dǎo)教師簽字:日期:實(shí)驗(yàn)一數(shù)據(jù)庫的建立及數(shù)據(jù)維護(hù)實(shí)驗(yàn)?zāi)康?.學(xué)會使用企業(yè)管理器和查詢分析器創(chuàng)建數(shù)據(jù)庫、創(chuàng)建基本表和查看數(shù)據(jù)庫屬性。2.學(xué)會使用企業(yè)管理器和查詢分析器向數(shù)據(jù)庫輸入數(shù)據(jù),修改數(shù)據(jù),刪除數(shù)據(jù)的操作。3.在SQLyogEnt查詢分析器中完成復(fù)雜查詢及視圖定義。實(shí)驗(yàn)環(huán)境及要求數(shù)據(jù)庫實(shí)驗(yàn)要求如下環(huán)境,服務(wù)器端:Windows2000/xp、數(shù)據(jù)庫服務(wù)器(Mysql5.1)、SQLyogEnt。要求:根據(jù)以上數(shù)據(jù)字典,畫出該數(shù)據(jù)庫的ER圖,完成數(shù)據(jù)庫的概念結(jié)構(gòu)設(shè)計(jì);將ER圖轉(zhuǎn)換成邏輯關(guān)系模式,判斷邏輯數(shù)據(jù)庫模式中的各個(gè)關(guān)系(表)是第幾范式,如果沒有達(dá)到第三范式或BC范式,請進(jìn)行規(guī)范化。完成數(shù)據(jù)庫的邏輯結(jié)構(gòu)設(shè)計(jì)。通過企業(yè)管理器或者查詢分析器實(shí)現(xiàn)關(guān)系模式的存儲,包括確定主碼、外部碼等。通過企業(yè)管理器或查詢分析器向數(shù)據(jù)庫中輸入數(shù)據(jù)。打開數(shù)據(jù)庫Mysql的查詢分析器,用SQL語言完成以下語句。并通過實(shí)驗(yàn)結(jié)果驗(yàn)證查詢語言的正確性,將每個(gè)SQL語言及結(jié)果存盤,以備老師檢查。求全體學(xué)生的學(xué)號、姓名和出生年份。求每個(gè)系的學(xué)生總?cè)藬?shù)并按降序排列。求選修了課程號為002或003的學(xué)生的學(xué)號、課程名和成績。檢索選修某課程的學(xué)生人數(shù)多于3人的教師姓名。查詢所有未選課程的學(xué)生姓名和所在系。求每個(gè)同學(xué)的課程成績的最高分,查詢結(jié)果項(xiàng)包括:學(xué)生姓名、課程號及最高分。求所有講授數(shù)據(jù)結(jié)構(gòu)課程的教師姓名查詢所有選修了李正科老師的課程的學(xué)生信息新建一個(gè)關(guān)系表S1(SNO,SNAME,SD,SA),其字段類型定義與Student表中的相應(yīng)字段(SNO,SNAME,SDEPT,SAGE)的數(shù)據(jù)類型定義相同。將表Student中在計(jì)算機(jī)系‘CS’的學(xué)生數(shù)據(jù)插入到表S1中。建立計(jì)算機(jī)系的學(xué)生的視圖STUDENT_CS。利用視圖STUDENT_CS,將學(xué)生的001號課程的成績提高5分實(shí)驗(yàn)步驟及結(jié)果1、SQLyogEnt使用1.啟動SQLyogEnt服務(wù)軟件:輸入MySql主機(jī)地址、用戶名、密碼,點(diǎn)擊“連接”按鈕,顯示連接已連接的數(shù)據(jù)庫。2.在Mysql中建立數(shù)據(jù)庫:在菜單欄上點(diǎn)擊“數(shù)據(jù)庫”,彈出數(shù)選項(xiàng)菜單中選擇“創(chuàng)建數(shù)據(jù)庫”,輸入數(shù)據(jù)庫名、選擇數(shù)據(jù)庫字符集、數(shù)據(jù)庫校對規(guī)則,點(diǎn)擊創(chuàng)建。2、查詢分析器的使用在“文件”菜單中選擇新建>使用當(dāng)前連接查詢,點(diǎn)擊使用當(dāng)前連接查詢后,出現(xiàn)新的工作區(qū)窗口,輸入sql語句。點(diǎn)擊執(zhí)行按鈕,出現(xiàn)查詢結(jié)果窗口。3、程序編寫與結(jié)果1.SELECTSname,Sno,2015-Sage'YearofBirth:'FROMStudent;2.SELECTSdept,COUNT(*)AS總?cè)藬?shù)FROMStudentGROUPBYSdeptORDERBYSdept;3.SELECTc.SNO,s.SNAME,c.GRADEFROMstudents,scorecWHEREc.SNO=s.SNOANDc.CNOIN('002',003);4.SELECTt.TNAMEFROMteachert,scoresWHEREt.CNO=s.CNOGROUPBYt.TNAMEHAVINGCOUNT(s.SNO)>35.SELECTt.SNAME,t.SDEPTFROMstudenttWHEREt.SNONOTIN(SELECTst.SNOFROMstudentst,scorescWHEREst.SNO=sc.SNO)6.SELECTst.SNAME,sc.CNO,MAX(sc.GRADE)AS'最高分'FROMstudentst,scorescWHEREst.SNO=sc.SNOGROUPBYst.SNO7.SELECTc.CNO,t.TNAMEFROMcoursec,teachertWHEREc.CNAME='數(shù)據(jù)結(jié)構(gòu)'ANDc.CNO=t.CNO8.SELECTs.*,c.CNO,t.TNAMEFROMscorec,teachert,studentsWHEREt.TNAME='李正科'ANDc.CNO=t.CNOANDc.SNO=s.SNO9.DROPTABLEIFEXISTS`S1`;CREATETABLE`S1`(`SNO`VARCHAR(10)NOTNULLCOMMENT'學(xué)號',`SNAME`VARCHAR(20)DEFAULTNULLCOMMENT'姓名',`SD`VARCHAR(50)DEFAULTNULLCOMMENT'系別',`SA`INT(4)UNSIGNEDZEROFILLDEFAULTNULLCOMMENT'年齡',PRIMARYKEY(`SNO`))ENGINE=INNODBDEFAULTCHARSET=utf8;INSERTINTOS1(SNO,SNAME,SD,SA)SELECTs.SNO,s.SNAME,s.SDEPTASSD,s.SAGEASSAFROMstudentsWHEREs.SDEPT='CS';10.CREATEVIEWV_STUDENT_CSASSELECTs.SNO,s.SNAME,s.SSEX,s.SDEPT,s.SAGE,c.GRADEFROMstudents,scorecWHEREs.SNO=c.SNO4、ER圖實(shí)驗(yàn)中的問題及解決方法代碼編寫時(shí)總是忘記用英文符號,導(dǎo)致程序出現(xiàn)錯(cuò)誤。檢查之后改正。在使用select語句時(shí),沒有將列名明確,如將student.sno寫成sno導(dǎo)致錯(cuò)誤。在查過書上的資料后改正。實(shí)驗(yàn)總結(jié)通過本次實(shí)驗(yàn),復(fù)習(xí)了SQL數(shù)據(jù)庫的用法,表,視圖等操作。練習(xí)了對SQL查詢語句的編寫和調(diào)試,為今后進(jìn)一步學(xué)習(xí)數(shù)據(jù)庫打下了基礎(chǔ)。實(shí)驗(yàn)二B/S結(jié)構(gòu)的數(shù)據(jù)庫編程一、實(shí)驗(yàn)?zāi)康膶W(xué)會使用Web服務(wù)器,tomcat7.0發(fā)布應(yīng)用程序。學(xué)會在IE瀏覽器中查看JSP網(wǎng)頁的執(zhí)行結(jié)果掌握J(rèn)SP+Servlet+JDBC技術(shù)實(shí)現(xiàn)簡單的動態(tài)網(wǎng)頁的制作。二、實(shí)驗(yàn)環(huán)境及要求 數(shù)據(jù)庫實(shí)驗(yàn)要求如下環(huán)境,服務(wù)器端:Windows7、數(shù)據(jù)庫服務(wù)器(MySql5.6.24)、Web服務(wù)器(tomcat7.0)和JSP??蛻舳耍篒E9.0要求:通過一門編程工具(eclipse)編寫訪問數(shù)據(jù)庫的應(yīng)用程序,編程序設(shè)計(jì)良好的一個(gè)人機(jī)交互界面,列出實(shí)驗(yàn)一中的查詢,將“實(shí)驗(yàn)一”中的10個(gè)數(shù)據(jù)庫查詢語句的結(jié)果顯示。三、實(shí)驗(yàn)步驟及結(jié)果1、新建工程并配置數(shù)據(jù)庫連接(1)在桌面“計(jì)算機(jī)”圖標(biāo)上右鍵單擊“管理”,選擇左側(cè)的“服務(wù)和應(yīng)用程序”,雙擊右側(cè)欄目中“服務(wù)”。找到“MySql”雙擊啟動數(shù)據(jù)庫服務(wù)。(2)打開eclipse,在左側(cè)空白欄處,鼠標(biāo)右鍵單擊,選擇【New】,接下來選擇【W(wǎng)ebProject】,輸入工程名,暫且叫【JdbcTest】,點(diǎn)擊【finish】。工程新建完畢。(3)在工程下找到WebRoot->WEB-INF->lib目錄,將需要的驅(qū)動及開發(fā)包放入其中。mysql-connector-java-5.1.17-bin.jar2、程序編寫與結(jié)果(1)數(shù)據(jù)連接類編寫packageutil;publicclassJdbcUtil{ static{ try{ //數(shù)據(jù)庫驅(qū)動名 StringdriverName="com.mysql.jdbc.Driver"; //通過反射得到數(shù)據(jù)庫驅(qū)動類 Class.forName(driverName); }catch(Exceptione){ e.printStackTrace(); } } //得到連接數(shù)據(jù)庫 publicstaticConnectiongetConnection(){ Connectioncon=null; try{ //數(shù)據(jù)庫位置 Stringurl="jdbc:mysql://localhost/task?useUnicode=true&characterEncoding=utf8"; //數(shù)據(jù)庫用戶名 Stringusername="root"; //數(shù)據(jù)庫密碼 Stringpwd="123456"; //得到數(shù)據(jù)庫連接 con=DriverManager.getConnection(url,username,pwd); }catch(Exceptione){ e.printStackTrace(); } //返回?cái)?shù)據(jù)庫連接 returncon; } /* *關(guān)閉結(jié)果集,連接 */ publicstaticvoidclose(ResultSetrs,Statementstmt,Connectioncon){ try{ if(rs!=null) rs.close(); }catch(Exceptionex){ ex.printStackTrace(); } try{ if(stmt!=null) stmt.close(); }catch(Exceptionex){ ex.printStackTrace(); } try{ if(con!=null) con.close(); }catch(Exceptionex){ ex.printStackTrace(); } }}(2)實(shí)體類編寫packageentity;/***學(xué)生表*/publicclassStudent{ //學(xué)生編號 privateStringsno; //學(xué)生名稱 privateStringsname; //性別 privateStringssex;//所在系別 privateStringsdept; //學(xué)生年齡 privateintsage; publicStringgetSno(){ returnsno; } publicvoidsetSno(Stringsno){ this.sno=sno; } publicStringgetSname(){ returnsname; } publicvoidsetSname(Stringsname){ this.sname=sname; } publicStringgetSsex(){ returnssex; } publicvoidsetSsex(Stringssex){ this.ssex=ssex; } publicStringgetSdept(){ returnsdept; } publicvoidsetSdept(Stringsdept){ this.sdept=sdept; } publicintgetSage(){ returnsage; } publicvoidsetSage(intsage){ this.sage=sage; }}(3)數(shù)據(jù)庫實(shí)現(xiàn)類編寫packagedao.Impl;/**學(xué)生接口的實(shí)現(xiàn)類*/publicclassStudentsDaoImplimplementsStudentDao{ Stringsql=null; PreparedStatementps=null;ResultSetrs=null;Studentstudent=null;/**顯示全部的學(xué)生信息*/ publicList<Student>seachStudent(Connectioncon){ //定義List集合 List<Student>list=newArrayList<Student>(); //查詢語句 sql="select*fromstudent"; try{ //預(yù)編譯sql語句 ps=con.prepareStatement(sql); //得到查詢后的結(jié)果集 rs=(ResultSet)ps.executeQuery(); while(rs.next()){ //將機(jī)結(jié)果集封裝成學(xué)生對象 student=newStudent(rs.getString("sno"),rs.getString("sname"),rs.getString("ssex"),rs.getString("sdept"),rs.getInt("sage")); //加入集合中 list.add(student); } }catch(SQLExceptione){e.getMessage(); } //得到查詢結(jié)果集 returnlist; }}(4)測試接口類實(shí)現(xiàn)類編寫,并執(zhí)行測試數(shù)據(jù)連接packagetest;publicclassTestStudent{ publicstaticvoidmain(String[]args){ Connectioncon=(Connection)JdbcUtil.getConnection(); StudentsDaoImplss=newStudentsDaoImpl(); List<Student>stList=ss.seachStudent(con); for(Students:stList){ System.out.println(s.toString()); } }}執(zhí)行測試類結(jié)果:(5)servlet轉(zhuǎn)發(fā)類編寫packageservlet;publicclassStudentServletextendsHttpServlet{ privatestaticfinallongserialVersionUID=1L; publicvoidservice(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ //得到連接數(shù)據(jù)庫 Connectioncon=(Connection)JdbcUtil.getConnection(); StudentDaostDao=newStudentsDaoImpl(); List<Student>stList=stDao.seachStudent(con); request.setAttribute("stuents",stList); request.getRequestDispatcher("student.jsp").forward(request,response); }}(6)展示頁面jsp編寫<%@pagelanguage="java"pageEncoding="UTF-8"import="java.util.*"import="entity.Student"%><!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN"><html> <head> <title>students</title> </head> <body> <tableborder="1px"cellspacing="0"cellpadding="0"width="317"align="center"> <captionalign="top">學(xué)生信息</caption> <tr><td>SNO</td><td>SNAME</td><td>SSEX</td><td>SDEPT</td><td>SAGE</td></tr> <% List<Student>stList=(List<Student>)request.getAttribute("stuents"); for(Studentst:stList){ %> <tr> <td><%=st.getSno()%></td><td><%=st.getSname()%></td><td><%=st.getSsex()%></td><td><%=st.getSdept()%></td><td><%=st.getSage()%></td> </tr> <% }%> </table> </bo
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年鋼管加工定制合同
- 委托居間房屋買賣合同
- 《財(cái)政與金融(第2版)》 課件匯 趙立華 第8-16章 貨幣與貨幣制度-宏觀調(diào)控
- 2025年度個(gè)人留置車輛借款合同(二手車留置權(quán)解除與還款)4篇
- 二零二五年度文化旅游產(chǎn)業(yè)財(cái)產(chǎn)贈與合同范本3篇
- 2025年銷售員聘用協(xié)議書含銷售數(shù)據(jù)分析服務(wù)3篇
- 高科技裝備與新型材料在體育產(chǎn)業(yè)的應(yīng)用探索
- 二零二五年度新材料研發(fā)與應(yīng)用股權(quán)合作協(xié)議3篇
- 2025年度數(shù)據(jù)分析師個(gè)人雇傭勞動合同樣本4篇
- 二零二五年度誠意金支付及教育資源共享合作協(xié)議4篇
- 介入科圍手術(shù)期護(hù)理
- 體檢科運(yùn)營可行性報(bào)告
- 青光眼術(shù)后護(hù)理課件
- 設(shè)立工程公司組建方案
- 設(shè)立項(xiàng)目管理公司組建方案
- 《物理因子治療技術(shù)》期末考試復(fù)習(xí)題庫(含答案)
- 退款協(xié)議書范本(通用版)docx
- 薪酬戰(zhàn)略與實(shí)踐
- 焊錫膏技術(shù)培訓(xùn)教材
- 江蘇省泰州市姜堰區(qū)2023年七年級下學(xué)期數(shù)學(xué)期末復(fù)習(xí)試卷【含答案】
- 答案之書(解答之書)-電子版精選答案
評論
0/150
提交評論