数据库应用与设计实验报告.doc

上传人:哈尼dd 文档编号:5022982 上传时间:2020-01-29 格式:DOC 页数:75 大小:2.02MB
返回 下载 相关 举报
数据库应用与设计实验报告.doc_第1页
第1页 / 共75页
数据库应用与设计实验报告.doc_第2页
第2页 / 共75页
数据库应用与设计实验报告.doc_第3页
第3页 / 共75页
数据库应用与设计实验报告.doc_第4页
第4页 / 共75页
数据库应用与设计实验报告.doc_第5页
第5页 / 共75页
点击查看更多>>
资源描述

《数据库应用与设计实验报告.doc》由会员分享,可在线阅读,更多相关《数据库应用与设计实验报告.doc(75页珍藏版)》请在三一文库上搜索。

1、 实 验 报 告课程名称:数据库应用与设计 班级:姓名: 学号: 一、实验目的(1)进一步熟悉 VisualFoxPro6.0 的窗口界面及各菜单项的基本用途。(2)初步掌握 VisualFoxPro 的基本数据类型。掌握变量的赋值、输出、清除、保存以及恢复;区分常量、变量的不同;掌握运算符使用及表达式的书写。(3)初步掌握 VisualFoxPro 的常用函数的使用及表达式的书写规则。二、实验要求(1)实验前复习 VisualFoxPro 的用户界面、操作方式、命令的结构。(2)掌握 VisualFoxPro 的数据类型、运算规则和函数功能(3)掌握交互式命令执行方法。三、实验内容1、简单内

2、存变量的赋值与输出(1) 用赋值号“=” ,对变量 A,B,C,D,E 分别赋值为数值常量 123,字符常量“abc” ,日期常量20060910,逻辑常量.t.,字符常量”CDF” (其中“”表示空格) ;(2)在下一行输出 A,B,C,D 的值;(3)用命令STORE 对变量 X1,X2,XYZ,XZ 均赋值为 10;(4)在当前行输出 X1,X2,XYZ,XZ的值;(5)分别用listmemory/displaymemory显示内存中的变量,观察这两个命令的区别。 解:A=123B=abc C=2006-09-10D=.t.E= CDF?A,B,C,Dstore 10 to X1,X2,

3、XYZ,XZ?X1,X2,XYZ,XZ 当变量很多时,list命令只显示最后一屏内容,而display命令可以分别显示每一屏内容。2 数组的赋值与输出(1)定义两个数组变量 X(3),Y(2,3)(2)用 displaymemory 显示数组 x,y,观察其元素个数及值(3)在命令窗口依次执行如下三条命令: x=3y(1,1)=5y(2,2)=.t.(4)输出 x(1),x(2),x(3),y(1,1),y(1,2),y(2,2),y(1) ,y(5)的值,观察其结果,注意数组变量赋值和数组元素赋值的不同,体会一维数组和二维数组的关系。解: Dimension X(3),Y(2,3)Disp

4、memo like XDisp memo like Yx=3 y(1,1)=5 y(2,2)=.t.? x(1),x(2),x(3),y(1,1),y(1,2),y(2,2),y(1),y(5)3 变量的清除、保存以及恢复(1)将以上定义的变量保存在文件 bl.mem 中(2)将 X 开头的内存变量清除,并用 displaymemory 显示 解:save to bl.mem all Release all like x*Disp memo (2) 将文件bl.mem 中的变量恢复到内存中,并用 displaymemory 显示,观察与有何不同? Restore from bl.memDisp

5、 memo 4 利用前面定义的变量 A、B、C、D、E,完成以下操作,注意变量与常量的区别:(1) 输出变量 B 和字符串常量”B” ,观察两者有何不同;(2)输出日期型常量20060910和变量 C;(3)给变量t 赋值为 2,执行命令 ?.t.,t 注意观察结果。解:?B?B?2006-09-10?Ct=2?.t.,t5 利用前面定义的变量 A、B、C、D、E,完成以下操作,注意运算符的使用:(1) 输出当天日期与日期型变量 C相差的天数;?date()-c(2) 输出当天日期的前 10 天和后 10天的日期;?date()-10?date()+10(3) 输出变量 A加上 20后的结果;

