必威体育Betway必威体育官网
当前位置:首页 > IT技术

access数据库教程

时间:2019-10-02 04:45:38来源:IT技术作者:seo实验室小编阅读:50次「手机版」
 

access 教程

笔者在大学时用过Dreamweaver做过静态和动态的站点,当时用的数据库就是access,很惭愧当时笔者是一个很菜很菜的菜鸟,很多设计还需要请教同学和老师,等到毕业去求职的时候,问到动态网页设计用到的数据库是什么,一个是时间过得确实有点久了,另一个是笔者确实学习一般,答得犀利糊涂,今天在工作之余突然想起来,顺手实验一下。

一、创建数据库 

创建新数据库文件的方法有很多。主要有两种方法:一、空白数据库,直接结构与数据同时进行输入(如果果建立完成后再修改结构,原内容可能丢失);二、结构和数据分两步进行了操作(推荐);那么第一种方法注意在ACCESS主窗口中区域左上角的"空白数据库"按钮。该按钮和"文件"菜单中的"新建"按钮都可以展现主窗口右侧的"空白数据库"区域。单击二者中的任何一个按钮都可以转换到主窗口,如图右所示。" 空白数据库"区域代替了主窗口中的最近打开的数据库列表。Access数据库创建及操作

在"空白数据库"区域的"文件名"框中输入新数据库的名称。默认情况下, Access 会在一个最近使用Access 打开的windows 文件夹中创建新的数据库文件。如需使用不同的文件夹,可以使用"文件名"右侧的文件夹图标进行浏览并将数据库创建在所需的位置。

Access 为新数据库提供了Dat abasel.accdb 的默认名称。

需确保提供的名称可以识别。在图右中,新的数据库命名为教务信息管理.accdb (扩展名.accdb 为可选项,这是因为在未提供扩展名时, Access 将自动提供扩展名)。创建完新的数据库后, Access 将自动打开该数据库。

图右 在"空白数据库" 区域的"文件名"框中输入新数据库的名称

注意: Access 2007 可以识别所有以前版本的Access 数据库文件. 默认情况下,将使用2007 格式(使用.accdb 扩展名),但是可以指定Access 2000 、2002-2003或者Access 2007 为默认格式.使用"文件"->"Access 选项" ~ "常用",选择"默认文件格式"选项并且选定所需要的格式. 例如,当一个Access 2007 文件大部分内容都在Access 2000 数据库中完成,此时就应该选择2000 格式来保留向后兼容.依然使用Access 2000 的用户将无法打开以_accdb 格式创建的Access 文件.

下 图新的“教务信息管理”数据库创建完成

Access数据库创建及操作

Access 2007 可以直接兼容Access 2000 、2002-2003 和2007 等数据库。早期的Access数据库文件(例如97 或者95) 必须转换为2000 、2002-2003 或者2007 格式才可以在Access 2007中使用。Access 会检查正在打开的数据库文件,如果确定该文件必须进行转换,就会呈现出图下中的"数据库增加功能"对话框。 下图 打开旧版的Access 数据文件会激活"数据库增加功能"对话框

Access数据库创建及操作

