access查询操作(共7篇)
Access课堂练习六
姓名 学号
SQL命令查询书面练习
已知教师管理系统中的2个表分别为:
教师(教师编号,姓名,性别,部门编号,出生时间,工作时间,职称,基础工资,岗位工资,绩效工资)部门(部门编号,部门名称,担任职务,办公室电话(0571-6018845),业余爱好)
完成下列问题的SQL命令的表示:
1.查询教师表中出所有教师的姓名、性别和职称。
2.查询所有教师的姓名,性别,部门名称,担任职务和职称。3.查询教师表中姓名,性别,工龄和职称。4.查询教师表中姓名,性别,职称和工资总额。5.查询所有教授的姓名,部门名称和担任职务。6.查询55岁及上的教师姓名和性别。
7.查询教师表中工龄在10年到20的教师信息。
8.查询部门名称为“人事处”、“英语系”、“计算机系”的教师信息。9.查询按基础工资排序的教师信息。10.查询按职称分类的平均绩效工资。11.查询业余爱好中含有“运动”的教师信息。
12.查询部门表中办公室电话升级后(0571-86018845)的部门信息。
1.select 姓名,性别,职称 from 教师
2.select 姓名,性别,部门名称,担任职务,职称 from 教师,部门 3.select 姓名,性别,year(date(0))-year(工作时间)as 工龄 from 教师
4.select 姓名,性别,职称,基础工资+岗位工资+绩效工资 as 工资总额from 教师 5.select 姓名,部门名称,担任职务 from 教师,部门where 职称=”教授” 6.select 姓名,性别 from 教师 where year(date(0)-year(出生时间))>=55 浙江大学城市学院
Access课堂练习
1 查询的理解
查询是对数据的重新组织,查询中保存的是查询方式,在查询的表视图中看到的是查询的运行结果,当关闭查询,这个运行就消失了,再次运行查询,重新从表中提取数据,显示查询结果,所以说查询的结果是一个动态的数据集。查询类型包括选择查询、参数查询、交叉表查询、操作查询和SQL查询。
2 操作查询
选择查询、参数查询和交叉表查询都是从表或查询中检索符合条件的记录,而不改变表
中原有数据。操作查询用来编辑表中数据,不仅可以生成新表,而且还可以批量删除、追加、更新表中记录。操作查询包括生成表查询、追加查询、删除查询和更新查询。运行操作查询可以批量修改表中数据,为了避免操作失误,需要备份数据库中的数据。操作查询的图标中包含一个感叹号,以引起用户注意。操作查询的结果是不能直接看到的,必须打开表对象才能看到。该文以Access2007版为基础,来探讨一下操作查询的使用。
以“教学管理数据”库(如图1所示)为例。
2.1 生成表查询
在Access中,从表中访问数据要比从查询中访问数据快得多,如果经常要从几个表中提取数据,最好的方法是使用Access提供的生成表查询,即从多个表中提取数据组合起来生成一个新表永久保存。
例:利用“学生”、“课程”和“成绩”表生成一个新表,表名为“男生信息”。新表仅包含1990年出生的女生记录,字段包括“学号”、“姓名”、“性别”、“课名”和“分数”。该题可以通过一个生成表查询来完成。
通过查询设计器完成如下(如图2所示):
打开查询设计器,单击生成表查询,出现“生成表”对话框,生成的新表的名称为“男生信息”。相应的Select语句为:
SELECT学生.学号,姓名,性别,课名,分数INTO女生记录
FROM学生INNER JOIN(课程INNER JOIN成绩ON课程.课号=成绩.课号)ON学生.学号=成绩.学号WHERE学生.性别="女"AND Year([出生日期])=1990
在该Select语句中对于生成表查询关键的是INTO子句。
2.2 删除查询
对于一些无用的数据应及时从数据库中删除。删除查询可以从单个表中删除记录,也可以从多个相互关联的表中删除记录。如果要从多个表中删除相关记录必须满足以下条件:
(1)在“关系”窗口中定义相关表之间的关系。
(2)在“关系”对话框中选中“实施参照完整性”复选框。
(3)在“关系”对话框中选中“级联删除相关记录”复选框。
例:复制“课程”表的副本为“课程信息”,“成绩”表的副本为“成绩信息”,删除“课程信息”中“选修”课程,同时删除“成绩信息”表中的相关记录。
通过查询设计器完成如下(如图3所示):
打开查询设计器,单击删除查询,在该窗口中关键的是多出了“删除”这一行。要先双击一下“*”,代表所有字段,因为删除查询删除的是整个记录,而不是记录中的某些字段。
相应的Select语句为:
DELETE*FROM课程信息WHERE课程信息.类别="选修"
在该语句中DELETE就是删除指定表中符合条件的记录,功能相当于删除查询。
2.3 更新查询
在建立和维护数据库的过程中,常常需要对表中的记录进行更新和修改。如果用户通过“数据表”视图来更新表中记录,那么当更新的记录很多,或更新的记录符合一定条件,最简单、有效的方法是利用Access提供的更新查询。
如果创建了表间关系,并选中“级联更新相关字段”复选框,更新主表的主键字段,同时更新子表的外键字段。
例:复制“教师”表为“教师信息”表,将“教师信息”表中“编号”字段内容的尾部再增加一位数字“5”。在定义该表时,“编号”字段为字符型。
通过查询设计器完成如下(如图4所示):
打开查询设计器,单击更新查询,在该窗口中关键的是多出了“更新到”这一行。
相应的Select语句为:
UPDATE教师信息SET教师信息.编号=[编号]+"5"
在该语句中UPDATE就是指更新指定表中符合条件记录的字段内容,相当于更新查询。
2.4 追加查询
维护数据库时,常常需要将某个表中符合一定条件的记录添加到另一个表上。Access提供的追加查询能够很容易地实现一组记录的添加。
例:有一空表“优秀”表,包括“学号”、“姓名”、“课名”和“分数”字段,将“学生”、“课程”和“成绩”表中90分以上的记录追加到“优秀”表中。
通过查询设计器完成如下(如图5所示):
打开查询设计器,单击追加查询,出现“追加”对话框,选择“优秀”表。在追加查询的设计器中与其它查询相比,多出了“追加到”这一行。
相应的Select语句为:
INSERT INTO优秀(学号,姓名,课名,分数)
SELECT学生.学号,学生.姓名,课程.课名,成绩.分数
FROM学生INNER JOIN(课程INNER JOIN成绩ON课程.课号=成绩.课号)ON学生.学号=成绩.学号WHERE成绩.分数
在该语句中,INSERT就是在指定表的尾部插入一个新记录,功能相当于追加查询。
3 结束语
该文通过具体的实例,以Access2007为基础,探讨了Access数据库中操作查询的使用,通过查询设计器和相应的SELECT语句来实现操作查询。对操作查询过程中需要注意的事项进行了分析和总结,把容易混淆的知识点进行了对比,对操作查询的学习能够起到事半功倍的效果。
参考文献
[1]教育部考试中心.全国计算机等级考试二级教程——Access数据库程序设计[M].北京:高等教育出版社,2004.
[2]申石磊,季超,楚艳萍.Access程序设计[M].合肥:中国科学技术出版社,2009.
[3]叶建良.Access的总计查询及其解题浅析[J].电脑知识与技术,2009(3).
[4]楚艳萍,程普.Access交叉表查询研究[J].福建电脑,2010(9).
Access 操作实验报告
一、实验目的:
access是基本的信息系统操作管理工具,练习access操作目的是想了解access的一些简单操作流程和access的简单功能,在此基础上运用access创建一个由表、查询、窗体等简单的项目构成的数据库,该数据库具有简单的数据输入、管理、查询等功能,以此建立一个简单的管理信息系统。
二、实验内容:熟悉access操作,创建数据库、创建表、建立查询、创建窗体及切换面板操作。
三、实验步骤:
1)、access数据库的建立 2)、access表的创建。分别运用设计器创建表和向导创建表,并向表编辑输入数据。
3)、在已建好的表基础上,分别运用设计视图和向导创建自己想要的数据查询(先建好表之间的关系)。
4)、主要掌握与运用窗体的创建和应用。根据已建好的表或查询创建能很好反应信息数据的窗体。
5)、简单了解切换面板的建立与运用。了解窗体与切换面板的融合使用。
四、实验结论:
首先感谢老师教了我们使用一门办公操作工具,以前从来没有接触过access的操作原理、功能及用途,但通过老师的讲解(即使在没有教科书的参考学习下),我们还是有一定的收获。我自己对access还是比较感兴趣,在课后的操作练习中,我很喜欢摸索access的相关操作,如access数据库的密码设置、外部导入数据表、窗体设计的小技巧、切换面板的管理等一些探索操作,并在网上找寻相关的知识和视频讲解,也学到了一些简单的access操作。
数据库的建立,打开access2003点击文件—新建—空数据库,然后保存到指定路径并命名。先创建表,双击使用设计器创建表,在设计器中输入表中的字段名,选择字段属性,然后向表输入数据信息,关闭—重命名—保存。使用向导创建步骤就比较简单了。
查看、新建创建的各表之间的关系,根据自己想获得信息创建相应的查询。使用设计视图创建查询,选择表—选择查询字段,然后关闭—重命名—保存。
窗体的创建和功能相对复杂些。窗体的创建可以采用设计视图和向导创建。使用设计视图创建窗体可以设计出自己喜欢想要的窗体。先选择记录源表或查询,会出现对应的表或查询的字段名称,设置标签内容及属性,再运用文本框、组合框及列表框、直线等一些窗体设计工具布置窗体,然后在各框内选择控件来源绑定字段(或直接把记录源表中的字段托到窗体主体合适位置,而且自动绑定字段名称),然后运用命令按钮进行较复杂的操作,如记录导航、窗体操作、杂项等。窗体、标签、文本框等设置可以在其属性中选择设置。也可窗体向导创建较简单的窗体,步骤比较清晰、简单,还可以对用向导创建好的窗体再进行设计。
在工具中我们可以找到切换面板管理,如果数据库中没有已建好的切换面板,access会提醒是否要创建主切换面板,然后再设置主切换面板上的下一级切
工管系 2008级营销二班 王唤(2008093202)
换面板选项,再编辑要打开的窗体。
数据库密码的设置要在数据库独占方式打开才能设置,在工具—选项—高级中选择独占,打开要设置密码的数据库,在工具—安全—设置数据库密码即可。
1.1 登录
登录个人查询系统,需要在登录页面输入身份证、真实姓名、所在单位、密码、校验码且全部正确,方可登录系统;(注:“身份证”有字母的需大写,“所在单位”是指参保人目前在社保系统中的参保单位,需注意的是身份证、姓名都是以社保系统的参保资料为准,如对登录项有疑问的请致电业务科室核准参保资料。“初始密码”为身份证后六位,身份证最后一位为字母也算一位数,必须大写)
注意:如果所在单位没数据弹出,请确认是否已输入身份证号码,必须输入身份证号码才会有内容弹出。若仍未弹出内容请尝试重新刷新页面并且需要手工重新输入身份证号码(若浏览器有记录身份证号码也不要选择,手工重新输身份证号码)或选择其他浏览器尝试登陆。
登录系统后,如果密码为初始化密码(未修改过,或再次初始化为身份证后6位时),则系统会在每次登录成功后弹出提示“请及时修改密码”,如下图所示:
1.2 修改密码
在系统工具栏中点击“
”进入密码修改页面进行修改密码的操作;
图:修改密码按钮在系统工具栏的位置
1.2.1密码初始化安全问题设置
【功能说明】
如果还未设置密码初始化安全问题,则系统会弹出提示“您还未设置密码初始化安全问题,请先设置密码初始化安全问题”并进入密码初始化安全问题设置页面,如图1-图2所示:
图1
图2 【操作步骤】
1、在图2中,输入 “密码保护问题”、“你的答案”、“请再次确定你的答案”,点击 “确定”按钮即可保存密码初始化安全问题及答案。
1.2.2修改密码
如果已经设置了密码初始化安全问题及答案,则可直接修改密码,“原密码”是身份证后6位,“新密码”及“确认密码”为您自己想设的密码,点击“保存”按钮。
1.3 密码初始化
【功能说明】
当用户忘记密码后,可通过设置的密码初始化安全问题及答案,初始化用户密码为身份证后6位。
【操作步骤】
进入个人查询系统登录页面:
第1步:在登录页面输入身份证,并点击“密码初始化”按钮,进入密码初始化页面,如下图所示:
第2步:在密码初始化页面输入正确的“密码保护问题”、“你的答案”、“校验码”,点击“确定”按钮,即可将用户的登录密码初始化为身份证后6位。
1.4 查询界面
1.4.1 进入查询页面后,点击个人信息查询的个人用户查询,显示下图各项目:
★ 个人基本信息:显示个人的基本参保资料
★ 个人养老账户:显示个人养老账户信息,包括本年单位划入、本年个人缴纳、本年划入利息、本年缴纳利息、历年单位划入、历年个人缴纳、历年划入利息、历年缴纳利息、单位划入余额、个人缴纳余额、个人账户总额。
★ 养老保险参保历史:
1、显示参保的年月,开始参保日期以及终止日期。2010年9月前的参保历史是在系统的参保历史而非实际缴费历史(需看“欠费情况”中是否有欠费记录),2010年9月地税全责征收后的参保历史为实际缴交的历史(终止年月显示为最新的缴交月份);
2、缴费基数、个人缴费金额、单位划入账户金额、单位划入统筹金额、备注。需注意,如上图,缴费基数的变化会生成新的一条明细。★ 医疗保险参保历史、工伤保险参保历史、失业保险参保历史、生育保险参保历史同养老保险参保历史可查看信息类型相同。
★ 养老保险欠费情况、医疗保险欠费情况、工伤保险欠费情况、失业保险欠费情况、生育保险欠费情况
可查询2010年9月前的个人欠款情况,若没有记录指参保人2010年月份前没有欠款的记录,从9月份开始的欠费情况需咨询地税。
★ 个人医疗结算查询
显示参保人在医院结算过的记录。★ 个人待遇查询
显示参保人领取待遇的各项记录查询。
★ 各项数据有不明白的地方可致电各业务科室电话:关系科2789225、医疗科2789205、医保卡2789223、工伤生育2789210、养老失业待遇核发2789232/ 2789231、信息技术科2789271、社会保障卡咨询电话2890770.各分局联系电话:惠城分局办公室2169001;惠阳分局办公室:3381751 ;惠阳制卡部:3381761;惠东分局办公室:8801815;博罗分局办公室:6630600;龙门分局办公室:7789202;大亚湾分局办公室:5562362。
1.4.2 点击个人信息查询二——社区参保信息查询、IC卡信息查询,出现以下图标:
请注意:
1、居保的上级单位编码为缴费的家庭编码。即刷卡缴费的家庭代码。
2、IC卡消费明细(每个月银行返回社保局一次消费明细数据,需查看最新的消费明细和余额可前往广发行进行查询)
1.5 忘记初始化问题及答案,即无法初始化密码。
可通过以下两种方式处理:
一、在办公时间将身份证复印件及联系方式传真至2789276。传真件上需备注以下两点(不备注的视为无效复印件不处理):
1、标明“初始化密码”;
2、身份证复印件的身份证号码下方再写一次身份证号码(以防身份证复印件有模糊字样无法辨别)。我们将在2个工作日内初始化您的密码,密码为身份证后6位,登录系统后请重新设置初始化问题及答案并修改密码;
继前两次的实验,本次实验以熟练掌握利用select语句进行各种查询操作:单表查询、多表连接及查询、嵌套查询、集合查询等,巩固数据库查询操作,
下面就跟着小编一起练习吧!
在实验一创建并插入数据的表(Student, Course,SC,Teacher,TC)的基础上,完成以下操作。
(1)将教师‘罗莉‘的名字改为‘罗莉莉‘。
代码如下:
update Teacher set tname=‘罗莉莉‘ where tname=‘罗莉‘
(2)将两个同学(数据自己临时设置,用后即删除)的两门课程的成绩以运行sql程序文件的形式插入score表中。该题用以验证、理解和掌握关系模型的完整性规则;
插入:
代码如下:
insert into Score(sno,cno,grade) values (‘04261006‘,‘C003‘,‘64‘)
insert into Score(sno,cno,grade) values(‘04261007‘,‘C004‘,‘79‘)
查询:
代码如下:
select sno 学号,cno 课程号,grade 分数from Score where sno=04261006 or sno=04261007;
删除:
代码如下:
delete from Score where sno=04261006 or sno=04261007;
(3)求每门课的平均成绩,并把结果存入average表(自行设计并创建);
代码如下:
CREATE TABLE average
(
cno CHAR(8),
avscore numeric(5,2),
constraint a1 primary key (cno),
constraint a2 foreign key (cno) references Course(cno),
)
insert into average(cno,avscore)
select distinct cno ,avg(grade) from Score group by cno
(4)将学生“马丽”的年龄改为24;
代码如下:
Update Student set -year(Sbirth) 年龄 where Sname=‘ 马丽‘
(5)将所有学生的szipcode属性列值填补上;
代码如下:
update Student set szipcode=‘221000‘
(6)将average表中的所有课程的平均成绩置零;
代码如下:
update average set avscore=‘0‘
(7)删除average表中的课程号为‘C007‘的平均成绩记录;
代码如下:
delete from average where cno=‘C007‘
(8)删除所有average表中平均成绩记录;
代码如下:
delete from average;
(9)建立一个临时学生信息表(tstudent),删除该表中的学号含‘101‘的所有学生记录。
代码如下:
create table tstudent ( Sno char(8) primary key, Sname varchar(8) unique );
Delete from tstudent where Sno like ‘001011%‘;
(10)查询全体学生的学号与姓名;
代码如下:
select sno 学号,sname 姓名from Student
(11)查询全体学生的学号、姓名、所属系;
代码如下:
select sno 学号,sname 姓名,sdept 系from Student
(12)查询全体学生的详细记录;
代码如下:
select * from Student
(13)查询全体学生的姓名及其年龄;
代码如下:
select sname 姓名,2014-year(sbirth) 年龄from Student
(14)查询全体学生的姓名、出生年份;
代码如下:
select sname 姓名,year(sbirth) 出生年份from Student
(15)查询所有修过课的学生的学号;
代码如下:
select distinct sno from Score
select distinct student.sno from Student,Score where Student.sno=Score.sno and Score.grade>0 ;
(16)查询“计算机系”班全体学生名单;
代码如下:
select sno,sname from Student where sdept=‘计算机系‘
(17)查询查询所有年龄在23岁以下的学生姓名及其年龄;
代码如下:
select sname 姓名,2014-year(sbirth) 年龄from Student where 2014-year(sbirth)<23;
(18)查询考试成绩有不及格的学生的学号;
代码如下:
select distinct sno from Score where grade<60;
(19)查询年龄在20至22岁之间的学生姓名、系和年龄;
代码如下:
select sname 姓名,sdept 系,2014-year(sbirth) 年龄from student where 2014-year(sbirth) between 20 and 22;
(20)查询年龄不在20至22岁之间的学生姓名、系和年龄;
代码如下:
select sname 姓名,sdept 系,2014-year(sbirth) 年龄from student where 2014-year(sbirth) not between 20 and 22;
(21)查询“计算机系”和“电商系”的学生的姓名;
代码如下:
select sname from Student where sdept=‘计算机系‘ or sclass=‘电商系‘
(22)查询既不是“计11”也不是“计61”班的学生的姓名和班级信息;
代码如下:
select sname,sclass from Student where sclass not in(‘计‘,‘计‘);
(23)查询学号为“0426”的学生的详细情况;
[code]select student.sno,sname,ssex,2014-year(sbirth),sclass,grade from Student,Score where Student.sno=Score.sno and Student.sno=‘04262002‘;
(24)查询学号以“04262”打头的学生信息;
代码如下:
select * from Student where sno like ‘04262%‘
(25)查询所有姓“张”学生的学号、姓名、性别、年龄;
代码如下:
select sno 学号,sname 姓名,ssex 性别,-year(sbirth) 年龄from Student where sname like‘王%‘
(26)查询名字中第二个字有“海”字的学生的学号、姓名、性别、年龄;
代码如下:
select sno 学号,sname 姓名,ssex 性别,2011-year(sbirth) 年龄from Student where sname like ‘_田%‘
(27)查询所有不姓“刘”学生的姓名;
代码如下:
select sname 姓名from Student where sname not like ‘刘%‘
(28)查询课程号以“C”开头的最后两个字母为“05”的课程号和课程名;
代码如下:
select cno,cname from Course where cno like ‘C%05‘
(29)某些学生选修某门课程后没有参加考试,所以有选修课记录,但没有考试成绩,试查找缺少考试成绩的学生和相应的课程号;
代码如下:
select Student.sno,sname,cno from Student,Score where Student.sno=Score.sno and grade is NULL;
(30)查找全部有成绩记录的学生学号、课程号;
代码如下:
select sno, cno from Score where grade is not NULL;
(31)查找“计算机系”年龄在22岁以下的学生学号、姓名;
代码如下:
select sno ,sname from Student where sdept=‘计算机系‘ and 2014-year(sbirth)<22
(32)查找选修了“C001”号课程的学生学号及其成绩,查询结果按分数降序排序;
代码如下:
select student.sno,grade from student,Score where Student.sno=Score.sno and cno=‘C001‘ order by grade desc;
(33)查询全体学生情况,查询结果按所在系升序排列,对同一系中的学生按年龄降序排列;
代码如下:
select * from student order by sdept asc,2014-year(sbirth) desc;
(34)查询学生总人数;
代码如下:
select count(*) 人数from Student;
(35)查询选修了课程的学生人数;
代码如下:
select count(distinct sno)人数from Score;
(36)在所有课程中查询最高分的学生学号和成绩;
代码如下:
select sno,grade from Score where grade =(select max(grade)from Score )
代码如下:
select distinct a.* from Score a where a.sno IN (select top 1 Score.sno from Score where Score.cno = a.cno order by grade desc)
(37)查询学习“C001”课程的学生最高分数;
代码如下:
select max(grade)最高分数from Score where cno=‘C001‘
(38)计算各个课程号与相应的选课人数;
代码如下:
select count(sno) 选课人数from Score group by cno;
(39)查询“计算机系”选修了两门课程以上的学生学号、姓名;
代码如下:
select Student.sno,sname from Student where Student.sno in
(select Student.sno from Student,Score where
sdept=‘计算机系‘and Student.sno=Score.sno group by Student.sno having count(cno)>=2);
(40)自然连接student和score表;
代码如下:
select student.*,Score.grade from student ,Score where student.sno=Score.sno;
(41)使用自身连接查询每一门课程的间接先行课(即先行课的先行课)
代码如下:
select a.cno,b.cpno from Course a,Course b where a.cpno=b.cno;
(42)使用复合条件连接查询选修“c001”号课程且成绩在90分以上的所有同学;
代码如下:
select sname,grade from student,Score where Student.sno=Score.sno and cno=‘C001‘ and grade>=90;
(43)使用复合条件连接查询每个学生选修的课程名及其成绩;
代码如下:
select Student.sno,sname,cname,grade from Course,Score,Student where Course.cno=Score.cno and student.sno=Score.sno;
(44)查询选修了全部课程的学生;
代码如下:
select Sname from Student where not exists (select * from Course where not exists(select * from Score where Sno=Student.Sno and Cno=Course.Cno))
(45)查询所有选修了C001号课程的学生学号、姓名;
代码如下:
select student.sno,sname from student,Score where student.sno=Score.sno and cno=‘C001‘;
(46)查询选修了课程C001或C007的学生学号、姓名;
[code]select student.sno,sname,cno from student,Score where student.sno=Score.sno and cno in (‘C001‘,‘C007‘);
[/code](47)查询“计算机系”的学生及年龄不大于23岁的学生;
代码如下:
select sno ,sname,2014-year(sbirth) age ,sclass from student where sdept=‘计算机系‘ or 2014-year(sbirth)<=23;
(48)查询既选修了课程C001又选修了课程C007的所有学生学号、姓名;
代码如下:
select student.sno,sname from student,Score where student.sno=Score.sno and cno=‘C001‘ and student.sno in (select student.sno from student,Score where student.sno=Score.sno and cno=‘C007‘)
(49)查询选修了课程名为“数据库原理”的学生的学号、姓名、性别、年龄;
代码如下:
select student.sno ,sname,ssex,cname,2011-year(sbirth) age from student,Score,Course where student.sno=Score.sno and Score.cno=Course.cno and cname=‘数据库原理‘;
(50)查询其他班中比“计算机系”所有学生年龄都小的学生名单;
代码如下:
select sno,sname ,2014-year(sbirth) age from student where 2014-year(sbirth)<(select min(2014-year(sbirth)) from student where sclass=‘计61‘)and sclass !=‘计61‘;
(51)查询与“夏天”在同一个系学习的学生学号、姓名、性别、年龄;
代码如下:
select sno,sname,ssex,2014-year(sbirth) age from student where sdept=(select sdept from student where sname=‘夏天‘) and sname!=‘夏天‘
(52)建立“计算机系”学生的视图1;
代码如下:
create view view_student
as select sno,sname,ssex,sbirth,sclass from student where sclass=‘13z网络‘
(53)建立“计算机系”学生的视图2,并要求进行修改与插入时,仍须保证该视图只有“计算机系”班学生;
代码如下:
create view view_student2
as select sno,sname,ssex,sbirth,sclass from student where sclass=‘13z网络‘ with check option;
(54)建立“计算机系”选修了“C001”课程的学生的视图,定义视图名为“v_cs_C001_student1”;
代码如下:
create view v_cs_C001_student1
as select student.sno,sname,ssex,sbirth,sclass from Student ,Score where
student.sno=Score.sno and sclass=‘13z网络‘ and cno=‘C001‘;
(55)建立“计算机系”班选修了“C001”课程且成绩在90分以上的学生的视图,定义视图名为“cs_c001_student2”;
代码如下:
create view cs_c001_student2
as
select student.sno,sname ,ssex,sbirth,sclass,cno from student,Score where
student.sno=Score.sno and cno=‘C001‘ and sclass=‘13z网络‘and student.sno in (select student.sno from student,Score where student.sno=Score.sno and grade>90)
(56)定义一个反映学生年龄的视图,定义视图名为“v_birth_student”;
代码如下:
create view v_birth_student
as
select sno,sname,2014-year(sbirth) age from student
(57)将学生表中所有女生记录定义为一个视图,视图名为“v_female_student”;
代码如下:
create view v_female_student
as
select * from student where ssex=‘女‘;
(58)将学生的学号及其平均成绩定义为一个视图,视图名为“v_average_student”;
代码如下:
create view v_average_student
as
select sno,avg(grade) avscore from Score group by sno;
(59)在“计算机系”学生视图中找出年龄小于22岁的学生;
代码如下:
select * from view_student where 2014-year(sbirth)<=22;
(60)利用视图查询“计算机系”选修了“C001”课程的学生;
代码如下:
select * from v_cs_C001_student1;
(61)通过(52)中的“计算机系”视图修改某个学生的名字;
代码如下:
update view_student set sname=‘王某某‘where sno=04261001;
(62)通过(53)中的“计算机系”视图,插入一个新学生记录,
代码如下:
insert into view_student2(sno,sname,ssex,sbirth,sclass) values (‘0426‘,‘张某某‘,‘男‘,‘1987/11/09‘,‘计‘);
(63)通过(53)中的“计算机系”视图,删除一个学生记录。
代码如下:
delete from view_student2 where sno=‘04262004‘and sname=‘张某某‘;
实验课结束了,相信通过本节课的实践操作,小伙伴们都对数据库表的操作有了更进一步的了解。
1 Access数据库简介
Microsoft Office Access是微软把数据库引擎的图形用户界面和软件开发工具结合在一起的一个数据库管理系统, 它是微软OFFICE的一个成员。
数据库是许多数据对象的集合, 包含表、查询、窗体、报表等对象。建立Access数据库即是创建诸多与特定应用有关的对象, 这些数据库对象均保存在一个以.mdb为扩展名的数据库文件中。Access是一种桌面型数据库系统, 具备了系统内存小、功能强大、使用方便等特点, 常用于小型管理系统的后台数据库开发。
2 数据库备份介绍
在基于数据库的系统开发过程中, 保证数据的安全可靠是一项非常重要的内容。如果数据库数据发生损坏或丢失损失将非常惨重。为此系统开发人员应针对具体业务要求制定详细的数据库备份与灾难恢复策略, 并通过模拟故障对每种可能发生的情况进行严格测试, 只有这样才能保证数据的高可用性。数据库备份是一个长期过程, 而恢复只在发生事故后进行, 恢复可以看作是备份的逆过程, 恢复程度很大程度上依赖于备份的情况。
按照备份数据库的大小, 数据库备份有完全备份、差异备份、事务日志备份、文件备份四种类型, 分别应用于不同的场合。
完全备份:这是大多数人常用的备份方式, 它可以备份整个数据库, 包含用户表、系统表、索引、视图和存储过程等所有数据库对象。采用完全备份方式后期的数据恢复方便, 但占用时间、空间较大。
差异备份:也叫增量备份, 只备份上次完全备份后所产生变化的所有数据, 包括改变的数据页和本次备份开始之后的日志。差异备份依赖于完全备份, 它能够将数据库还原到差异备份的时刻, 但是不支持时间点还原。差异备份所花费的时间较短, 备份后占用存储空间较小, 常用于一般的数据库。
事务日志备份:事务日志是一个单独文件, 它记录数据库的改变, 备份时只需要复制自上次备份以来产生变化的所有数据, 所以只需要很少的时间。事务日志备份只对活动日志进行备份, 并从前一次日志备份完成的日志序列号 (LSN) 处开始备份, 能够支持时间点还原, 常用于重要的数据库。
数据库文件和文件组备份:备份数据库中特定的文件或文件组, 取代备份整个数据库, 还原时只需还原指定的文件或文件组, 数据库恢复速度快, 但管理较复杂。适用于大型、文件分布在不同磁盘设备的数据库。
完全备份是执行差异备份和日志备份的前提, 差异备份和日志备份是相互独立的备份。采用差异备份可以减少数据还原时的事务日志的备份数量, 采用日志备份可以在意外发生时, 恢复所有已完成的事务, 实现在任何时间点的数据还原。
3 Access数据库备份方式
Access数据库以一个后缀为.mdb的文件存在, 数据库的备份和还原也是基于该文件的相关处理, 因此, Access数据库的备份就是选择数据库文件备份的方式。数据库备份操作是专门人员定时进行数据库文件的备份处理。这种纯手动操作的数据库文件的备份方式必须要通过专门人员直接针对数据库文件进行操作才能够完成, 在开发程序真正投入使用以后, 如果使用这种数据库备份方式不仅不太适用, 也不利于数据本身的安全。对于Access数据库, 能否通过程序来实现数据库的自动备份?在进行相应探讨后, 本文给出了两种数据库文件备份的处理方式。
3.1 代码编写实现数据库的手动备份
基本上所有常见的系统开发工具和语言都能够对文件进行各种操作, 可以使用相应的开发语言编写数据库备份功能, 让使用系统的普通用户通过提供的系统功能来实现数据库按需手动备份。这里以基于ASP的Web程序开发来实现Access数据库的备份操作。
ASP是使用File Access组件来实现对服务器文件系统的操作。File Access组件包括相应的对象, 通过对象的相关方法能够很方便地完成数据库的备份操作。关键代码如下:
该实例中通过使用ASP提供的组件对象方法实现了数据库的备份功能, 一般用户可以通过相对应的系统功能菜单很方便地实现数据库的备份操作。其他系统的开发也是如此, 可以通过开发工具和语言编写相应数据库备份功能, 让一般用户可以根据自己的需要手动进行数据库的备份操作。
3.2 批处理文件与计划任务相结合实现数据库的自动备份
在命令提示符窗口下, 可以通过相应命令实现文件的相关操作。基于这一原理, 可以把数据库文件的备份操作存储为批处理文件, 然后通过Windows系统自带的计划任务功能设置该批处理文件的自动执行周期, 这样就可以实现数据库文件的定时自动备份。关键的批处理文件代码如下:
然后通过Windows系统自带的计划任务功能, 让该批处理文件在固定时间周期内定时执行, 从而实现数据库文件的定时自动备份操作。
4 结语
在上述探讨的两种数据库文件备份操作中, 一般用户多不能够直接接触到数据库文件本身, 相关的备份操作完全通过程序和代码实现, 用户只需要通过友好的界面操作和部署就能够完成数据库的备份操作。
摘要:Access数据库管理系统凭借其易学、易用的特点, 在进行小型系统开发时是许多程序员的首要选择。在使用Access开发后台数据库系统时, 如何对数据库文件进行备份, 保证数据安全是不可回避的问题。笔者将对Access数据库文件备份的方式进行简单探讨。
关键词:Access,计划任务,ASP,数据库备份
参考文献
[1]张所, 良蒋秀, 莲刘文.浅析Access数据库系统的安全隐患及防范措施[J].科技信息 (学术研究) , 2007 (16) .
[2]林景影.对Access开发数据库系统的研究[J].电脑知识与技术, 2010 (7) .
[3]温艳春.SQL Server数据库备份与恢复技术的分析与实践[J].中国数字医学, 2009 (4) .
[4]张景峰.ASP程序设计教程 (第二版) [M].北京:中国水利水电出版社, 2003.
[5]梁红硕, 陈鸿雁, 张永生.基于网络的学生日常信息管理系统的开发——以石家庄职业技术学院学生日常信息管理系统为例[J].石家庄职业技术学院学报, 2009 (2) .
[6]王钢, 张科, 高赟.基于Access的信息管理系统开发实践——以甘肃省社科研究信息管理系统为例[J].社科纵横, 2007 (9) .
[7]张有明, 张科, 高赟.基于Access的信息管理系统开发实践——以西北师大科研信息管理系统为例[J].电化教育研究, 2007 (2) .
[8]陈晓智, 陈益洲, 谢磊, 等.基于云计算模式的省级区域卫生信息平台项目研究[J].中国卫生信息管理杂志, 2015 (4) .
[9]区国端.以能力为导向的《ACCESS程序设计》课程改革与教学实践之我见[J].吉林省教育学院学报 (上旬) , 2013 (8) .
2016本科学生学籍及图像信息查询核对操作指南
第一步:注册学信网账号
●用户名:填写有效邮箱地址,用来接收账户激活邮件,然后到邮箱中激活账号 ●密 码 :一定要牢记,登陆学信档案时要用到
●激活帐号:进入用户名对应的邮箱查收系统自动发送给您的激活帐号的邮件,点击邮件中的激活链接后系统会自动激活注册帐号 注意事项:
①姓名和身份证号码不能填错,请大家在提交注册前一定要仔细核对,确保姓名及身份证号准确无误才提交。
②如果用户名和姓名填错了、身份证号码提示已被注册;或忘记用户名和密码怎么办?
请将身份证扫描或者拍照(图片请存为JPG格式,大小1MB以内),以邮件方式发送至学信网客服中心邮箱kefu@chsi.com.cn,邮件主题中写明您的姓名,在邮件内容中写明具体情况、联系电话,学信网网站客服中心核对无误后将在五个工作日内处理好后通过电话或邮件通知您。请同学们尽量避免出现错误,所有信息的更改都只能通过学信网网站客服中心修改,高等学校没有权限进行修改,因学生未仔细阅读通知疏忽出现错误将会给学生自己带来很多不必要的麻烦。第二步:登录学信档案 ●用户名:输入注册时的邮箱号
●密 码:输入进行学信网注册时设置的密码 ●设置个人信息:用真实的姓名、身份证号和手机号
●绑定实名信息:免费获取校验码,校验码会发送到手机,并利用手机校验码来绑定用户的身份。
●实名绑定完成。
第三步:校对毕业生照片的图像信息 ●重新登录学信档案
●学籍信息(图象校对):认真核对学籍和毕业照片信息,提交确认相片是否正确,第四步:核查个人信息
【access查询操作】推荐阅读:
二级access操作题01-06
access习题及答案01-19
access的形容词06-03
access是什么意思用法02-15
access期末模拟练习题10-02
国家计算机二级ACCESS函数总结12-03
社保查询个人账户怎么查询01-07
个人信息查询及留存授权书(个人征信查询)01-16
出生证明查询09-08
审计报告查询11-15