使用Access数据库及SQL基础

发表于:2007-07-13来源:作者:点击数: 标签:
通过本教程你将学习到如何使用Micorsoft Access 数据库 以及一些基本的SQL知识。 所需软件:Microsoft Access 2000及以上版本 今天,讲讲我们在编写ASP程序时会用到的数据库的基础知识。对于小型的ASP程序来说,我们一般都使用Access数据库,因为它操作简便
  通过本教程你将学习到如何使用Micorsoft Aclearcase/" target="_blank" >ccess数据库以及一些基本的SQL知识
所需软件:Microsoft Access 2000及以上版本
今天,讲讲我们在编写ASP程序时会用到的数据库的基础知识。对于小型的ASP程序来说,我们一般都使用Access数据库,因为它操作简便但是功能强大。Access作为一个中小型的数据库,足以应付我们使用中所能达到的数据量。 因为Access中包含的内容较为广泛,所以本教程所讲的内容只涉及到作为ASP的后台数据库相关的内容,Access其它方面的内容,大家可以查阅其它相关资料。Access的各个版本中,Access 2000最为大家所熟知,而后来的Access XP,Access 2003默认的文件格式也均为2000。本教程所采用的Access版本为2003,而文件格式则依然是2000(希望大家分清Access的版本和文件格式,文件格式的转换可以通过“工具”>“数据库实用工具”>“转换数据库”来操作)。
一、新建Access数据库
安装Microsoft Office后,可以从“开始”菜单的“程序”中启动Access。启动Access后,点击“文件”>“新建...”,在任务窗格处会出现新建项目列表(Access2000会略有不同):
按此在新窗口浏览图片
选择“空数据库”建立一个新的数据库。在弹出的“保存”对话框中选择数据库存放的位置后即可。
按此在新窗口浏览图片
打开现有数据库:要打开已经保存的数据库可以通过双击数据库文件或者从Access的文件菜单下面的“打开”命令,Access 2003可能会弹出“安全警告”对话框,不用理会,直接打开就行了。
按此在新窗口浏览图片
二、设计数据库
在开始设计数据库前,需要先向大家讲明,一个Access数据库可以包含多个数据表,而数据表就是我们存放数据的地方。我们说的往数据库中输入数据,其实是在往每一个数据表中输入数据。而关于数据表也要明确几个概念:字段、记录和值。在数据库中,对表的行和列都有特殊的叫法,每一列叫做一个“字段”。每个字段包含某一专题的信息。就像下面的“留言”数据表中,“留言人”、“留言内容”这些都是表中所有行共有的属性,所以把这些列称为“留言人”字段和“留言内容”字段。 我们把表中的每一行叫做一个“记录”,每一个记录包含这行中的所有信息,就像在“留言”数据表中每一条留言的全部信息,但记录在数据库中并没有专门的记录名,常常用它所在的行数表示这是第几个记录。 在数据库中存放在表行列交叉处的数据叫做“值”,它是数据库中最基本的存储单元,它的位置要由这个表中的记录和字段来定义。在“留言”的表中就可以看到第一个记录与“留言人”字段交叉处的值就是“张人中”。“王跃”所在的记录和“房客号”的这个字段交叉位置上的“值”就是“12450”。
按此在新窗口浏览图片
在建立一个新数据库的时候,也要想一想这个数据库是用来干什么的,它要存储哪些数据信息,这些数据之间又有什么关系? 一方面要知道哪些数据是必须的,是绝对不能缺少的,不然建立数据库获取信息的目地就没法达到了;另一方面也要知道哪些数据是不必要,放在数据库当中只会增加数据库的容量,却并不起任何作用,所以要将这些冗余的数据剔除。这样建立起来的数据库才既能满足我们检索数据的需要,又能节省数据的存储空间。所以我们事先要规划好我们要建立的表和字段。
在新建完一个数据库后,Access会打开数据库。
按此在新窗口浏览图片
我们双击“使用设计器创建表”,打开数据表设计器。其中“字段名称”就是指我们数据表的列的名称,比如上面表中的“留言人”等。数据类型就是数据存放在数据库中的类型,可以在下拉框中选择。说明是你对该字段的说明。 