在"数据库增加功能"对话框选择为"是"可以打开第二个对话框(不显示〉询问转换数据库的名称。选择No 就会以只读模式打开旧版本的数据库,此时允许查看但不可以修改数据库中的对象。该过程有时称为Æ!J!J旧数据库。

在必须要理解旧数据库的设计时,如果用户仍然使用旧的数据库且无法升级至Access 2007格式,那么启用一个旧数据库是非常必要的。

如果按书中所举的例子操作,请注意我们选择了教务信息管理.accdb 作为所创建数据库文件的文件名。该数据库用于我们的假定业务Access Auto Auctions 。输入文件名以后,Access 将创建一个空数据库。

了解Access如何处理数据:

Microsoft Access 处理数据的方法很多.出于简便,本书中太多数实例都使用了存储于本地中的数据.本地在包含于Access • accdb 文件中.实例的情况目前就是如此.

在很多专业开发的Microsoft Access 应用程序中,实际的保存在一个与其他界面对象(窗体、报表、查询、页面、宏和模块)分离的数据库中(通常称为后端).放后端数据文件位于网络中的一个文件服务器上,每个用户在其计算机主都有一个前端数据库的复本(包含窗体和报表).这样做的目的是使应用程序更易于维护.通过将数据和在分离到另一个数据库中,维护工作(建立新的索引、修复在等)就会变得更容易并且不会影响到系统中的其他内容.

例如,在使用多用户系统并且在数据库中发现窗体或者报在有问题时.如果所有的数据和界面对象都处于同一个数据库,就必须在修复破损的窗体或者报表时关闭系统一一在对窗体或者报在进行修复时其他用户就无法使用应用程序.

通过将数据从其他的对象中分离出来,就可以在其他用户处理数据的同时修复错误对象.处理克问题之后,就可以向其他用户支付新的是改,这些用户就可以向他们的本地数据库中导入宵体或者报在.

另外,从界面对象中分离数据还有一个是为重要的原阁:安全性.通过结护数据库内部的数据,就可以更好地来控制信息.由于实现了数据库与用户的物理分离,用户不可能意外或故意删除修改后端数据库文件.而且,后精数据易于备份和维护,并且不会影响到用户.

使用Access • accdb 数据库中的开发应用程序,以后可以使用"数据库拆分器'向导自动删除.accdb 文件中的表以便于分离Access • accdb 文件.在本书的第6 章中对该过程做了解释.

例如:Access数据库创建及操作

1、创建数据库:启动Access2007,创建“教务信息管理”数据库;

2、创建数据表在数据库中创建“基本情况表”、“工资表”、“开课表”(各表中的字段名称和记录信息如上表所示);

   3、设置字段类型:各数据表中部分字段信息类型设置参考如下:

表1:基本情况表(字段名,类型,大小)

工号(类型:文本;大小:7);姓名(类型:文本;大小:8);性别(类型:文本;大小:2);婚否(类型:逻辑型;格式:真/假);出生年月(类型:日期/时间);年龄(类型:数字;大小:整型);职称(类型:文本;大小:6);是否党员(类型:逻辑型;格式:是/否)。注意:逻辑型(L型)即真假型(True/False)或是否型)

注意:在Access建表中若直接把表结构和数据一起制作填写时,每个字段的类型和大小无法修改,只能是默认的类型和大小,若修改改跳转到设计视图中进行,但这时在保存时原来的内容可能会丢失。所以推荐大家建立数据库采用两步走的措施:一、先创建结构(包括类型及属性的设置);二、数据视图中填充数据。教学课件及视频

 Access数据库创建及操作  第6章 Access数据库 -第1节(数据库的基本操作)

 Access数据库创建及操作  第6章 Access数据库 -第2节(数据表的基本操作)  

二、主键

1、主键及作用。

首先主键名是唯一的不重复的,用于标识此行数据的线索,也就是说,很多数据有可能重复,但主键不可能重复,所以你要对数据库进行删除,修改,查询时就有法可依了,找他的主键是最精确的,假如找其它的字段有可能重复列出多个数据.例如
id(主键) name
1 abc
2 cba
3 abc
你要找abc的话会出现两行,但是如果找id=1的话就一行,也就是说用主键可以精确的对数据库进行操作。

2、access怎样给字段定义主键

设定主键的目的就是为了让数据表中的数据能够被唯一的识别。主键有单主键,复合(多)主键。一般数据表的主键就是ID,类似的ID有学生号、工号等。一般数据表都要定义主键,否则系统会提示你建立主键,那么怎样建立主键呢?

