1、数据库原理实验报告重庆交通大学信息科学与工程学院设计性实验报告专 业: 计算机科学与技术 班 级: 2015 级 4 班 学 号: 631507020418 姓 名: 张 再 朝 课 程 名 称: 数据库原理课程实验 实验项目性质: 设计性实验 实验所属课程: 数据库原理B 实验室(中心): 软件与通信实验室 指 导 教 师 : 王家伟 实验完成时间: 2017 年 11 月 25 日总 成 绩教师签名此页必须保留评分标准及成绩实验名称评分细则评分实验四报告表述的清晰程度和完整性(20分)概念模型的合理性(实验一内容)(10分)逻辑模型的合理性(实验一内容)(10分)功能合理性(20分)功能完
2、善性(10分)个人体会(10分)实验二10分实验三10分总成绩总体实验要求:1 排版要求标题用黑体四号,段前、段后距6磅(或0.3行);正文用小四号宋体,行距为1.5倍行距。报告必须生成目录,目录必须带页码。2 设计报告需要打印,装订,1份/人,理论课考试时交设计报告。3 各班学习委员收集每位同学做的成果,包含数据库的备份、程序源代码和运行配置说明,并将每位同学的成果拷贝到软件与通信实验室的教师机上。第一部分 实验四报告正文一、实验目的1、掌握ODBC的概念并学习使用ODBC访问数据库; 2、学习Visual C+下如何通过ODBC访问数据库; 3、学习用Visual C+整理简单数据库应用程
3、序的方法。 二、实验题目某大学需要使用计算机管理学生信息、成绩信息等,要求如下:1、学生信息管理,包含学生的基本信息,如学号、姓名、性别、出生日期等;还要包含学生的简历、社会关系等;2、课程管理,包含整个学校开设的所有课程;3、教学计划管理,包含设定各系各专业在哪学期开设什么样的课程,学分是多少;4、学生选课管理,包含学生在某学期选择什么样的课程;5、学生成绩管理,包含学生各课程的成绩、是否补考、补考成绩;6、学生奖惩管理,管理学生在校期间所获得的奖励和惩罚记录。根据实验一的结果,完成设计。可以根据自己的实际情况实现一部分也可。三、实验涉及仪器设备和材料清单(或软件)操作系统:Windows1
4、0软件:Visual Studio Professional 2017,Power Designer 15.1实现语言:C#开发平台:.NET Framework 4数据库:SQL Server 2014四、实验原理 Microsoft推出的ODBC(Open Database Connectivity)技术为异质数据库的访问提供了统一的接口。ODBC基于SQL(Structured Query Language),并把它作为访问数据库的标准。这个接口提供了最大限度的相互可操作性:一个应用程序可以通过一组通用的代码访问不同的数据库管理系统。一个软件开发者开发的客户/服务器应用程序不会被束定于某
5、个特定的数据库之上。ODBC可以为不同的数据库提供相应的驱动程序。 ODBC的灵活性表现在以下几个方面: 应用程序不会受制于某种专用的API SQL语句以源代码的方式直接嵌入在应用程序中 应用程序可以以自己的格式接收和发送数据 ODBC的设计完全和ISO Call-Level Interface兼容 现在的ODBC数据库驱动程序支持55家公司的数据产品 最新推出的ODBC 3.0已经升级到32位,支持Win32。 在C#中,提供了良好的数据库支持。输入数据源是遵循开放式数据库互接(ODBC)标准,还是微软的数据访问对象(DAO)标准,或OLE数据库(OLE DB)标准。ODBC功能在数据库管理
6、系统,如Microsoft Access、Oracle或dBase的特定的驱动程序中实现。C#提供了一个ODBC驱动程序的集合;其他的可从经销商那里买到。实验中即利用ODBC接口来创建.NET下的数据库支持。 五、实验内容1、建立概念模型2、利用Power Designer生成的SQL语句建立相关数据表3、利用C#进行相关软件开发六、实验步骤及代码分析查询部分:private void 查询课程ToolStripMenuItem_Click(object sender, EventArgs e) string CommandString = select * from Course; try
7、OdbcDataAdapter adapter = new OdbcDataAdapter(CommandString, odbcConnection); DataSet ds = new DataSet(); adapter.Fill(ds); dataGridView1.DataSource = ds.Tables0.DefaultView; odbcConnection.Close(); catch (OdbcException ex) MessageBox.Show(ex.Message); 录入成绩,利用数据源自动更新 private void button2_Click(objec
8、t sender, EventArgs e) OdbcCommandBuilder ocd = new OdbcCommandBuilder(adapter); try adapter.Update(ds); catch (Exception ex) MessageBox.Show(ex.Message); this.Close(); return; MessageBox.Show(成功); this.Close(); 更改成绩,利用数据源自动更新 private void button1_Click(object sender, EventArgs e) /dataGridView1.Dat
9、aSource = null; ds.Clear(); dataGridView1.Update(); string CommandString = select * from Score where Score.CourseNo= + textBox1.Text + ; try adapter = new OdbcDataAdapter(CommandString, odbcConnection); adapter.Fill(ds); dataGridView1.DataSource = ds.Tables0.DefaultView; odbcConnection.Close(); catc
10、h (OdbcException ex) MessageBox.Show(ex.Message); private void button2_Click(object sender, EventArgs e) OdbcCommandBuilder ocd = new OdbcCommandBuilder(adapter); try adapter.Update(ds); catch (Exception ex) MessageBox.Show(ex.Message); this.Close(); return; MessageBox.Show(成功); this.Close(); 七、实验结果
11、及分析登录界面:查询界面:增加界面:修改界面:删除界面:实验体会通过本次实验,我明白了数据库中的各种操作是怎么回事,这些操作有增加,修改和删除,基于这些操作,完成了学生信息管理系统。在用C#完成系统的过程中,重新回顾了高级程序设计语言编程的基本语法和思想,由此让我产生了许多学习的心得:在上理论课的时候,要把笔记做好,课堂上的重点内容需要记录下来,尤其是关于技术方面的知识,这些知识的贯通需要通过应用来实现,在实验的实践过程中把理论知识用起来,达到活学活用的目的。在完成了本次实验之后,我对于SQL代码的掌握更熟练了,而且对于C#语法的认识更深刻,在做出体现面向对象的程序的能力上,有所进步。第二部分
12、 实验二、实验三实验二 表查询一 实验要求根据给定的样例数据库pubs,完成以下查询操作。1、无条件查询 1) 查找pub库中authors表的全部信息。 2) 查找其他样例表中全部信息。 2、简单条件查询 1) 查找titles表中全部书号及书名。 2) 查找titles 表中价格在$1518 元之间的书的书名。 3) 查找titles 表中书名以T 开头的书号, 书名。 4) 对其他样例表构造各种简单查询条件,进行查询。 3、多条件查询 1) 查找书名起始字符为T,价格小于$16元的书名及价格。 2) 查找书名起始字符不为T的, 价格大于$16元的书号, 书名及价格。 3) 对其他样例表构
13、造多个查询条件,进行查询。 4、用连接操作(或嵌套查询)进行查询 1) 使用样例表titles, publishers 进行查询: 查找出版社的名称以及所出的书名。 2) 使用样例表authors, titleauthor, titles进行查询: 查找整理的姓、名和所写的书名。 3) 对构造其他条件,在两个以上样例表中进行查询。 5、得到排序的查询结果 1)查找整理的姓、名、电话号码,并按整理姓、名排列。 2)查找书名和书的价格,按书价由大到小的次序排列。 3)对其他样例表构造查询条件、排序要求,给出查询结果。 6、使用函数进行查找 1)列出有多少类书。 2)列出书的定价有多少种。 3)列出
14、书价最低的书名和书价。 4)查出书价最高的书名及书价。 5)列出当年销量的总和。 6)构造其他查询条件和统计要求,给出查询结果。二 实验结果select *from authorsselect *from discountsselect *from salesselect *from titlesselect *from employeeselect *from jobsselect *from pub_infoselect *from publishersselect *from royschedselect *from storesselect *from titleauthorselec
15、t title_id,titlefrom titlesselect titlefrom titles where price15 and price18select title_id,titlefrom titleswhere title like T%select title_id,title,pub_idfrom titleswhere pub_id1000select price,titlefrom titleswhere price16select title_id,title,pricefrom titleswhere title not like T% and price=16se
16、lect pub_name,titlefrom titles,publisherswhere titles.pub_id=publishers.pub_idselect au_lname,au_fname,titlefrom authors,titleauthor,titleswhere titles.title_id=titleauthor.title_id and titleauthor.au_id=authors.au_idselect city,titlefrom titles,publisherswhere titles.pub_id=publishers.pub_idselect
17、au_fname,au_lname,phonefrom authorsorder by au_fname,au_lnameselect title,pricefrom titlesorder by price descselect title,pricefrom titlesorder by price ascselect COUNT(distinct type) as 书的种类from titlesselect COUNT(distinct price) as 定价种类from titlesselect title,pricefrom titleswhere price=(select mi
18、n(price)from titles)select title,pricefrom titleswhere price=(select max(price)from titles)实验三 对象的建立与数据更新操作一 实验要求1 创建和修改对象(1)创建表对象 按照下面的的结构与内容建两个关系。表名分别以S、T 开头,后面是建表人的学号(以下简记为T*、S* )。先用create table 命令建立表的初始结构,表T*的初始结构包括下面T*中前四个属性。然后再用alter table .add. 添加一个属性: QTY(库存量)。并插入相应的内容。T* Title author t_nopr
19、iceQTY计算机原理张一平S3092 20.80 200 C语言程序设计李华H1298 15.30 300 数据库原理王家树D1007 22.70 150 计算机网络高明S5690 18.90 230 Artificial intelligence P.Winston D2008 20.50 400 Expert systems R.Ullman H3067 17.00 370 软件工程鲁廷璋S2005 35.00 200 Fortran 程序设计顾学峰S5006 18.00 180 S* T_no Page pub-date S3092 304 1986 D1007 280 1993 S5
20、006 315 1987 S5690 300 1993 H1298 210 1989 D2008 358 1994 S2005 298 1995 H3067 307 1995 (2)用alter table.alter column.改变属性title 的长度。 (3)用子查询方式建新表。表名以ST 开头, 后面为建表人学号(简记为ST* )。 (新表内须包括title和price 两个属性。) (4)按t_no 建索引,索引名为IT* (*表示建表人的学号,下同)。 (5)用子查询方式建视图,视图名为VT* , 并在视图上查找所需信息。 (6)删除以VT* 命名的视图。 (7)删除以ST*
21、命名的表。 2、记录的插入、删除与更新 (1)同前,用子查询方式建立表ST* 。该表的属性应有t_no, title, price。 (2)在ST* 表中插入一元组: S7028, Digital Image Processing, 36.00 (3)删除书名为“Fortran 程序设计”的那个元组。 (4)删除书号以H 开头的元组。 (5)把书价调整到原来价格的95% 。 (6)把书号以D 开头的那些书的书价减掉2.00元。 (7)将“计算机原理”的书号改为S1135。 (8)对所建的表,进行各种插入、删除、更新操作。 (9)每次修改表后,可用select 查看一下修改后表中的内容,看是否满
22、足要求。 3、统计 (1)计算T* 表中这些书籍的最高书价、最低书价及平均书价。 (2)计算T* 表中的书的种类是多少。 (3)计算S* 表中1990年后出版的书有多少。 (4)计算总共有多少本书。 (5)对样例表,设计统计要求,获得各种统计量。 二 实验结果/* 1 */*(1)*/create database studentuse studentcreate table T631507020418( Title varchar(30), author varchar(15), t_no char(6), price numeric(6,2) )insert into T631507020
23、418(Title,author,t_no,price)select 计算机原理,张一平,S3092,20.8union allselect C语言程序设计,李华,H1298,15.3union allselect 数据库原理,王家树,D1007,22.7union allselect 计算机网络,高明,S5690,18.9union allselect Artificial intelligence,P.Winston,D2008,20.5union allselect Expert systems,R.Ullman,H3067,17union allselect 软件工程,鲁廷璋,S200
24、5,35union allselect Fortran程序设计,顾学峰,S5006,18alter table T631507020418add QTY intupdate T631507020418 set QTY=200 where t_no=S3092update T631507020418 set QTY=300 where t_no=H1298update T631507020418 set QTY=150 where t_no=D1007update T631507020418 set QTY=230 where t_no=S5690update T631507020418 set
25、 QTY=400 where t_no=D2008update T631507020418 set QTY=370 where t_no=H3067update T631507020418 set QTY=200 where t_no=S2005update T631507020418 set QTY=180 where t_no=S5006create table S6*0418( T_no char(6), page int, pub_date date)insert into S6*0418select S3092,304,1986union allselect D1007,280,19
26、93union allselect S5006,315,1987union allselect S5690,300,1993union allselect H1298,210,1989union allselect D2008,358,1994union allselect S2005,298,1995union allselect H3067,307,1995/*(2)*/alter table T631507020418alter column Title varchar(35)/*(3)*/select Title,price into ST631507020418 from T6315
27、07020418/*(4)*/create index IT6315070200418on T631507020418(t_no)/*(5)*/create view VT631507020418 asselect * from T631507020418/*(6)*/drop view VT631507020418/*(7)*/drop table ST631507020418/* 2 */*(1)*/select T_no,Title,price into ST631507020418from T631507020418/*(2)*/insert into ST631507020418se
28、lect S7028,Digital Image Processing,36/*(3)*/deletefrom ST631507020418where Title=Fortran程序设计/*(4)*/deletefrom ST631507020418where t_no like H%/*(5)*/update ST631507020418set price=price*0.95/*(6)*/update ST631507020418set price=price-2where t_no like D%/*(7)*/update ST631507020418set t_no=S1135where Title=计算机原理/*(8) 无*/*(9) 无*/* 3 */*(1)*/select max(price) MAX,min(price) MIN,avg(price) AVGfrom T631507020418/*(2)*/select count(Title) 种类from T631507020418/*(3)*/select count(*)from S6*0418where DATEDIFF(yea
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1