比如上图我设计了一个公告发布的数据按此在新窗口浏览图片表,不同的字段名和相应的数据类型都进行了设置。在设计每一项字段的时候,不同的数据类型在下面的“常规”选项卡会有不同的内容,不过这些内容都比较简单,而且都可以通过右边空白部分的蓝色提示来进行操作,大家可以自己多看多试,这里就不赘述了。
这里要提醒的一点是大家在设计数据库的时候要注意字段的命名,虽然字段名可以是自己随便定义的一些名称,但是希望在给字段命名的时候还是要注意简单明了,而且尽量不要使用如“user”、“time”这样的保留名称。比如我上面设计的数据表,在字段加了“n_”这样的前缀,就容易区分一些了。我一向命名的方法是比如是“guestbook”数据表,我就会在字段中加个“g_”这样的前缀,使用起来不会有关键字的问题,在程序中也容易识别。ASP程序中,Access数据库表在给字段命名时可以使用中文,而且在中文Windows服务器下运行正常,其它语言的windows下没有试过。
设计完成后按“Ctrl+S”进行保存,第一次保存需要输入表名。如果此时数据表没有定义主键,Access会弹出定义主键对话框。主键就是该数据表在与其它表相关联时的一个唯一的标识键,一般都是自动编号类型或数字型字段。如果不在Access中定义“关系”,可以不设置主键。
按此在新窗口浏览图片
按此在新窗口浏览图片
三、录入数据:
尽管我们一般都是在ASP程序中进行数据录入的操作,但我们也可以直接在Access中进行数据的录入工作。
按此在新窗口浏览图片
直接双击已经建立的数据表,此时会打开该表,我们直接在表格中输入数据就行了,不过要注意设计表时定义的字段类型和条件,如果输入的内容不符合定义的条件则会出错。
按此在新窗口浏览图片 




因为Access数据库是以文件的形式存放在服务器上,所以理论上存在着被下载的可能。如果数据库中存放着一些重要数据,甚至包括用户名、密码或者客户资料等等,那么我们就必须考虑到数据库的安全性,防止别人直接从网上下载我们的数据库。到底如何防止Access数据库被恶意下载呢? 首选的方法当然是把数据库放在Web目录之外。也就是说,不把数据库放在可以直接被访问的Web目录之内,在ASP程序连接数据库时使用数据库在服务器上的绝对路径。这可以说是最保险的方法。

如果没有条件达到上述要求,必须把数据库放在Web目录中呢,又如何有效的防止数据库被下载? 第一要做的就是给数据库取一个长而且复杂的文件名,放在一个名称复杂的的文件夹下,这虽然只是简单的一个操作,却可以避免你的数据库地址被轻易的获得。当然这是仅仅不够的,我们不能保证别人不能用某种的手段或方法获得你的数据库地址。所以我们还要用一些其它的方法。
有不少人认为只要把数据库的.mdb扩展名改为.asp或.asa就可以防止被下载(如flash8data.asp),其实这是错误的!
这样只能做到无法从IE地址栏直接下载,而用诸如FlashGet这类下载软件则可以顺利的下载!如果要改为.asp的话,还必须在数据库中添加一个“OLE对象”的字段,再在这个字段中添加一个内容为<%的长二进制数据,这样也可以避免被下载。
也有不少人认为只要在数据库的文件名中加入“#”号就可以防止被下载(如flash8#data.asp),其实这也是错误的!
这样做的原理是IE会把“#”当成网页的锚记而显示“无法显示网页”,但是其实同样可以用FlashGet下载。
这里给大家介绍一个防止数据库被下载的简单有效的方法,就是在数据库的文件名中加入“%”号。
比如:\^data&base^\%flash8=!=data%.mdb
这是利用url字符编码的原理,在访问Internet中的数据时,不论是IE还是其它下载软件,都会把符号或双字节字符转换为"%**"(其中**为16进制数据)这样的编码,同样在遇到"%**"这样的字符会进行反编码,所以在上述文件名中,会试图把“%fl”转换为相应的字符,文件名就发生了改变,所以就达到了不被下载的目的。其实这里的FL不是16进制的值,所以下载时服务器会直接报错,如果是16进制的值比如24,则会反编码为“$”号,如%24data.mdb会被转换为$data.mdb,服务器则会显示找不到文件。如果你再狠一点,可以在相同的目录下再放置一个$data.mdb的伪数据库,呵呵,下载的人还会以为捡到了宝,实际上他“辛辛苦苦”下载到的是一个毫无价值只是用来欺骗他的文件。



  SQL是我们检索数据库中的数据所要必须用到的。我们查询数据库中的数据时实际上就是向数据库发送SQL指令并返回相应的结果。所以这里给大家一份SQL语法手册,其中详细的介绍了SQL的四大类型:Select、Insert、Delete、UPdate以及一些相关的知识。既然是手册,内容肯定比较全面,大家以后遇到SQL的问题时也可以翻阅该手册,应该可以得到一些提示。文件不大,只有10K,是个hta文件。

  

原文转自:http://www.ltesting.net