单键定义步骤/方法

  1. 打开你的access,并打开你要设置主键的数据表,然后点击 开始——视图。

    Access数据库创建及操作

    2.  在视图的下拉菜单中,点击 设计视图。

  2. Access数据库创建及操作

  3. 来到了设计视图面板,我们在要设立主键的字段的右边,也就是红色箭头的位置右键单击

    Access数据库创建及操作

  4. 在弹出的菜单中,我们选择 主键。这样就给ID这个字段建立的主键。

    Access数据库创建及操作

  5. 另一个方法就是我们选中将要建立主键的字段,然后再菜单栏上点击 主键。

    Access数据库创建及操作

  6. 最后点击左上角的保存按钮,将主键进行保存。

    Access数据库创建及操作

  7. 点击视图按钮,返回数据表视图。

    Access数据库创建及操作

 

复合(多)主键定义步骤/方法

在表设计视图里,按住[Ctrl]键,分别整行点击(左边方块)要设为主键的字段后,鼠标放在任意一个已选中的行上右击快捷菜单选[主键]即可!

注意:有空记录的字段不能设置主键.解决的办法是删除空白记录从新设置主健。

三、更改表名

对创建好的数据库中可能建立了很多表,但是后来发现表名不符合要求,要重新命名,怎么做呢?很容易,其操作与原来的文件的重命名完全一样的,右击表名->重命名->输入正确的文件名即可。 注意:重命名表之前一定要把当前的表保存关闭编辑状态,现行进行改名,否则禁止更改。

四、查询

如果查询涉及到多表的时候,要对多表建立关联(一般使用主键建立关联),查询设计之前要对ACCESS2007软件提示点击“选项”->选“启用此内容”(要么系统不能正常运行)



1、关联:是进行多表操作必不可少的设置,如果不建立关联那对一个表操作涉及到另一表的内容是无法正确作用到的,或者是每一当前表中的记录都会对应另外表中的每一个记录,产生很多的多余的记录,要掌握多个表建立联系、修改关联、删除关联。如:创建表之间的关系:建立“基本情况表”、“工资表”、“开课表”三者的关系。下面关系

特别注意:在建立表关系时一定是每一个表中都存在且能唯一确定的字段建立的关联才有意义,并且建立的关联字段不要作为条件使用。如下面的作业实例中查询姓为“王”的两个基本情况表和工资表中的信息,若使用“姓名”进行关联,这时条件又是使用的姓名判断的,所以会出现错误。解决的办法是把建立关联的字改为除姓名之外的其它字段。如工号或编号等。

2、查询包括6种查询:选择查询(包括"赋值查询"或称为“参数查询“)、生成表查询、删除查询、追加查询、交叉表查询、更新查询。

如(1)创建名为“男性职工”的查询,列出“基本情况表”数据表中部门为“后勤处”和“信息部”的所有男性职工的信息。结果是:(sql程序)

   SELECT 基本情况表1.*

FROM 基本情况表1          WHERE (((基本情况表1.性别)="男") AND ((基本情况表1.部门)="后勤处")) OR (((基本情况表1.性别)="男") AND ((基本情况表1.部门)="信息部"));(选择查询)    

(2) 如果查询过程中会提示你输入查询关键字内容是“赋值查询”。如右Access数据库创建及操作

根据性别查询男或者女性的,查询结果如果下图 Access数据库创建及操作

(3) 如果查询中有子查询情况,SQL查询语句中,什么叫子查询?

一个select...FROM是一个基本查询,如果在一个SELECT...FROM中嵌套着另外一个SELECT...FROM语句,就称之为子查询,其中被嵌套在里面的查询语句为子查询

比如sql查询语句A的查询条件是由sql查询语句B的结果作为条件

select * from table_a  t where t.row_name in(select tt.row_name from table_b tt);

(select tt.row_name from table_b tt)就是一个子查询

又比如查出生年月最小的(最大)/年龄最小(最大)等类的所有信息的结果都可以用子查询实现,如下查询出生年月最小的记录信息:

SELECT 基本情况表1.*, 基本情况表1.出生年月

FROM 基本情况表1

WHERE (((基本情况表1.出生年月)=(select min([出生年月]) from 基本情况表1)));

Access数据库创建及操作

