北方工業(yè)大學 數據庫實驗報告
《北方工業(yè)大學 數據庫實驗報告》由會員分享,可在線閱讀,更多相關《北方工業(yè)大學 數據庫實驗報告(15頁珍藏版)》請在裝配圖網上搜索。
1、數據庫技術I(2010年秋) 序號: 數據庫技術I 實驗報告 系別: 班級: 姓名: 學號: 成績: 評語: 指導教師簽字: 日期: 實驗一 數據庫的建立及數據維護 一、 實驗目的 1.學會使用企業(yè)管理器和查詢分析器創(chuàng)建數據庫、創(chuàng)建基本表和查看數據庫屬性。 2. 學會使用企業(yè)管理器和查詢分析器向數據庫輸入數據,修改數據,刪除數據的操作。 3. 在SOL Server查詢分析器中完成復雜查詢及視圖定義。 二、 實驗環(huán)境及要求 數據庫實驗要求如下環(huán)境,服務器端:Windows 2000/xp、
2、數據庫服務器(SQL Server 2005)、Web服務器(IIS 5.0)和ASP。客戶端:IE5.0、VB 6.0。 要求: 1、 根據以上數據字典,畫出該數據庫的ER圖,完成數據庫的概念結構設計; 2、 將ER圖轉換成邏輯關系模式,判斷邏輯數據庫模式中的各個關系(表)是第幾范式,如果沒有達到第三范式或BC范式,請進行規(guī)范化。完成數據庫的邏輯結構設計。 3、 通過企業(yè)管理器或者查詢分析器實現關系模式的存儲,包括確定主碼、外部碼等。 4、 通過企業(yè)管理器或查詢分析器向數據庫中輸入數據。 5、 打開數據庫SQL Server 2005的查詢分析器,用SQL語言完成以下語句。并通過
3、實驗結果驗證查詢語言的正確性,將每個SQL語言及結果存盤,以備老師檢查。 (1) 求全體學生的學號、姓名和出生年份。 (2) 求每個系的學生總人數并按降序排列。 (3) 求選修了課程號為002或003的學生的學號、課程名和成績。 (4) 檢索選修某課程的學生人數多于3人的教師姓名。 (5) 查詢所有未選課程的學生姓名和所在系。 (6) 求每個同學的課程成績的最高分,查詢結果項包括:學生姓名、課程號及最高分。 (7) 求所有講授數據結構課程的教師姓名 (8) 查詢所有選修了李正科老師的課程的學生信息 三、 實驗步驟及結果 1、SQL Server 2005服務
4、管理器使用 1.啟動數據庫服務軟件SQL Server 2005:在程序菜單中選擇Microsoft SQL Server 2005 點擊Studio后,出現連接到服務器,點擊“連接”按鈕,啟動SQL Server 2005數據庫服務。 2.在SQL Server 2005中建立數據庫:在對象資源管理器中選擇數據庫單擊右鍵,新建數據庫。在新建數據庫窗口中,數據庫名稱輸入數據庫的名稱。 2、查詢分析器的使用 在“文件”菜單中選擇新建--->使用當前連接查詢,點擊使用當前連接查詢后,出現新的工作區(qū)窗口,輸入sql語句。點擊執(zhí)行按鈕,出現查詢結果窗口。 3、程序編寫與結果 select
5、 Sname ,Sno,'Year of Birth:',2014-Sage from Student select Sdept,COUNT(Sdept) as 總人數 from Student group by Sdept order by Sdept select Sno,Cno,Grade from Score where Cno='002'or Cno='003' select Tname from Teacher,Score where Teacher.Cno=Score.Cno group by Tname having COUNT(Score.Sno)>
6、3 select Sname,Student.Sdept from Student where Sno not in (select Sno from Score) select Sname,Cno,Grade 最高分 from Score x,Student where(Student.Sno=x.Sno) and x.Grade in (select MAX(Grade) from Score where Score.Sno=x.Sno group by Sno) select Tname from Teacher where Cno in (select
7、Cno from Course where Cname='數據結構') select Student.* from Student,Teacher,Score Where Student.Sno=Score.Sno and Teacher.Cno=Score.Cno and Teacher.Tname='李正科' use 111 go create table S1 (Sno varchar(10), Sname varchar(20), SD varchar(50), SA int) insert into S1 select Sno,Sname,Sa
8、ge,Ssex from Student where Sdept='CS' 4、ER圖 四、 實驗中的問題及解決方法 1、 代碼編寫時我總是忘記用英文符號,導致程序出現錯誤。檢查之后改正。 2、 在使用select語句時,沒有將列名明確,如將student.sno寫成sno導致錯誤。在查過書上的資料后改正。 五、 實驗總結 通過本次實驗,我復習了SQL數據庫的用法,表,視圖等操作。通過題目,練習了對SQL查詢語句的編寫和調試,真正將書本上所學的知識利用到了實踐當中。在實驗中遇到了很多問題,通過問老師、看書查資料等方法得到了解決,為今
9、后進一步學習數據庫打下了基礎。 實驗二 C/S結構的數據庫編程 一、實驗目的 1.學會配置ODBC數據源,熟悉使用ODBC進行數據庫應用程序的設計,通過ODBC接口對數據庫進行操作。 2.學會通過ADO訪問數據庫,熟悉使用ADO技術進行數據庫應用程序的設計,通過ADO接口對數據庫進行操作。 二、實驗環(huán)境及要求 數據庫實驗要求如下環(huán)境,服務器端:Windows 2000/xp、數據庫服務器(SQL Server 2005)、Web服務器(IIS 5.0)和ASP??蛻舳耍篒E5.0、VB 6.0。 要求: 通過一門編程工具(VS2005 C#或.net)
10、編寫訪問數據庫的應用程序,編程序設計良好的一個人機交互界面,列出實驗一中的查詢,將SQL語句嵌入VS 2005中完成“實驗一”中的10個數據庫查詢語句的結果顯示。也可選擇其他編程工具開發(fā)。 三、實驗步驟及結果 1、建立ODBC數據源 (1)在“控制面板”中的“管理工具”下雙擊“數據庫(ODBC)”圖標,打開“ODBC數據源管理器”,或者通過:開始→設置→控制面板→管理工具→數據源ODBC。在“ODBC數據庫管理器”中可以選擇“用戶DSN” 、“系統(tǒng)DSN”、“文件DSN”。 (2)如果要添加一個新的數據源可以單擊“添加”按鈕,選擇“系統(tǒng)DSN”選項卡,單擊“添加”按鈕。彈出“創(chuàng)建新數據
11、源”對話框。 (3)選擇驅動程序SQL Server,單擊“完成”按鈕。彈出“創(chuàng)建到SQL Server的新數據源”。 (4)單擊“下一步”,出現選擇SQL Server數據庫服務器對登錄帳戶的身份驗證方式的對話框,可以選擇Window身份驗證或SQL Server身份驗證。 單擊“下一步”,在“更改默認的數據庫為”下拉列表框中選擇“sales”。 (5)單擊“下一步”,彈出對話框,單擊“完成”按鈕,彈出對話框,完成數據源的配置。 (6)單擊“完成”。即可進行測試數據源,若系統(tǒng)提示測試成功,則表示DSN設置正確。單擊“確定”,即完成系統(tǒng)DSN的建立。 2、VS2005開發(fā)環(huán)境中連
12、接數據庫 (1)啟動SQL Server 2005后,單擊“文件”菜單,選擇“新建”,“項目”。 (2)Visual C#---〉Windows 應用程序---〉確定 ,會自動生成窗體Form1 (3)工具箱---〉數據---〉DataGridView 拖入Form1 (4)在此控件上單擊右鍵—>屬性—>DataSource (5)點擊此屬性值下箭頭-->添加項目數據源 (6)點擊數據庫-->下一步-->新建連接 ,彈出添加連接窗口,將SQL server 2005的服務器名稱復制。粘貼到添加連接窗體中的服務器名中,點擊下拉菜單選擇數據庫。點擊“確定”,生成連接。點“下一步” 再
13、點“下一步”選擇表,點擊完成。運行程序。 3、通過連接字符串連接數據庫 添加兩個控件richTextBox1 和 button1。上邊通過控件已經生成過連接字符串,可以復制 4、程序編寫與結果 private void Form1_Load(object sender, EventArgs e) { // TODO: 這行代碼將數據加載到表“sCDBDataSet3.Teacher”中。您可以根據需要移動或移除它。 this.teacherTableAdapter.Fill(this.sCDBDataSet3.Tea
14、cher); // TODO: 這行代碼將數據加載到表“sCDBDataSet1.student1”中。您可以根據需要移動或移除它。 this.student1TableAdapter.Fill(this.sCDBDataSet1.student1); } private void button3_Click(object sender, EventArgs e) { string ConStr = "Data Source=911-57;Initial
15、Catalog=scdb;Integrated Security=True"; //連接字符串 SqlConnection conn = new SqlConnection(ConStr); //建立一個數據庫連接實例 conn.Open(); //打開數據庫連接 SqlCommand cmd = new SqlCommand(); //用于執(zhí)行SQL語句 cmd.Connection = conn; cmd.CommandText = "select
16、 Sno,cno,grade from Score where (So='002'or cno='003')"; cmd.CommandType = CommandType.Text; SqlDataReader sdr = cmd.ExecuteReader(); //執(zhí)行 richTextBox1.Text = " "; while (sdr.Read()) //每次讀一條記錄 讀完停止 { richTextBox1.
17、Text += sdr.GetString(0) + " " + sdr.GetString(1) + " " + sdr.GetInt32(2) + "\n"; //讀出的的字符串賦值給控件 } conn.Dispose(); //銷毀連接 } private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) { } pr
18、ivate 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"; //連接字符串 SqlConnectio
19、n conn = new SqlConnection(ConStr); //建立一個數據庫連接實例 conn.Open(); //打開數據庫連接 SqlCommand cmd = new SqlCommand(); //用于執(zhí)行SQL語句 cmd.Connection = conn; cmd.CommandText = "select Sno,Sname,2014-Sage from student1"; cmd.CommandType = CommandTyp
20、e.Text; SqlDataReader sdr = cmd.ExecuteReader(); //執(zhí)行 richTextBox1.Text = " "; while (sdr.Read()) //每次讀一條記錄 讀完停止 { richTextBox1.Text += sdr.GetString(0) + " " + sdr.GetString(1) + " " + sdr.GetInt32(2)+ "\n"; //讀出的的字符串賦值給控件
21、 } conn.Dispose(); //銷毀連接 } private void button2_Click(object sender, EventArgs e) { string ConStr = "Data Source=911-57;Initial Catalog=scdb;Integrated Security=True"; //連接字符串 SqlConnection conn = new SqlConne
22、ction(ConStr); //建立一個數據庫連接實例 conn.Open(); //打開數據庫連接 SqlCommand cmd = new SqlCommand(); //用于執(zhí)行SQL語句 cmd.Connection = conn; cmd.CommandText = "select count(Sdept)from student1 group by sdept"; cmd.CommandType = CommandType.Text;
23、 SqlDataReader sdr = cmd.ExecuteReader(); //執(zhí)行 richTextBox1.Text = " "; while (sdr.Read()) //每次讀一條記錄 讀完停止 { richTextBox1.Text += sdr.GetInt32(0)+ "\n"; //讀出的的字符串賦值給控件 } conn.Dispose();
24、 //銷毀連接 } private void button4_Click(object sender, EventArgs e) { string ConStr = "Data Source=911-57;Initial Catalog=scdb;Integrated Security=True"; //連接字符串 SqlConnection conn = new SqlConnection(ConStr); //建立一個數據庫連接實例 conn.
25、Open(); //打開數據庫連接 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 = CommandType.Text; SqlDataRea
26、der sdr = cmd.ExecuteReader(); //執(zhí)行 richTextBox1.Text = " "; while (sdr.Read()) //每次讀一條記錄 讀完停止 { richTextBox1.Text += sdr.GetString(0) + "\n"; //讀出的的字符串賦值給控件 } conn.Dispose(); //銷毀連接 } p
27、rivate void button5_Click(object sender, EventArgs e) { string ConStr = "Data Source=911-57;Initial Catalog=scdb;Integrated Security=True"; //連接字符串 SqlConnection conn = new SqlConnection(ConStr); //建立一個數據庫連接實例 conn.Open(); //打開數據庫連接
28、SqlCommand cmd = new SqlCommand(); //用于執(zhí)行SQL語句 cmd.Connection = conn; cmd.CommandText = "select Sname,student1.Sdept from student1 where Sno not in (select Sno from Score)"; cmd.CommandType = CommandType.Text; SqlDataReader sdr = cmd.ExecuteReader
29、(); //執(zhí)行 richTextBox1.Text = " "; while (sdr.Read()) //每次讀一條記錄 讀完停止 { richTextBox1.Text += sdr.GetString(0) + " " + sdr.GetString(1) + "\n"; //讀出的的字符串賦值給控件 } conn.Dispose(); //銷毀連接 } pri
30、vate void button6_Click(object sender, EventArgs e) { string ConStr = "Data Source=911-57;Initial Catalog=scdb;Integrated Security=True"; //連接字符串 SqlConnection conn = new SqlConnection(ConStr); //建立一個數據庫連接實例 conn.Open(); //打開數據庫連接 Sq
31、lCommand cmd = new SqlCommand(); //用于執(zhí)行SQL語句 cmd.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
32、.CommandType = CommandType.Text; SqlDataReader sdr = cmd.ExecuteReader(); //執(zhí)行 richTextBox1.Text = " "; while (sdr.Read()) //每次讀一條記錄 讀完停止 { richTextBox1.Text += sdr.GetString(0) + " " + sdr.GetString(1) +" " + sdr.GetInt32(2
33、) +"\n"; //讀出的的字符串賦值給控件 } conn.Dispose(); //銷毀連接 } } } 四、 實驗中的問題及解決方法 1、 代碼編寫時我總是忘記用英文符號,導致程序出現錯誤。檢查之后改正。 2、 在編寫按鈕的程序時應先打開form,左鍵雙擊需編寫的按鈕,在指定位置處編寫。 3、 在更換電腦后,程序中的計算機號需改正。 4、 sdr.GetString語句應與調出的屬性數量一致。 五、實驗總結 通過本次實驗,我學會了配置ODBC數據源,并用其進行了數據庫應用程序
34、的設計,通過ODBC接口對數據庫進行了操作。在實驗中遇到了很多問題,通過問老師、看書查資料等方法得到了解決,為今后進一步學習數據庫打下了基礎。 實驗三 數據庫的建立及數據維護 一、 實驗目的 1、 學會通過IIS配置Web服務器,建立虛擬目錄 2、 學會在IE瀏覽器中查看ASP.NET網頁的執(zhí)行結果 3、 掌握ASP.NET技術實現簡單的動態(tài)網頁的制作。 二、實驗環(huán)境及要求 1.實驗環(huán)境:Windows7,SQLServer2008,Visual Studio 2010。 2.實驗要求:設計網頁,顯示“實驗一”中11個查詢的結果。 三、實驗步驟及結果 1、實驗步驟
35、 1) 在Microsoft Visual Studio 2008(以下簡稱VS2008)中添加一個ASP.NETWeb應用程序項目,名稱為scdb; 2) 在scdb項目上點擊右鍵->添加->新建項; 3) 選擇web窗體,名稱Query_Result_1.aspx;點擊添加; 4) 生成一個頁面,點擊頁面下方的“設計”按鈕,跳轉到設計頁面; 5)點擊左側的“工具箱”,選擇“數據”中“GridView”拖拽到右側的設計頁面中; 6)點擊GridView任務中“選擇數據源”下拉框,選擇“新建數據源”,在選擇“數據庫”,為數據源指定ID為SqlDataSources
36、cdb,點擊“確定”; 7)點擊“新建連接”,彈出鏈接窗口,服務器名稱:(local),在選擇數據庫與名中,選擇自己建立的數據庫名,“scdb”;再點擊“測試連接”,彈出“測試連接成功”,即連接數據庫成功,點擊“確定”; 8)在下拉框中選擇“scdbConnectionString”,點擊“下一步”; 9)在“希望如何從數據庫中檢索”選擇“指定自定義SQL或存儲語句”,點擊“下一步”,在SELECT標簽下,點擊“查詢生成器”,點擊“Student”,點擊“添加”,點擊“關閉”,關閉“添加表”對話框; 10)在查詢生成器,選擇Sno,Sname兩列,然后添加表達式 201
37、2 – Sage, 點擊“執(zhí)行查詢”,生成器底部會產生查詢結果,然后點擊“確定”; 11)點擊“下一步” 12)點擊“測試查詢”則出現查詢結果,即查詢數據成功,然后點擊“完成”結束。 13)點擊“GridView任務”中的“編輯列”,會出現編輯框。 14)在“選定的字段”中點擊“Sno”出現Sno屬性框,在“外觀”中的“HeaderText”后面的編輯框中將“Sno”改為“學號”。 15)“Sname”與“Expr1”的列名修改操作與“Sno”的相同,點擊“確定”結束; 16)在“GridView任務”中的“自動套用格式”中選擇自己喜歡的界面風格; 17)
38、點擊“源”,切換源代碼頁面,修改
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
5. 裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。