您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 重庆邮电大学数据库实验报告
实验一PowerDesigner的CDM应用学号姓名一、实验内容用PowerDesigner设计概念数据模型。二、遇到的问题及解决说实话第一次实验比较简单,而且实验指导书讲解得非常的详细,所以我按部就班地做一会儿就做出来了,有一点小问题就是在设置主键的时候勾选到F了,后来一想主键应该是Primarykey才对,F应该是Foreignkey,然后修改过来了。三、心得体会用PowerDesigner设计概念模型非常的方便,这方便我们在以后将概念数据模型转换为屋里数据模型。实验二PowerDesigner的PDM应用学号姓名一、实验内容将PowerDesigner的概念数据模型转换为物理数据模型。/*==============================================================*//*DBMSname:MySQL5.0*//*Createdon:2014-3-1819:57:37*//*==============================================================*/droptableifexistsBookstore;droptableifexistsaddress;droptableifexistsbuybook;droptableifexistscustomer;/*==============================================================*//*Table:Bookstore*//*==============================================================*/createtableBookstore(storeIdchar(6)notnull,storenamevarchar(30),Addressvarchar(60),cityvarchar(20),prevencevarchar(20),codechar(6),primarykey(storeId));/*==============================================================*//*Table:address*//*==============================================================*/createtableaddress(AddressTypechar(2),CustomerIDvarchar(10),Address1varchar(50),Address2varchar(50),Cityvarchar(20),Statevarchar(15),zipcodechar(6)notnull,primarykey(zipcode));/*==============================================================*//*Table:buybook*//*==============================================================*/createtablebuybook(CustomerIDvarchar(10)notnull,storeIdchar(6),primarykey(CustomerID));/*==============================================================*//*Table:customer*//*==============================================================*/createtablecustomer(CustomerIDvarchar(10)notnull,AccountBalancedecimal(10,2),FirstNamevarchar(10),LastNamevarchar(20),CompanyNamevarchar(40),primarykey(CustomerID));altertableaddressaddconstraintFK_liveinforeignkey(CustomerID)referencescustomer(CustomerID)ondeleterestrictonupdaterestrict;altertablebuybookaddconstraintFK_buybookforeignkey(CustomerID)referencescustomer(CustomerID)ondeleterestrictonupdaterestrict;altertablebuybookaddconstraintFK_buybook2foreignkey(storeId)referencesBookstore(storeId)ondeleterestrictonupdaterestrict;二遇到的问题及解决这次试验的难度有所提升,所以问题开始多了起来,总共遇到两个问题,1.在生成PDM的过程中会包两个错误,思考了很久,我看到错误提示是关于key(键)的,由于有一个关系没有设置主键,所以产生PDM的时候会报错,于是我把那个关系设置了一个主键问题就解决了。2.运行sql文件中的语句时出现的错误,在生成sql文件的时候生成的是中文语句,于是我要把所有的中文词汇替换成对应的英文,在替换中出现了一点小错误,按照命令提示的错误我找到了错误的地方,修改后能正常运行,建立好了数据库。三心得体会这是第一次用命令提示符创建好了数据库,虽然现在主流一般都用数据库管理工具,但是掌握好这一技能也是必要的,这次虽然遇到很多错误,但是收获很大,让我明白了数据库的严谨性,不能有一点的错误。实验三NavicatforMySQL的使用基础学号姓名一实验内容对在Navicat中mysql的基础使用进行学习。二遇到的问题及解决这次我们的是Navicat的可视化操作,所以很简单,一般这种发生的问题不过都是有一些功能找不到菜单,然后问问同学和老师就解决了。三心得体会我发现Navicat是一个非常好用而且界面简洁的数据库可视化工具,就算不会数据库语言的人也能轻松的建表,而且功能非常齐全,建表,查看,修改,都有对应的可视化操作菜单,但是我觉得还是应该尽量用数据库语言对数据库进行操作,这样不管有没有可视化工具我们都能游刃有余的操作数据库。实验四SQL语言数据定义语言DDL学号姓名一实验内容学会使用SQL语言中的CREATE,DROP,ALTER语句对数据库的相关操作。1.createtablestudent(studentidvarchar(10),namevarchar(20),sexvarchar(2),ageinteger,Feedecimal(10,2),addressvarchar(50),memovarchar(300));2.createtableCourseAa(Aa1varchar(20),Aa2Integer,Aa3decimal(10));3.createtableChooseBb(Bb1varchar(30),Bb2Integer,Bb3decimal(6));6.droptableCourseAa;7.altertableChoosebbaddBb4varchar(20)default'系统测试值'notnull;8.altertableChooseBbaddBb5varchar(10)primarykey;9.createviewView_Choosebb(View_bb1,View_bb2,View_bb3)asselectBb1,Bb4,Bb5fromChooseBb;10.dropviewView_Choosebb;11.createindexIndex_bb2onChooseBb(Bb2ASC);createindexIndex_bb4onChoosebb(bb4desc);12.dropindexIndex_bb2onchoosebb;二遇到的问题及解决在创建表的时候要定义一些数据结构,每个数据结构之间要用逗号隔开,而且最后一个之后不能打逗号,必须严格的按照sql的语法来实现,否则会报错。而且尽量避免使用DROP语句,否则如果错删除表是很难恢复的。三心得体会上次我们用的都是用的可视化菜单来操作数据库,这次是用sql的语句,除了一些小细节,其他的方面还好,都能得到正确的答案。实验五SQL语言数据操纵语言DML学号姓名一实验内容:用sql语句INSERT,UPDATE,DELETE对数据库表进行操作。创建test表3.createtabletest(Namevarchar(20),ageInteger,ScoreNumeric(10,2),Addressvarchar(60));4.向test插入数据:insertintotestvalues('赵一',20,580.00,'重邮宿舍12-3-5'),('钱二',19,540.00,'南福苑5-2-9'),('孙三',21,555.50,'学生新区21-5-15'),('李四',22,505.00,'重邮宿舍8-6-22'),('周五',20,495.50,'学生新区23-4-8'),('吴六',19,435.00,'南福苑2-5-12');5.创建test_temp表createtabletest_temp(Namevarchar(20),ageInteger,ScoreNumeric(10,2),Addressvarchar(60));6.向test_temp插入数据:insertintotest_tempvalues('郑七',21,490.50,'重邮宿舍11-2-1'),('张八',20,560.00,'南福苑3-3-3'),('王九',10,515.00,'学生新区19-7-1');7.insertintotestselect*fromtest_temp;8.updatetestsetScore=Score+5whereage=20;9.updatetestsetage=age-1whereAddresslike'南福苑%';10.deletefromtestwhereage=21andScore=500;11.deletefromtestwhereScore550andAddresslike'重邮宿舍%';二遇到的问题及解决这个实验中要求插入多组数据,一开始只是写多个INSERT数据进行插入,觉得这样很麻烦,后来发现INSERT后面接多个数据也可以插入,于是插入数据变得简单了很多。三心得体会终于我们能够用sql语句插入数据了,可以将数据存储到数据库中进行保存,但是这只是入门的知识,后面还要对数据库的的结构进行优化,这样存储的效率才能更高效。实验六SQL语言数据查询语言DQL学号姓名一、实验内容数据查询语言指对数据库中的数据查询、统计、分组、排序等操作。查询语句可以分为简单查询、连接查询、嵌套查询和组合查询等。SELECT*FROMstudentWHEREEXISTS(SELECTCollegeFROMstudentWHEREName='张三')ANDCollege=(SELECTCollegeFROMstudentWHEREName='张三')ANDName!='张三';SELECTCourseID,CourseNameFROMcourseWHERECourseBeforeIDISNULL;SELECTSNO,NameFROMstudentWHERECollege='计算机学院';SELECT*FROMstudentWHEREageBETWEEN20AND23;SELECTchoose.SNO,ScoreFROMstudent,chooseWHEREC
本文标题:重庆邮电大学数据库实验报告
链接地址:https://www.777doc.com/doc-5817730 .html