有些选择查询可能涉及到多表操作和条件书写的复杂性如作业中的:创建名为“王某”的查询,要求:显示姓王的人员信息(包括:姓名、性别、工作日期、基本工资、津贴。 

SQL语句:

SELECT 工资表.*, 基本情况表.*

FROM 工资表 inner join 基本情况表 ON 工资表.姓名 = 基本情况表.姓名

WHERE ((Left([基本情况表.姓名],1)="王"));

Access数据库创建及操作

另外再举一例:列出工号前2位等于“11”的男性职工的信息。SQL语句:

SELECT rsda.*

FROM rsda

WHERE ((Left([rsda].[工号],2)="11") AND ((rsda.性别)="男"));

Access数据库创建及操作

(4) 创建名为“A51-基本工资合计”的查询,要求:统计“工资表”中男性职工的“基本工资”字段总和,Access数据库创建及操作并将结果赋给变量"A51-基本工资合计"(新字段"A51-基本工资合计")。

首先用到多表要建立多表的关联,

然后再查询(其中涉及到一个新的字段建立和赋值问题,注意新字段和公式必须写在字段行,格式的正确书写,比较一下excel中的公式基本一致,不一样的是引用的字段要用中括号而EXCEL引用的是地址坐标):

SELECT Sum([基本工资]) AS [A51-基本工资合计]

FROM 工资表 INNER JOIN 基本情况表1 ON 工资表.ID = 基本情况表1.ID

WHERE (((基本情况表1.性别)="男"));

注意:在书写条件的时如果条件类型是下列类型值是不一样滴:

文本型条件值要加引号,如性别="男";

数值型直接等于(大于,小于等),如,基本工资=2000;

日期型值两端加井号,如,出生日期=#1980-06-09#;

逻辑型的值为真/假,如,党员否=True/False。

(5) 更新查询

凡遇到有更改表中的原有值,填充内容等都使用更新查询。如计算“年龄”、“补发工资”、“实发工资”,把姓名为“某某”的值改你们辅导员的姓名等都使用更新查询。Access数据库创建及操作

下面要求:

 为部门是“总务处”的职工每人增加15%的补贴(补贴=补贴*1.15)。

UPDATE rsda SET rsda.补贴 = [补贴]*1.15

WHERE (((rsda.部门)="总务处"));

(6) 生成表查询

生成表查询从一个或多个表中检索数据,然后将结果集加载到一个新表中。该新表可以驻留在已打开的数据库中,您也可以在其他数据库中创建该表。

通常,在需要复制或存档数据时,可创建生成表查询。例如,假设您有一个或多个包含过去的销售数据的表,并且要在报表中使用这些数据。因为交易至少已过了一天,所以销售数据不会更改,而不断运行查询来检索数据可能需要花费一些时间 - 当对大型数据存储运行复杂查询时尤其如此。将数据加载到一个单独的表中并使用该表作为数据源,这样可以减少工作量并提供一种方便的数据存档。在执行操作时,请记住,新表中的数据严格说来只是一个快照;该新表与其源表之间没有任何关系或连接。

例如,按照“部门”升序生成一个名为“人事表1”的新表,其中包含4个字段:工号、姓名、性别和部门。

SELECT pay.工号, pay.姓名, pay.性别, pay.部门 INTO 人事表1

FROM pay

order BY pay.部门;

(7) 交叉表查询:

我这里指的交叉表,比如Employees表中City字段代表了城市的名称,titleOfCourtesy代表称呼,我们希望按照City和TitleOfCourtesy的情况来统计ReportsTo字段的合计数(本统计没有任何实际意义,只是挑选一些记录包含重复内容的字段来说明情况),并显示成以下格式:(TitleOfCourtesy作为行,City作为列) 

TitleOfCourtesyLondonCityRedmondCitySeattleCity
Dr.   
Mr.12  
Mrs. 2 
Ms.5 4

(8) 删除查询:

把一个表中指定的记录物理删除

1) 要求物理删除1980年以前(不含1980年)出生年月的部门为“基础部”的职工记录。

