




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、數(shù)據(jù)庫技術(shù)I(2010年秋)序號(hào):數(shù)據(jù)庫技術(shù)I 實(shí)驗(yàn)報(bào)告系別:班級(jí):學(xué)號(hào):成績:評(píng)語:指導(dǎo)教師簽字: 日期:實(shí)驗(yàn)一 數(shù)據(jù)庫的建立及數(shù)據(jù)維護(hù)一、 實(shí)驗(yàn)?zāi)康?.學(xué)會(huì)使用企業(yè)管理器和查詢分析器創(chuàng)建數(shù)據(jù)庫、創(chuàng)建基本表和查看數(shù)據(jù)庫屬性。2. 學(xué)會(huì)使用企業(yè)管理器和查詢分析器向數(shù)據(jù)庫輸入數(shù)據(jù),修改數(shù)據(jù),刪除數(shù)據(jù)的操作。3. 在SOL Server查詢分析器中完成復(fù)雜查詢及視圖定義。二、 實(shí)驗(yàn)環(huán)境及要求數(shù)據(jù)庫實(shí)驗(yàn)要求如下環(huán)境,服務(wù)器端:Windows 2000/xp、數(shù)據(jù)庫服務(wù)器(SQL Server 2005)、Web服務(wù)器(IIS 5.0)和ASP??蛻舳耍篒E5.0、VB 6.0。要求:1、 根據(jù)以上數(shù)
2、據(jù)字典,畫出該數(shù)據(jù)庫的ER圖,完成數(shù)據(jù)庫的概念結(jié)構(gòu)設(shè)計(jì);2、 將ER圖轉(zhuǎn)換成邏輯關(guān)系模式,判斷邏輯數(shù)據(jù)庫模式中的各個(gè)關(guān)系(表)是第幾式,如果沒有達(dá)到第三式或BC式,請(qǐng)進(jìn)行規(guī)化。完成數(shù)據(jù)庫的邏輯結(jié)構(gòu)設(shè)計(jì)。3、 通過企業(yè)管理器或者查詢分析器實(shí)現(xiàn)關(guān)系模式的存儲(chǔ),包括確定主碼、外部碼等。4、 通過企業(yè)管理器或查詢分析器向數(shù)據(jù)庫中輸入數(shù)據(jù)。5、 打開數(shù)據(jù)庫SQL Server 2005的查詢分析器,用SQL語言完成以下語句。并通過實(shí)驗(yàn)結(jié)果驗(yàn)證查詢語言的正確性,將每個(gè)SQL語言及結(jié)果存盤,以備老師檢查。 (1) 求全體學(xué)生的學(xué)號(hào)、和出生年份。(2) 求每個(gè)系的學(xué)生總?cè)藬?shù)并按降序排列。(3) 求選修了課程號(hào)
3、為002或003的學(xué)生的學(xué)號(hào)、課程名和成績。(4) 檢索選修某課程的學(xué)生人數(shù)多于3人的教師。 (5) 查詢所有未選課程的學(xué)生和所在系。(6) 求每個(gè)同學(xué)的課程成績的最高分,查詢結(jié)果項(xiàng)包括:學(xué)生、課程號(hào)及最高分。(7) 求所有講授數(shù)據(jù)結(jié)構(gòu)課程的教師(8) 查詢所有選修了正科老師的課程的學(xué)生信息三、 實(shí)驗(yàn)步驟及結(jié)果1、SQL Server 2005服務(wù)管理器使用1啟動(dòng)數(shù)據(jù)庫服務(wù)軟件SQL Server 2005:在程序菜單中選擇Microsoft SQL Server 2005點(diǎn)擊Studio后,出現(xiàn)連接到服務(wù)器,點(diǎn)擊“連接”按鈕,啟動(dòng)SQL Server 2005數(shù)據(jù)庫服務(wù)。2在SQL Serv
4、er 2005中建立數(shù)據(jù)庫:在對(duì)象資源管理器中選擇數(shù)據(jù)庫單擊右鍵,新建數(shù)據(jù)庫。在新建數(shù)據(jù)庫窗口中,數(shù)據(jù)庫名稱輸入數(shù)據(jù)庫的名稱。2、查詢分析器的使用在“文件”菜單中選擇新建->使用當(dāng)前連接查詢,點(diǎn)擊使用當(dāng)前連接查詢后,出現(xiàn)新的工作區(qū)窗口,輸入sql語句。點(diǎn)擊執(zhí)行按鈕,出現(xiàn)查詢結(jié)果窗口。3、程序編寫與結(jié)果select Sname ,Sno,'Year of Birth:',2014-Sage from Studentselect Sdept,COUNT(Sdept) as 總?cè)藬?shù)from Studentgroup by Sdeptorder by Sdeptselect Sn
5、o,Cno,Gradefrom Scorewhere Cno='002'or Cno='003'select Tnamefrom Teacher,Scorewhere Teacher.Cno=Score.Cnogroup by Tnamehaving COUNT(Score.Sno)>3select Sname,Student.Sdeptfrom Studentwhere Sno not in(select Sno from Score)select Sname,Cno,Grade 最高分from Score x,Studentwhere(Student.
6、Sno=x.Sno)and x.Grade in(select MAX(Grade)from Scorewhere Score.Sno=x.Snogroup by Sno)select Tnamefrom Teacherwhere Cno in(select Cnofrom Coursewhere Cname='數(shù)據(jù)結(jié)構(gòu)')select Student.*from Student,Teacher,ScoreWhere Student.Sno=Score.Snoand Teacher.Cno=Score.Cnoand Teacher.Tname='正科'use 1
7、11gocreate table S1(Sno varchar(10),Sname varchar(20),SD varchar(50),SA int)insert into S1select Sno,Sname,Sage,Ssexfrom Student where Sdept='CS'4、ER圖四、 實(shí)驗(yàn)中的問題及解決方法1、 代碼編寫時(shí)我總是忘記用英文符號(hào),導(dǎo)致程序出現(xiàn)錯(cuò)誤。檢查之后改正。2、 在使用select語句時(shí),沒有將列名明確,如將student.sno寫成sno導(dǎo)致錯(cuò)誤。在查過書上的資料后改正。五、 實(shí)驗(yàn)總結(jié)通過本次實(shí)驗(yàn),我復(fù)習(xí)了SQL數(shù)據(jù)庫的用法,表,視圖等操
8、作。通過題目,練習(xí)了對(duì)SQL查詢語句的編寫和調(diào)試,真正將書本上所學(xué)的知識(shí)利用到了實(shí)踐當(dāng)中。在實(shí)驗(yàn)中遇到了很多問題,通過問老師、看書查資料等方法得到了解決,為今后進(jìn)一步學(xué)習(xí)數(shù)據(jù)庫打下了基礎(chǔ)。實(shí)驗(yàn)二 C/S結(jié)構(gòu)的數(shù)據(jù)庫編程一、實(shí)驗(yàn)?zāi)康?.學(xué)會(huì)配置ODBC數(shù)據(jù)源,熟悉使用ODBC進(jìn)行數(shù)據(jù)庫應(yīng)用程序的設(shè)計(jì),通過ODBC接口對(duì)數(shù)據(jù)庫進(jìn)行操作。2.學(xué)會(huì)通過ADO訪問數(shù)據(jù)庫,熟悉使用ADO技術(shù)進(jìn)行數(shù)據(jù)庫應(yīng)用程序的設(shè)計(jì),通過ADO接口對(duì)數(shù)據(jù)庫進(jìn)行操作。二、實(shí)驗(yàn)環(huán)境及要求數(shù)據(jù)庫實(shí)驗(yàn)要求如下環(huán)境,服務(wù)器端:Windows 2000/xp、數(shù)據(jù)庫服務(wù)器(SQL Server 2005)、Web服務(wù)器(IIS 5.0
9、)和ASP。客戶端:IE5.0、VB 6.0。要求:通過一門編程工具(VS2005 C#或.net)編寫訪問數(shù)據(jù)庫的應(yīng)用程序,編程序設(shè)計(jì)良好的一個(gè)人機(jī)交互界面,列出實(shí)驗(yàn)一中的查詢,將SQL語句嵌入VS 2005中完成“實(shí)驗(yàn)一”中的10個(gè)數(shù)據(jù)庫查詢語句的結(jié)果顯示。也可選擇其他編程工具開發(fā)。三、實(shí)驗(yàn)步驟及結(jié)果1、建立ODBC數(shù)據(jù)源(1)在“控制面板”中的“管理工具”下雙擊“數(shù)據(jù)庫(ODBC)”圖標(biāo),打開“ODBC數(shù)據(jù)源管理器”,或者通過:開始設(shè)置控制面板管理工具數(shù)據(jù)源ODBC。在“ODBC數(shù)據(jù)庫管理器”中可以選擇“用戶DSN” 、“系統(tǒng)DSN”、“文件DSN”。(2)如果要添加一個(gè)新的數(shù)據(jù)源可以單
10、擊“添加”按鈕,選擇“系統(tǒng)DSN”選項(xiàng)卡,單擊“添加”按鈕。彈出“創(chuàng)建新數(shù)據(jù)源”對(duì)話框。 (3)選擇驅(qū)動(dòng)程序SQL Server,單擊“完成”按鈕。彈出“創(chuàng)建到SQL Server的新數(shù)據(jù)源”。(4)單擊“下一步”,出現(xiàn)選擇SQL Server數(shù)據(jù)庫服務(wù)器對(duì)登錄的身份驗(yàn)證方式的對(duì)話框,可以選擇Window身份驗(yàn)證或SQL Server身份驗(yàn)證。 單擊“下一步”,在“更改默認(rèn)的數(shù)據(jù)庫為”下拉列表框中選擇“sales”。(5)單擊“下一步”,彈出對(duì)話框,單擊“完成”按鈕,彈出對(duì)話框,完成數(shù)據(jù)源的配置。 (6)單擊“完成”。即可進(jìn)行測(cè)試數(shù)據(jù)源,若系統(tǒng)提示測(cè)試成功,則表示DSN設(shè)置正確。單擊“確定”,
11、即完成系統(tǒng)DSN的建立。2、VS2005開發(fā)環(huán)境中連接數(shù)據(jù)庫(1)啟動(dòng)SQL Server 2005后,單擊“文件”菜單,選擇“新建”,“項(xiàng)目”。(2)Visual C#-Windows 應(yīng)用程序-確定 ,會(huì)自動(dòng)生成窗體Form1(3)工具箱-數(shù)據(jù)-DataGridView 拖入Form1(4)在此控件上單擊右鍵>屬性>DataSource(5)點(diǎn)擊此屬性值下箭頭->添加項(xiàng)目數(shù)據(jù)源(6)點(diǎn)擊數(shù)據(jù)庫->下一步->新建連接 ,彈出添加連接窗口,將SQL server 2005的服務(wù)器名稱復(fù)制。粘貼到添加連接窗體中的服務(wù)器名中,點(diǎn)擊下拉菜單選擇數(shù)據(jù)庫。點(diǎn)擊“確定”,生成
12、連接。點(diǎn)“下一步” 再點(diǎn)“下一步”選擇表,點(diǎn)擊完成。運(yùn)行程序。3、通過連接字符串連接數(shù)據(jù)庫添加兩個(gè)控件richTextBox1 和 button1。上邊通過控件已經(jīng)生成過連接字符串,可以復(fù)制4、程序編寫與結(jié)果private void Form1_Load(object sender, EventArgs e) / TODO: 這行代碼將數(shù)據(jù)加載到表“sCDBDataSet3.Teacher”中。您可以根據(jù)需要移動(dòng)或移除它。 this.teacherTableAdapter.Fill(this.sCDBDataSet3.Teacher); / TODO: 這行代碼將數(shù)據(jù)加載到表“sCDBData
13、Set1.student1”中。您可以根據(jù)需要移動(dòng)或移除它。 this.student1TableAdapter.Fill(this.sCDBDataSet1.student1); private void button3_Click(object sender, EventArgs e) string ConStr = "Data Source=911-57;Initial Catalog=scdb;Integrated Security=True" /連接字符串 SqlConnection conn = new SqlConnection(ConStr); /建立一個(gè)數(shù)
14、據(jù)庫連接實(shí)例 conn.Open(); /打開數(shù)據(jù)庫連接 SqlCommand cmd = new SqlCommand(); /用于執(zhí)行SQL語句 cmd.Connection = conn; cmd.CommandText = "select Sno,cno,grade from Score where (So='002'oro='003')" cmd.CommandType = CommandType.Text; SqlDataReader sdr = cmd.ExecuteReader(); /執(zhí)行 richTextBox1.Text
15、 = " " while (sdr.Read() /每次讀一條記錄 讀完停止 richTextBox1.Text += sdr.GetString(0) + " " + sdr.GetString(1) + " " + sdr.GetInt32(2) + "n" /讀出的的字符串賦值給控件 conn.Dispose(); /銷毀連接 private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) priv
16、ate void richTextBox1_TextChanged(object sender, EventArgs e) private void button1_Click(object sender, EventArgs e) string ConStr = "Data Source=911-57;Initial Catalog=scdb;Integrated Security=True" /連接字符串 SqlConnection conn = new SqlConnection(ConStr); /建立一個(gè)數(shù)據(jù)庫連接實(shí)例 conn.Open(); /打開數(shù)據(jù)庫連接
17、SqlCommand cmd = new SqlCommand(); /用于執(zhí)行SQL語句 cmd.Connection = conn; cmd.CommandText = "select Sno,Sname,2014-Sage from student1" cmd.CommandType = CommandType.Text; SqlDataReader sdr = cmd.ExecuteReader(); /執(zhí)行 richTextBox1.Text = " " while (sdr.Read() /每次讀一條記錄 讀完停止 richTextBox1.
18、Text += sdr.GetString(0) + " " + sdr.GetString(1) + " " + sdr.GetInt32(2)+ "n" /讀出的的字符串賦值給控件 conn.Dispose(); /銷毀連接 private void button2_Click(object sender, EventArgs e) string ConStr = "Data Source=911-57;Initial Catalog=scdb;Integrated Security=True" /連接字符串
19、SqlConnection conn = new SqlConnection(ConStr); /建立一個(gè)數(shù)據(jù)庫連接實(shí)例 conn.Open(); /打開數(shù)據(jù)庫連接 SqlCommand cmd = new SqlCommand(); /用于執(zhí)行SQL語句 cmd.Connection = conn; cmd.CommandText = "select count(Sdept)from student1 group by sdept" cmd.CommandType = CommandType.Text; SqlDataReader sdr = cmd.ExecuteRea
20、der(); /執(zhí)行 richTextBox1.Text = " " while (sdr.Read() /每次讀一條記錄 讀完停止 richTextBox1.Text += sdr.GetInt32(0)+ "n" /讀出的的字符串賦值給控件 conn.Dispose(); /銷毀連接 private void button4_Click(object sender, EventArgs e) string ConStr = "Data Source=911-57;Initial Catalog=scdb;Integrated Securit
21、y=True" /連接字符串 SqlConnection conn = new SqlConnection(ConStr); /建立一個(gè)數(shù)據(jù)庫連接實(shí)例 conn.Open(); /打開數(shù)據(jù)庫連接 SqlCommand cmd = new SqlCommand(); /用于執(zhí)行SQL語句 cmd.Connection = conn; cmd.CommandText = "select Tname from Teacher,Score where So=To group by Tname having count(So)>3" cmd.CommandType =
22、 CommandType.Text; SqlDataReader sdr = cmd.ExecuteReader(); /執(zhí)行 richTextBox1.Text = " " while (sdr.Read() /每次讀一條記錄 讀完停止 richTextBox1.Text += sdr.GetString(0) + "n" /讀出的的字符串賦值給控件 conn.Dispose(); /銷毀連接 private void button5_Click(object sender, EventArgs e) string ConStr = "Dat
23、a Source=911-57;Initial Catalog=scdb;Integrated Security=True" /連接字符串 SqlConnection conn = new SqlConnection(ConStr); /建立一個(gè)數(shù)據(jù)庫連接實(shí)例 conn.Open(); /打開數(shù)據(jù)庫連接 SqlCommand cmd = new SqlCommand(); /用于執(zhí)行SQL語句 cmd.Connection = conn; cmd.CommandText = "select Sname,student1.Sdept from student1 where S
24、no not in (select Sno from Score)" cmd.CommandType = CommandType.Text; SqlDataReader sdr = cmd.ExecuteReader(); /執(zhí)行 richTextBox1.Text = " " while (sdr.Read() /每次讀一條記錄 讀完停止 richTextBox1.Text += sdr.GetString(0) + " " + sdr.GetString(1) + "n" /讀出的的字符串賦值給控件 conn.Dispo
25、se(); /銷毀連接 private void button6_Click(object sender, EventArgs e) string ConStr = "Data Source=911-57;Initial Catalog=scdb;Integrated Security=True" /連接字符串 SqlConnection conn = new SqlConnection(ConStr); /建立一個(gè)數(shù)據(jù)庫連接實(shí)例 conn.Open(); /打開數(shù)據(jù)庫連接 SqlCommand cmd = new SqlCommand(); /用于執(zhí)行SQL語句 cmd.
26、Connection = conn; cmd.CommandText = "select Sname,Cno,Grade from Score Score,Student1 where (Student.Sno=Score.Sno) and Score.Grade in (select MAX(Grade) from Score where Score.Sno=Score.Sno group by Sno)" cmd.CommandType = CommandType.Text; SqlDataReader sdr = cmd.ExecuteReader(); /執(zhí)行 ri
27、chTextBox1.Text = " " while (sdr.Read() /每次讀一條記錄 讀完停止 richTextBox1.Text += sdr.GetString(0) + " " + sdr.GetString(1) +" " + sdr.GetInt32(2) +"n" /讀出的的字符串賦值給控件 conn.Dispose(); /銷毀連接 四、 實(shí)驗(yàn)中的問題及解決方法1、 代碼編寫時(shí)我總是忘記用英文符號(hào),導(dǎo)致程序出現(xiàn)錯(cuò)誤。檢查之后改正。2、 在編寫按鈕的程序時(shí)應(yīng)先打開form,左鍵雙擊需編寫的按
28、鈕,在指定位置處編寫。3、 在更換電腦后,程序中的計(jì)算機(jī)號(hào)需改正。4、 sdr.GetString語句應(yīng)與調(diào)出的屬性數(shù)量一致。五、實(shí)驗(yàn)總結(jié)通過本次實(shí)驗(yàn),我學(xué)會(huì)了配置ODBC數(shù)據(jù)源,并用其進(jìn)行了數(shù)據(jù)庫應(yīng)用程序的設(shè)計(jì),通過ODBC接口對(duì)數(shù)據(jù)庫進(jìn)行了操作。在實(shí)驗(yàn)中遇到了很多問題,通過問老師、看書查資料等方法得到了解決,為今后進(jìn)一步學(xué)習(xí)數(shù)據(jù)庫打下了基礎(chǔ)。實(shí)驗(yàn)三 數(shù)據(jù)庫的建立及數(shù)據(jù)維護(hù)一、 實(shí)驗(yàn)?zāi)康?、 學(xué)會(huì)通過IIS配置Web服務(wù)器,建立虛擬目錄2、 學(xué)會(huì)在IE瀏覽器中查看ASP.NET網(wǎng)頁的執(zhí)行結(jié)果3、 掌握ASP.NET技術(shù)實(shí)現(xiàn)簡(jiǎn)單的動(dòng)態(tài)網(wǎng)頁的制作。二、實(shí)驗(yàn)環(huán)境及要求1.實(shí)驗(yàn)環(huán)境:Windows7,SQLServer2008,Visual Studio 2010。 2.實(shí)驗(yàn)要求:設(shè)計(jì)網(wǎng)頁,顯示“實(shí)驗(yàn)一”中11個(gè)查詢的結(jié)果。三、實(shí)驗(yàn)步驟及結(jié)果1、實(shí)驗(yàn)步驟1) 在Microsoft Visual Studio 2008(以下簡(jiǎn)稱VS2008)中添加一個(gè)ASP.NETWeb應(yīng)用程序項(xiàng)目,名稱為scdb; 2) 在scdb項(xiàng)目上點(diǎn)擊右鍵->添加->新建項(xiàng); 3) 選擇web窗體,名稱Query_Result_1.aspx;點(diǎn)擊添加; 4) 生成一個(gè)頁面,點(diǎn)擊頁面下方的“設(shè)計(jì)”按鈕,跳轉(zhuǎn)到設(shè)計(jì)頁面; 5)點(diǎn)擊左側(cè)的“工具箱”,選擇“數(shù)據(jù)”中“GridView”拖拽
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 職高護(hù)理筆試題及答案解析
- 英文晉級(jí)考試題及答案
- 法學(xué)英文考試題及答案
- 破窗救生測(cè)試題及答案
- 網(wǎng)絡(luò)設(shè)計(jì)師職業(yè)屬性的重要性與試題及答案
- 理解家庭環(huán)境與兒童發(fā)展的聯(lián)系試題及答案
- 考前沖刺2024年系統(tǒng)規(guī)劃與管理師考試試題及答案
- 腹部皮瓣修復(fù)試題及答案
- 激光工程師對(duì)行業(yè)技術(shù)創(chuàng)新的推動(dòng)作用研究試題及答案
- 系統(tǒng)架構(gòu)設(shè)計(jì)師考試產(chǎn)品架構(gòu)試題及答案
- 檔案職稱考試培訓(xùn)練習(xí)題匯總(帶答案)
- 中國兒童青少年視覺健康白皮書
- 最新國際貿(mào)易術(shù)語培訓(xùn)
- 2021年高考真題--化學(xué)(江蘇卷)(附解析)
- 項(xiàng)目功能需求調(diào)研表通用精選文檔
- 技術(shù)咨詢合同-碳核查
- 電學(xué)難題總復(fù)習(xí)初中物理電學(xué)六大專題解析
- 鉆孔灌注樁施工方案
- 民用機(jī)場(chǎng)飛行區(qū)工程質(zhì)量驗(yàn)收評(píng)定標(biāo)準(zhǔn)
- 《診療六步》
- 鼻出血護(hù)理查房.ppt
評(píng)論
0/150
提交評(píng)論