6、?A+20(4)执行命令?B+E+Z,BE+Z,观察两者有何不同;(5)输出表达式 C+10DATE() 的值; ? C+10D 的值; ?B=ab .T. ?B=abD .F.(7)执行命令 setexacton 后,输出(6)中表达式的值,与上题输出的值进行比较。 ?B=ab .F. ?B=abD .F.6 转换成 VFP的表达式,并计算表达式的值设直角三角形的两条直角边长分别为 a=12,b=13,求斜边 c 的长度,并保留一位小数解: a=12b=13c=sqrt(a*a+b*b)?round(c,1) 7 利用函数完成以下操作,注意函数的使用:假设 N=345.789(1) 求 N

7、的绝对值和绝对值的平方根; ?ABS(N) ?sqrt(abs(N)(2) 输出 N的整数部分,不允许四舍五入; ?int (N)(3) 对 N 保留小数 2 位; ?round(N,2)(4) 将 N 的值转换字符型,总位数为 7 位,小数位为 1 位。 ?str(N,7,1)假设 S1=安徽计算机基础学会(5) 从字符串 S1 中分别取出字符串安徽、计算机、学会;?substr(s1,1,4)?substr(s1,5,6)?substr(s1,15,4)(6) 分别测试字符串计算机、计算机学会在字符串 S1 中的起始位置。?at(计算机,s1)?at(计算机学会,s1)(7) 测试字符串学

8、会在字符串安徽计算机基础学会是华东地区计算机基础研究学会第二次出现的位置;?at(学会,安徽计算机基础学会是华东地区计算机基础研究学会,2)(8) 将字符串 S1 中的安徽改成中部地区;?stuff(s1,1,4, 中部地区)(9) 将字符串 S1 中的基础去掉; ?stuff(s1,11,4,)(10) 在字符串 S1 的前后各加 5 个星号; ?*&S1.* 假设 S2= abCD34fgS(其中“”表示空格)(11)分别删除字符串 S2 的首部空格、尾部空格、首尾的所有空格; ?right(s2,11) ?left(s2,12) ?alltrim(s2)(12)将字符串 S2 中所有字母

9、分别转换为大写字母、小写字母; ?upper(s2) ?lower(s2) (13)输出当前的系统日期、系统时间,并分别测试其类型; ?date() ?time() ?type(date() ?type(time()(14)取出系统日期时间中的年、月、日、时、分、秒; ?datetime()?year(datetime() ?month(datetime() ?day(datetime() ?hour(datetime() ?minute(datetime() ?second(datetime()假设 C=07/21/2005(15)将字符串 C转换为日期型并求出它 15 天后的日期; ?ct

10、od(C) ?ctod(C)+15(16)分别将字符串123.456、34abc56、ab123转换成数值型,并观察它们的不同; ?val(123.456) ?val(34abc56) ?val(ab123) Val()函数遇到非数字字符,停止转换;对于含小数的数字字符,会自动四舍五入保留两位小数。(17)执行命令 ?mod(35,6),mod(35,6),mod(35,6),mod(35,6) 注意观察当两个参数符号改变后其值有何不同; 两数值表达式同号时,余数符号为表达式2的符号。两表达式异号时,函数值为表达式1除以表达式2的余数(符号为表达式1的)加上表达式2的值(18)分别测试字符串A

11、,ABC的 ASC码。 ?asc(A) ?asc(ABC)(19)输出比Z的 ASCII 小 20 的字符。 ?chr(asc(Z)-20)实 验 报 告 (二)课程名称:数据库应用与设计 3. 实验内容(1)根据以下给定的数据表信息分别对student, course, score, teacher, teching 表进行数据插入和修改,以完成给定的数据录入,同时要求输入班级同学名录模拟客观真实情况,给student、score表添加30条以上记录,以便以后查询应用方便。Student表:SnosnameSbirthdaySclass011110101章海潮1982.02.07信管系010

12、1011111103王天力1982.03.04电商系0101011111204董丞悟1982.06.06电商系0102011112110马丽鹃1982.04.03工商系0101011113104杨乾坤1982.03.23会计系0101011113221刘抗日1983.01.16会计系0102011114111丘海棠1983.02.08旅游系0101011115208齐振国1982.07.22旅游系0102001011101王晓悦1982.01.12材料系0001001011212程伊莲1982.03.21材料系0002course表:CnoCnameCpnoCreditCtimeC001数据库

13、原理C005464C002高等数学472C003管理信息系统C001454C004操作系统C006332C005数据结构C007432C006计算机文化基础232C007C语言程序设计C006332score表:SnoCnoScore011110101C00190011111103C00185011111204C00173011112110C00198011113104C00196011113221C00197011114111C00183011115208C00185011110101C00792011111103C00797teacher表:TnoTnameTsexDepartmentT0

14、01江承基男信息管理系T002梁其征男信息管理系T003徐茉莉女信息管理系T004吴雅云女信息管理系T005杨运铎男电子商务系T006张昌盛男电子商务系T007程力衡男电子商务系Teaching表TnocnotdateclassroomsclassT001C0051988-01-09西二405信管系0101T002C0071990-02-01西二406电商系0101T003C0011985-09-10西二504电商系0102T004C0061984-07-15主401工商系0101T005C0041989-11-12主402会计系0101T006C0021991-05-21西二506会计系01

15、02(3)求每门课的平均成绩,并把结果存入average表;(4)将学生“马丽鹃”的出生日期改为“1982.8.20”;(5)将所有学生的zipcode属性列值填补上;(6)将average表中的所有课程的平均成绩置零;(7)删除average表中的课程号为c007的平均成绩记录;(8)删除所有average表中平均成绩记录;(9)建立一个临时学生信息表(tstudent),删除该表中的学号前六位为001011的所有学生记录。 Select *; From student; Into cursor tstudent; where substr(Sno,1,6)!=001011(10)查询全体学

16、生的学号与姓名; Select Sno,Sname; From student(11)查询全体学生的学号、姓名、所属班级; Select Sno,Sname,Sclass From student (12)查询全体学生的详细记录; Select * From student(13)查询全体学生的姓名及其年龄; Select Sname,year(date()-year(Sbirthday) as age; From student(14)查询全体学生的姓名、出生年份; Select Sname,Sbirthday From student(15)查询所有修过课的学生的学号; Select st

17、udent.Sno; From score, student; Where score.Sno=student.Sno(16)查询“信管系0101”班全体学生名单; Select Sname; From student; Where Sclass= 信管系0101 (17)查询查询所有年龄在27岁以下的学生姓名及其年龄; Select Sname,year(date()-year(Sbirthday) as age; From student; Where year(date()-year(Sbirthday)=27(18)查询考试成绩有不及格的学生的学号; Select Sno; From

18、score; Where Score15 and year(date()-year(Sbirthday) 28 注:也可以用between and 查询(20)查询年龄不在15至28岁之间的学生姓名、班级和年龄; Select Sname,Sclass, year(date()-year(Sbirthday) as age; From student; Where year(date()-year(Sbirthday)=28 (21)查询“信管系0101”和“电商系0102”班的学生的姓名和班级信息; Select Sname,Sclass; From student; Where Sclas

19、s= 信管系0101or Sclass= 电商系0102 (22)查询既不是“信管系0101”也不是“电商系0102”班的学生的姓名和班级信息; Select Sname,Sclass; From student; Where Sclass!= 信管系0101and Sclass!= 电商系0102(23)查询学号为“011113104”的学生的详细情况; Select *; From student; Where Sno=011113104 (24)查询学号以“0111”打头的学生信息; Select *; From student; Where substr(Sno,1,4)=0111 (

20、25)查询所有姓“张”学生的学号、姓名、性别、年龄; Select Sno,Sname,year(date()-year(Sbirthday) as age; From student; Where Sname like 张%(26)查询名字中第二个字有“海”字的学生的学号、姓名、性别、年龄; Select Sno,Sname, year(date()-year(Sbirthday) as age; From student; Where substr(Sname,3,2)=海(27)查询所有不姓“刘”学生的姓名; Select Sname; From student; Where subst

21、r(Sname,1,2)!=刘 (28)查询课程号以“C”开头的最后两个字母为“05”的课程号和课程名; Select Cno,Cname; From course; Where Cno like C%and substr(Cno,3,2)=05(29)某些学生选修某门课程后没有参加考试,所以有选修课记录,但没有考试成绩,试查找缺少考试成绩的学生和相应的课程号; Select Sno,Cno; From score; Where Score=0(30)查找全部有成绩记录的学生学号、课程号; Select Sno,Cno; From score; Where Score!=0(31)查找“电商系

22、0101”班年龄在27岁以下的学生学号、姓名; Select Sno,Sname; From student; Where Sclass= 电商系0101and year(date()-year(Sbirthday)=2(40)自然连接student和score表; Select *; From student full join score; On student.Sno=score.Sno(41)使用自身连接查询每一门课程的间接先行课(即先行课的先行课) Select x.Cno,y.Cpno; From course as x,course as y; Where x.Cpno=y.Cn

23、o Group by x.Cno (42)使用复合条件连接查询选修“c001”号课程且成绩在90分以上的所有同学; Select student.Sno,student.Sname,score.Score; From student,score; Where student.Sno=score.Sno ;and score.Cno=C001;and score.Score=90 (43)使用复合条件连接查询每个学生选修的课程名及其成绩; Select course.Cname,score.Score; From course,score; Where course.Cno=score.Cno(

24、44)查询选修了全部课程的学生; Select student.Sno,student.Sname; From student; Where Sno in; (select score.Sno; From score; Group by score.Sno; Having count(*)=7) (45)查询至少选修全部学分数为4个学分的课程的学生的学号、姓名; select student.Sno,student.Sname; from student,score,course; where student.Sno=score.Sno;and score.Cno=course.Cno;gro

25、up by score.Sno;having sum(course.Credit)=4 (46)查询所有选修了C001号课程的学生学号、姓名; Select student.Sno,student.Sname; From student; Where Sno in; (select score.Sno; From score; Where score.Cno=C001)(47)查询选修了课程C001或c007的学生学号、姓名; Select student.Sno,student.Sname; From student; Where Sno in; (select score.Sno; Fro

26、m score; Where score.Cno=C001or score.Cno=C007)(48)查询“会计系0102”班的学生及年龄不大于27岁(现有年龄)的学生; Select *; From student; Where Sclass= 会计系0102 and year(date()-year(Sbirthday)all; (select Sbirthday; From student; Where Sclass=信管系0101)(52)查询与“齐振国”在同一个班学习的学生学号、姓名、性别、年龄; Select Sno,Sname,year(date()-year(Sbirthday

27、)as age; From student; Where Sclass in; (select Sclass; From student; Where Sname=齐振国)(53)建立“信管系0101”班学生的视图,定义视图名为“info_student1”; (55)建立“信管系0101”班选修了“C001”课程的学生的视图,定义视图名为“info_C001_student1”; (56)建立“信管系0101”班选修了“C001”课程且成绩在90分以上的学生的视图,定义视图名为“info_c001_student2”;(57)定义一个反映学生年龄的视图,定义视图名为“vbirthday_st

28、udent”; (58)将学生表中所有女生记录定义为一个视图,视图名为“vfemale_student”;(59)将学生的学号及其平均成绩定义为一个视图,视图名为“vaverage_student”; (60)删除视图“info_student1”,删除后即重建; Delete view info_student1(61)在“信管系0101”班学生视图中找出年龄小于27岁(现在的年龄)的学生; use info_student1select *;from info_student1;where year(date()-year(Sbirthday)27(62)利用视图查询“信管系0101”班选

29、修了“C001”课程的学生; Select Sname; From view info_C001_student1 (63)通过“信管系0101”班info_student2视图中学号“011111103”的学生姓名改为“潘长江”; Modify view info_student2 (64)向“信管系0101”班info_student1视图中插入一个新学生记录,其中:学号:011111136,姓名:张艺谋,性别:男,出生日期:1987.11.9;(65)通过视图info_student1删除信管系0101班学号为“011111135”、姓名为“黄健中”的学生记录; Delete from info_student1; Where Sno=011111135(注:不能彻底删除此记录,因为视图只是一个虚拟表)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 研究报告 > 商业贸易


经营许可证编号:宁ICP备18001539号-1