DELETE rsda.出生年月, rsda.部门

FROM rsda

WHERE (((Year([出生年月]))<1980) AND ((rsda.部门)="基础部"));

Access数据库创建及操作

报告中的第12、删除查询(1)在数据库中,要求物理删除基本工资在1000以下且性别为“男”的职工记录,查询命名为“删除<1000”。

DELETE 工资表.基本工资, 基本情况表.性别, 工资表.*, 基本情况表.*

  FROM 工资表 INNER JOIN 基本情况表 ON 工资表.姓名 = 基本情况表.姓名

    WHERE (((工资表.基本工资)<1000) AND ((基本情况表.性别)="男"));

Access数据库创建及操作

注意:如果是单表删除,上面的数据源选择就可以了,但是如果是多表操作那就需要对多表进行关联,特别注意的是关联的字段一定是主键,其它主键都不能要。一般关联要找能一一对应的,当然也可以是一对多的,多对多的。并且强调的是,其实这里由于用到关联操作(删除),还应该进行参照完整性和级联删除相关记录的设置,如下图,在这里非专业的学生可以不考虑了,就用课堂讲解的去做.

Access数据库创建及操作

  (9) 追加表查询:

把一个表中的数据追加到另一个表中。

填写SQL命令,要求将所有男性职工的记录追加到名为“追加表”的表中,只需要其中的4个字段:姓名、性别、工资、补贴。

INSERT INTO 追加表 ( 性别, 姓名, 工资, 补贴 )

SELECT pay.性别, pay.姓名, pay.工资, pay.补贴

FROM pay

WHERE (((pay.性别)="男"));

Access数据库创建及操作

 Access数据库创建及操作  第6章 Access数据库 -第3、4节(数据查询)

五、窗体

  窗体主要是显示和管理数据的界面,给用户或操作员一个优美的平台对数据进行各种浏览和操作管理。如有一个总结表,建立一个简单的窗体管理这个总结表,方法如下:

1、创建:单击菜单创建->窗体设计

Access数据库创建及操作

2、出现带有方格的空白环境,然后使用标签工具设计窗体表题“总结管理”、下面添加三个标签“总结”、“评语”、“成绩”;三个标签下添加三个文本框,如图:

Access数据库创建及操作

Access数据库创建及操作

3、打开窗体属性窗口

Access数据库创建及操作

在属性窗口选择窗体,记录源中选择对应的表

Access数据库创建及操作

4、分别选中三个文本框,在属性窗口控件来源选对应的三个字段:总结、评语、成绩

Access数据库创建及操作

5、视图中选择窗体视图

Access数据库创建及操作

6、窗体显示在窗口中可以在对应对话框中输入数据,如总结->保存。

Access数据库创建及操作

补充一下综合查询(报告第15)

(1)创建名为“综合-不及格名单”的查询,查询所有不及格的学生的学号,课程号和成绩,要求以课程号(升序)为第一关键字。

SELECT 成绩表.*

FROM 成绩表

WHERE (((成绩表.成绩)<60))

ORDER BY 成绩表.课程号;

Access数据库创建及操作

(2)创建名为“综合-周学时”的查询,查询周学时小于3或大于5的信息,并在查询中显示字段:课程号、课程名和周学时。

SELECT 课程表.课程号, 课程表.课程名, 课程表.周学时

FROM 课程表

WHERE (((课程表.周学时)<3)) OR (((课程表.周学时)>5));

Access数据库创建及操作

(3)创建名为“综合-学号代码”的查询,在“学生表”中,要求利用学号的后3位产生一个新字段“学号代码”,并在查询中显示原来的所有字段和“学号代码”字段。

SELECT 学生表.*, Right([学号],3) AS 学号代码

FROM 学生表;

Access数据库创建及操作

(4)创建名为“综合-最高成绩”的查询,查找班级“计科09-1”成绩信息中的最高分,其中数据由计算得到,结果赋给变量Z60。

SELECT Max([成绩]) AS Z60

