310 likes | 417 Views
第 10 章 数据库的选择、创建及管理. 顾名思义,数据库就是数据存储的仓库,其实这么说并不准确,数据库并不单单是用于存储数据,其还可以对数据进行组织,管理等操作。
E N D
第10章 数据库的选择、创建及管理 • 顾名思义,数据库就是数据存储的仓库,其实这么说并不准确,数据库并不单单是用于存储数据,其还可以对数据进行组织,管理等操作。 • PHP可以支持大部分的数据库,例如:Adabas D、MySQL、dBase、Oracle、Empress、PostgreSQL、FilePro、Solid、Informix、Sybase、InterBase、Velocis、mSQL、Unix dbm、SQL Server、SQLite和Access等。其中MySQL、PostgreSQL、SQLite是比较常见的开源数据库,本章会对这些数据库作一个简单的介绍。
10.1 常用数据库简介 • 在大型项目中,甲骨文公司开发的Oracle数据库,受到很多程序员的青睐。虽然PHP也支持Oracle数据库,但是因为相对配置复杂,本节将不会进行介绍,有兴趣的读者,可以查询相关资料。本节主要介绍的是在Windows平台,以及UNIX/Linux平台下运行的常用数据库。
10.1.1 小型关系型数据库MySQL • MySQL是从开源数据库起家的,使用C和C++编写。MySQL在实际应用中,受到了很好的评价,以致于很多网站平台,都选择使用其做为网站的数据库。随着MySQL的广泛应用,MySQL也推出了收费的企业版本,但还是可以从官方网站上,下载免费的个人版本。 • MySQL一开始被定义为小型关系型数据库,但到在最新的5.1版本中,MySQL已经表现出了很多重要的特性,这大大提升了其在数据库市场上的竞争力。 • 下面大体了解一下MySQL数据库的主要特性: • 跨平台作业:MySQL可以部署在不同的操作系统。 • 支持的编程语言:C、C++、Eiffel、Java、Perl、PHP、Python、Ruby、Tcl的API。 • 多线程技术:充分发挥多CPU的优势。 • 存储引擎:提供了事务性和非事务性存储引擎。 • 磁盘表:使用“B树”磁盘表,即:MyISAM。 • 内存管理:基于线程的内存分配系统。
10.1.2 开放源代码的数据库PostgreSQL • PostgreSQL是一款开源的数据库管理系统,其理念非常先进,并且支持大部分 SQL 2003的标准。 • PostgreSQL支持很多特性,如:复杂查询、外键、触发器、视图、事务完整性、多版本并发控制等,同时通过扩展PostgreSQL也可以增加新的数据类型、函数、操作符、聚集函数、索引方法、过程语言等。 • PostgreSQL数据库,可以部署在目前大部分的操作系统中,从小型网站项目到大型工程,PostgreSQL数据库都是一个不错的选择。而且PostgreSQL的许可证的非常灵活,不管是私用、商用、还是学术研究,都可以免费使用、修改、分发PostgreSQL。 • 读者可以在PostgreSQL的官方网站上,下载最新的安装版本,同时网站还提供相关的技术文档和用户文档。PostgreSQL官方网站:http://www.postgresql.org/。
10.1.3 轻量级数据库SQLite • SQLite是一款软量级的数据库,支持大部分SQL92/SQL99的标准。SQLite数据库最大的好处在于,不用安装,无需配置,也不需要管理员。 • SQLite数据库是以1个文件的形式存在,把其这个文件制到任何支持SQLite数据库的操作系统上,都可以使用,这使得SQLite可以用于一些小型网站,以及移动设备上。下面列出SQLite的一些特性,在选择数据库时,供读者参考: • 支持多种开发语言:C、PHP、Perl、Java、ASP.NET、Python。 • 数据库文件最大:2TB。 • 零配置:无需安装和管理配置 • 可移植:同1个数据库文件,可以在不同的操作系统中使用。 • 事务:支持ACID事务。s • 储存:数据库存储在单一磁盘的一个文件中。 • 独立:没有依赖其他库或插件。
10.2 MySQL的安装配置与管理 • 本书介绍的开发环境WAMP中,已经介绍了Apache与PHP的安装过程,在本节中将介绍了怎么获取MySQL,并在Windows系统上布部署的方法,以及怎么样配置安装好的MySQL服务,同时介绍与MySQL相关的管理工具。
10.2.1 安装MySQL前的准备 • 在程序运行中,计算出来的结果,通常需要进行保存,供其他程序使用,而最简单方法,就是把数据保存到文件中,但是其性能很有限,一旦数据达到一定的数量,检索和编辑数据,就是件很困难的事。而这时就需要使用数据库软件来管理、存取大量的数据。 • 本书选择MySQL作为使用的数据库软件,在大型程序中,数据库的安装与配置会直接影响程序对数据操作时的性能,在接下来的安装过程中,会详细讲解MySQL的安装与配置方法。安装前必须进行如下准备。 • (1)登录MySQL官方网站http://www.mysql.org/,下载最新的MySQL数据库安装程序,本书使用的是MySQL 5.0.45,下载地址:http://www.mysql.org/get/Downloads/MySQL-5.0/mysql-essential- 5.0.45-win32.msi/from/http://mysql.byungsoo.net/。 • (2)MySQL官方网站提供了适用于不同操作系统的文件,在下载时请注意选择正确的操作系统。 • (3)MySQL的Windows版本提供安装版与非安装版二个版本,本书选择的是安装版本。
10.2.2 安装MySQL • 正式安装MySQL的详细步骤如下:
10.2.3 配置MySQL • 当安装完MySQL后,MySQL安装向导会提示启动MySQL配置向导。读者也可以通过单击开始按钮,选择程序菜单项,在弹出的级联菜单中,选择MySQL菜单项,在MySQL弹出的级联菜单中,选择MySQL Server 5.0菜单项,此时在弹出的级联菜单中运行MySQL Server Instance Config Wizard快捷方式,或运行MySQL安装目录下bin文件夹里的MySQLInstanceConfig.exe程序,都可以可以启动MySQL的配置向导。
10.2.4 管理工具 • MySQL是支持命令行管理的,但是其复杂的语法,使很多初学者望而却步。兴好MySQL有很多可视化的介面管理工具,phpMyAdmin就是其中之一。 • phpMyAdmin是一个老牌的MySQL管理工具,其本身是使用PHP编写的 ,支持多国语言,以及各种字符集。phpMyAdmin以网站的形式运行,通过网络就可以管理服务器上的MySQL。其不仅可以完成数据库,以及数据表的各种管理,还可以以各种格式导入、导出数据库中数据。同时使用phpMyAdmin,还可以查看MySQL的进程,以及相关的运行信息。 • 在互网联上,还有很多功能强大的MySQL管理工具,有和phpMyAdmin一样的网站管理工具,也有直接运行在服务器上可执行文件管理工具。本书将使用phpMyAdmin作为MySQL的管理工具,并在下面的小节中介绍其安装与配置的过程。
10.2.5 PHP配置文件与MySQL访问 • 在老版本的PHP中,默认启用了MySQL支持。在PHP5.0以后的版本中,需要手动加载PHP中的MySQL支持模块,才可以使用PHP访问MySQL。下面分步骤介绍开启MySQL支持的方法。 • (1)使用记事本打开PHP配置文件,使用记事本的查找功能,查找字符串:extension=php_mysql.dll。 • (2)光标定位到PHP配置文件中,关于开启MySQL支持模块的行,去掉extension=php_mysql.dll行前的分号,以及其下一行,即extension=php_mysqli.dll行前的分号,开启MySQL支持模块。 • (3)设置完成后, • (4)PHP配置文件修改完成后,保存文件后退出。 • (5)重新启动Apache服务,此时就可以使用PHP访问MySQL数据库了。
10.2.6 安装phpMyAdmin • phpMyAdmin是以PHP编写的MySQL管理工具,其运行需要网络服务器,以及PHP语言的支持。本小节将在此前已经配置好的开发环境中,安装phpMyAdmin。
10.2.7 配置phpMyAdmin • 配置phpMyAdmin的过程,就是使用phpMyAdmin的安装脚本,生成一个phpMyAdmin使用的配置文件,并把其保存到phpMyAdmin的安装目录下即可,下面分步骤介绍phpMyAdmin的配置过程。
10.2.8 运行phpMyAdmin • 在配置完phpMyAdmin后,就可以通过浏览器来运行phpMyAdmin了。在浏览器中输出:http://localhost/phpMyAdmin后回车,进入phpMyAdmin的主界面,如图所示。
10.3 数据库的创建与管理 • 本节主要介绍使用phpMyAdmin,对MySQL数据库进行管理的方法,对数据库的管理包括创建、删除及备份等操作。
10.3.1 创建及管理数据库 • 要想创建一个MySQL数据库,可以通过命令行的形式,也可以在phpMyAdmin的开始界面中操作,下面分步骤来介绍创建数据库的方法。
10.3.2 备份和恢复数据库 • 备份数据库,即把数据库中的数据,以特定的文件形式进行存储。恢复数据库,即在数据库出现错误,或数据丢失的情况下,使用备份文件,恢复数据库中数据的操作。 • 通过phpMyAdmin备份数据库,是一件很简单的事情,只要使用数据库的导出功能,请可以把选择的数据库,保存为指定格式的文件。 • phpMyAdmin支持的备份文件格式包括: • CSV数据 • MS Excel 的 CSV 格式 • Microsoft Excel 2000 • Microsoft Word 2000 • LaTeX • Open Document Spreadsheet • Open Document Text • PDF • SQL • XML • YAML
10.4 表的创建与管理 • 数据库本身并不能存储数据,真正的数据存储在表中。使用MySQL的命令行创建表,对于初学者来说是比较困难的,而使用phpMyAdmin可以把这个过程变得简单。 • 本节主要介绍如何使用phpMyAdmin,来创建和管理数据表。
10.4.1 MySQL字段类型 • 要在MySQL数据库中存储数据,就要先了解MySQL的字段类型。MySQL的字段类型,有点类似于PHP的变量类型,都有长度的限制。MySQL的每个字段类型,都有特定的长度,来保存与长度相匹配的数据,例如日期数据,就可以存储在DATATIME为类型的字段中,数字就保存在INT类型的字段中。 • MySQL的字段类型为分3个种类,包括:数值类型、日期时间类型、字符串类型,而每个种类下,又分小类,这些小类的长度各有差别,下面列出MySQL的字段类型,以及占用的字节数,
10.4.2 创建表 • 使用phpMyAdmin创建表的的过程很简单,在本小节中将使用phpMyAdmin,创建一个用于存储用户信息的表。 • 在创建表之前,应该先大体了解一下要存储数据的内容。本小节要存储的用户信息包括:姓名、性别、年龄、生日、城市、简历。根据MySQL字符,可以把这些用户信息与字段类型相对应: • 姓名:中国国内姓名一般在4个字以内,可以使用CHAR类型的字段值存储。 • 性别:男或女,只有一个汉字,可以使用CHAR类型的字段值存储。 • 年龄:由于年龄的数值不会超过3位数,可以使用TINYINT类型的字段来存储。 • 生日:生日属于日期,可使用DATE类型的字段来存储。 • 城市:可以使用CHAR类型的字段存储。 • 简历:简历内容相对较多,可以使用TEXT类型的字段存储。
10.4.3 添加字段 • 在10.4.2小节中,介绍了创建表的过程,虽然顺利的创建表,但是有一个潜在问题并没有解决,即用户在读取数据库时,并没有唯一的值来代表一条记录,这使得在根据某一个字段检查数据时,很容易出现多条记录的情况。 • 为了解决这个问题,可以为表加上1个字段,这个字段是数值型,在增加记录时,可以自动增加其值,并在在表中是不重复的值,并把这个字段设置为主键。下面介绍使用phpMyAdmin添加字段,以及为数据建立主键的方法。
10.4.4 修改字段 • 在新建表时,如果表中字段比较多,难免会出现错误,这时需要使用phpMyAdmin编辑功能,来修改已经创建表中的字段。下面分步骤来介绍修改字段的方法。
10.4.5 运行SQL语句 • 使用phpMyAdmin管理数据库时,系统会把改动数据的SQL语句也列出来,如果用户对相关的SQL语句精通的话,也可以在phpMyAdmin中,直接运行SQL语句。下面分步骤介绍在phpMyAdmin中,运行SQL语句的方法。
10.5 SQL语法 • 在使用phpMyAdmin管理MySQL的过程中,都会产生一些SQL语句,这些SQL语句,就是phpMyAdmin的核心。 • SQL语句可以在phpMyAdmin中使用,执行后返回的结果,由phpMyAdmin绘制成表格的形式显示出来。SQL语句也可以在PHP脚本中,使用特定函数来执行。 • 数据库和表,都可以使用SQL语句来创建、修改和删除。但这些SQL语句往往很复杂,特别是使用phpMyAdmin来管理数据库和表时,就更少使用这些SQL语句,所以本节主要介绍一些简单,以及常用的SQL语句。
10.5.1 新建数据项 • 数据表建好后,就可以向其中写入数据了,用户可以通过phpMyAdmin的插入功能,来插入数据项,也可以使用SQL语句,来增加指定库的数据项。新建数据项使用的SQL语句格式如下所示: • INSERT INTO `数据库名称`.`表名称` (`表字段1` ,`表字段2` ,…)VALUES ('与表字段1对应的值’, '与表字段2对应的值'…);
10.5.2 查询数据 • 查询内容的SQL语句格式如下所示: • SELECT * FROM `表名` WHERE `字段` = ‘数据’ ORDER BY `字段名` DESC LIMIT 0 , 30 • 查询数据的SQL语句中,各关键字的作用
10.5.3 更新数据 • 更新数据的SQL语句格式如下所示: • UPDATE `数据库名称`.`表名称` SET `字段` = '数据' WHERE `字段` = ‘数据’
10.5.4 删除数据 • 删除数据的SQL语句格式如下所示: • DELETE FROM `表名称` WHERE `字段` = ‘数据’
10.6.1 字段原则 • 在创建表时,一定要根据实际情况,来制定字段的类型和长度,这样可以节省数据库的空间。 • 在创建表时,最好使用一个字段作为主键,这个字段使用INT字段类型,其值在每次增加记录时,会自动加1,并且不会在这个字段中重复出现,具体作法可以参照10.4.3小节。 • 注意:具有唯一值的字段的值,可以代表表中唯一的一条记录,在精确查询或定位时,特别有用。
10.6.2 SQL语法 • 10.5节中介绍的SQL语法,只是比较常用的简单语法,能完成基本的添加、编辑、删除等功能。 • SQL的语法比较复杂,特别是查询数据的语法,读者可以通过MySQL的用户手册,来详细了解SQL语法。