FROM 学生表 INNER JOIN 成绩表 ON 学生表.学号 = 成绩表.学号

WHERE (((学生表.学号)="计科09-1"));

Access数据库创建及操作

(5)创建名为“综合-年龄统计”查询。统计并输出所有男生的平均年龄,并将结果赋给变量Z61。

SELECT Avg([年龄]) AS Z61

FROM 学生表

WHERE (((学生表.性别)="男"));

  Access数据库创建及操作

(6)创建名为“综合-更新”的查询,将“学生”表中“团员否”字段中的值清除。

Access数据库创建及操作

  (7)在数据库中,要求按照“学分”降序生成一个名为“综合-学分排序”的新表,其中包含3个字段:课程号、课程名、学分。

SELECT 课程表.课程号, 课程表.课程名, 课程表.学分

FROM 课程表

ORDER BY 课程表.学分 DESC;

Access数据库创建及操作

(8)在数据库中,要求将所有“计科09-1”班的男生记录追加到名为“综合-追加表-计科0901”的表中,只需要显示其中的4个字段:学号、姓名、性别和班级号。

INSERT INTO [综合-追加表-计科0901] ( 学号, 姓名, 性别, 班级号 )

SELECT 学生表.学号, 学生表.姓名, 学生表.性别, 学生表.班级号

FROM 学生表

WHERE (((学生表.性别)="男"));

Access数据库创建及操作

(9)创建名为“综合-删除”的查询,将“学生表”里所有姓名含有“红”字的记录删除。

SELECT 基本情况表.*

FROM 基本情况表

WHERE ((基本情况表.姓名) Like "红*" And (基本情况表.姓名) Like "*红" And (基本情况表.姓名) Like "*红*"); Access数据库创建及操作

注意:上面的操作我把几种情况写在了一起,是为了由浅入深地讲解方便,大家要分开理解。按照要求写一种情况可能就可以了,第四种情况包括了前三种条件的书写方法。

另外,也可以使用函数Left()、Mid()、Right()取条件。前面在excel和Access讲过不再论述。

(10)创建名为“综合-姓名参数”的查询,将“姓名”字段作为参数,设定提示文本为“请输入学生姓名中任意一个字符”。查询结果显示6个字段:学号、姓名、性别、班级号和成绩。

SELECT 基本情况表.*

FROM 基本情况表

WHERE (((基本情况表.姓名) Like [请输入要查询的姓名中的任意字符:] & "*"));

Access数据库创建及操作 

友情链接有这样的题:

23、设有数据库“rsda”,考Access的同学请下载文件“rsda.mdb”。(命令可以使用SQL语句)。要求统计并输出所有男性的平均年龄,并将结果赋给变量Z61。

咋做?

参考答案如下:

SELECT Avg(Year(Now())-Year([出生年月])) AS z61

FROM rsda

WHERE (((rsda.性别)="男"));

Access数据库创建及操作

相关阅读

数据库属性hibernate.dialect的设置

数据库属性hibernate.dialect设置正确的 org.hibernate.dialect.Dialect子类.  如果指定一种方言, Hibernate将为上面列出的一

eclipse报错EXCEPTION_ACCESS_VIOLATION (0xc0000005)

最近使用eclipse做项目,出现了一个问题,代码写着写着,eclipse软件就直接自动关闭了,半个小时一行代码都没改完,很烦。然后看了问题日志

数据库设计(一对一、一对多、多对多)

关联映射:一对一 一对一关系就如球队与球队所在地址之间的关系,一支球队仅有一个地址,而一个地址区也仅有一支球队。数据表间一对一

Oracle数据库深入学习

一、Oracle概念 oracle数据可系统是美国oracle(甲骨文)公司提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器或

解决sql server2008数据库安装之后,web程序80端口被占

前言: 原来电脑上的Apache一直使用正常,在安装sql server2008后,突然发现Apache无法启动,检查了一下是因为80端口被强制占用了。 解

分享到:

栏目导航

推荐阅读

热门阅读