第 10 章 数据库的选择、创建及管理

31
第 10 第 第第第第第第 第第第第第 • 第第第第 第第第第第第第第第第第第第 第第第第第第第第第第 第第第第第第 ,,, 第第第第第第第第 第第第第第第第第第第第第 第第第第第第 ,,。 • PHP 第第第第第第第第第第第 第第第 ,: Adabas D MySQL dBase Oracle Empress PostgreSQL FilePro Solid Informix Sybase InterBase Velocis mSQL Unix dbm SQL Server SQLite 第 Access 第 第第 MySQ L PostgreSQL SQLite 第第第第第第第第第第第 第第第第第第第第第 第第第第第第第 一。

description

第 10 章 数据库的选择、创建及管理. 顾名思义,数据库就是数据存储的仓库,其实这么说并不准确,数据库并不单单是用于存储数据,其还可以对数据进行组织,管理等操作。 - PowerPoint PPT Presentation

Transcript of 第 10 章 数据库的选择、创建及管理

Page 1: 第 10 章  数据库的选择、创建及管理

第 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 是比较常见的开源数据库,本章会对这些数据库作一个简单的介绍。

Page 2: 第 10 章  数据库的选择、创建及管理

10.1 常用数据库简介• 在大型项目中,甲骨文公司开发的 Oracle 数据库,受到很多程序员的青睐。虽然 PHP 也支持 Oracle 数据库,但是因为相对配置复杂,本节将不会进行介绍,有兴趣的读者,可以查询相关资料。本节主要介绍的是在 Windows 平台,以及 UNIX/Linux 平台下运行的常用数据库。

Page 3: 第 10 章  数据库的选择、创建及管理

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 。• 内存管理:基于线程的内存分配系统。

Page 4: 第 10 章  数据库的选择、创建及管理

10.1.2 开放源代码的数据库 PostgreSQL• PostgreSQL 是一款开源的数据库管理系统,其理念非常先进,并且支持大部分 SQL 2003的标准。• PostgreSQL 支持很多特性,如:复杂查询、外键、触发器、视图、事务完整性、多版本并发控制等,同时通过扩展 PostgreSQL 也可以增加新的数据类型、函数、操作符、聚集函数、索引方法、过程语言等。• PostgreSQL 数据库,可以部署在目前大部分的操作系统中,从小型网站项目到大型工程, PostgreSQL 数据库都是一个不错的选择。而且 PostgreSQL 的许可证的非常灵活,不管是私用、商用、还是学术研究,都可以免费使用、修改、分发 PostgreSQL 。• 读者可以在 PostgreSQL 的官方网站上,下载最新的安装版本,同时网站还提供相关的技术文档和用户文档。 PostgreSQL 官方网站: http://www.postgresql.org/ 。

Page 5: 第 10 章  数据库的选择、创建及管理

10.1.3 轻量级数据库 SQLite• SQLite 是一款软量级的数据库,支持大部分 SQL92/SQL99的标准。SQLite 数据库最大的好处在于,不用安装,无需配置,也不需要管理员。• SQLite 数据库是以 1 个文件的形式存在,把其这个文件制到任何支持 SQLite 数据库的操作系统上,都可以使用,这使得 SQLite 可以用于一些小型网站,以及移动设备上。下面列出 SQLite 的一些特性,在选择数据库时,供读者参考:• 支持多种开发语言: C 、 PHP 、 Perl 、 Java 、 ASP.NET 、 Python 。• 数据库文件最大: 2TB 。• 零配置:无需安装和管理配置• 可移植:同 1 个数据库文件,可以在不同的操作系统中使用。• 事务:支持 ACID 事务。 s• 储存:数据库存储在单一磁盘的一个文件中。• 独立:没有依赖其他库或插件。

Page 6: 第 10 章  数据库的选择、创建及管理

10.2 MySQL 的安装配置与管理• 本书介绍的开发环境WAMP 中,已经介绍了 Apache与 PHP 的安装过程,在本节中将介绍了怎么获取MySQL ,并在 Windows 系统上布部署的方法,以及怎么样配置安装好的 MySQL服务,同时介绍与MySQL 相关的管理工具。

Page 7: 第 10 章  数据库的选择、创建及管理

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 版本提供安装版与非安装版二个版本,本书选择的是安装版本。

Page 8: 第 10 章  数据库的选择、创建及管理

10.2.2 安装MySQL• 正式安装MySQL 的详细步骤如下:

Page 9: 第 10 章  数据库的选择、创建及管理

10.2.3 配置 MySQL• 当安装完MySQL后, MySQL安装向导会提示启动MySQL 配置向导。读者也可以通过单击开始按钮,选择程序菜单项,在弹出的级联菜单中,选择 MySQL菜单项,在 MySQL弹出的级联菜单中,选择 MySQL Server 5.0菜单项,此时在弹出的级联菜单中运行 MySQL Server Instance Config Wizard快捷方式,或运行 MySQL安装目录下 bin 文件夹里的 MySQLInstanceConfig.exe 程序,都可以可以启动MySQL 的配置向导。

Page 10: 第 10 章  数据库的选择、创建及管理

10.2.4 管理工具• MySQL 是支持命令行管理的,但是其复杂的语法,使很多初学者望而却步。兴好 MySQL 有很多可视化的介面管理工具,phpMyAdmin 就是其中之一。• phpMyAdmin 是一个老牌的 MySQL 管理工具,其本身是使用 PHP 编写的 ,支持多国语言,以及各种字符集。 phpMyAdmin 以网站的形式运行,通过网络就可以管理服务器上的 MySQL 。其不仅可以完成数据库,以及数据表的各种管理,还可以以各种格式导入、导出数据库中数据。同时使用 phpMyAdmin ,还可以查看MySQL 的进程,以及相关的运行信息。• 在互网联上,还有很多功能强大的 MySQL 管理工具,有和 phpMyAdmin 一样的网站管理工具,也有直接运行在服务器上可执行文件管理工具。本书将使用 phpMyAdmin 作为 MySQL 的管理工具,并在下面的小节中介绍其安装与配置的过程。

Page 11: 第 10 章  数据库的选择、创建及管理

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 数据库了。

Page 12: 第 10 章  数据库的选择、创建及管理

10.2.6 安装 phpMyAdmin• phpMyAdmin 是以 PHP 编写的 MySQL 管理工具,其运行需要网络服务器,以及 PHP 语言的支持。本小节将在此前已经配置好的开发环境中,安装 phpMyAdmin 。

Page 13: 第 10 章  数据库的选择、创建及管理

10.2.7 配置 phpMyAdmin• 配置 phpMyAdmin 的过程,就是使用 phpMyAdmin 的安装脚本,生成一个 phpMyAdmin 使用的配置文件,并把其保存到 phpMyAdmin 的安装目录下即可,下面分步骤介绍 phpMyAdmin的配置过程。

Page 14: 第 10 章  数据库的选择、创建及管理

10.2.8 运行 phpMyAdmin• 在配置完 phpMyAdmin后,就可以通过浏览器来运行 phpMyAdmin 了。在浏览器中输出: http://localhost/phpMyAdmin后回车,进入 phpMyAdmin 的主界面,如图所示。

Page 15: 第 10 章  数据库的选择、创建及管理

10.3 数据库的创建与管理• 本节主要介绍使用 phpMyAdmin ,对 MySQL 数据库进行管理的方法,对数据库的管理包括创建、删除及备份等操作。

Page 16: 第 10 章  数据库的选择、创建及管理

10.3.1 创建及管理数据库• 要想创建一个 MySQL 数据库,可以通过命令行的形式,也可以在 phpMyAdmin 的开始界面中操作,下面分步骤来介绍创建数据库的方法。

Page 17: 第 10 章  数据库的选择、创建及管理

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

Page 18: 第 10 章  数据库的选择、创建及管理

10.4 表的创建与管理• 数据库本身并不能存储数据,真正的数据存储在表中。使用 MySQL 的命令行创建表,对于初学者来说是比较困难的,而使用 phpMyAdmin 可以把这个过程变得简单。• 本节主要介绍如何使用 phpMyAdmin ,来创建和管理数据表。

Page 19: 第 10 章  数据库的选择、创建及管理

10.4.1 MySQL字段类型• 要在 MySQL 数据库中存储数据,就要先了解 MySQL 的字段类型。 MySQL 的字段类型,有点类似于 PHP 的变量类型,都有长度的限制。 MySQL 的每个字段类型,都有特定的长度,来保存与长度相匹配的数据,例如日期数据,就可以存储在 DATATIME 为类型的字段中,数字就保存在 INT类型的字段中。• MySQL 的字段类型为分 3个种类,包括:数值类型、日期时间类型、字符串类型,而每个种类下,又分小类,这些小类的长度各有差别,下面列出MySQL 的字段类型,以及占用的字节数,

Page 20: 第 10 章  数据库的选择、创建及管理

10.4.2 创建表• 使用 phpMyAdmin 创建表的的过程很简单,在本小节中将使用 phpMyAdmin ,创建一个用于存储用户信息的表。• 在创建表之前,应该先大体了解一下要存储数据的内容。本小节要存储的用户信息包括:姓名、性别、年龄、生日、城市、简历。根据 MySQL字符,可以把这些用户信息与字段类型相对应:• 姓名:中国国内姓名一般在 4个字以内,可以使用 CHAR类型的字段值存储。• 性别:男或女,只有一个汉字,可以使用 CHAR类型的字段值存储。• 年龄:由于年龄的数值不会超过 3位数,可以使用 TINYINT类型的字段来存储。• 生日:生日属于日期,可使用 DATE类型的字段来存储。• 城市:可以使用 CHAR类型的字段存储。• 简历:简历内容相对较多,可以使用 TEXT类型的字段存储。

Page 21: 第 10 章  数据库的选择、创建及管理

10.4.3 添加字段• 在 10.4.2小节中,介绍了创建表的过程,虽然顺利的创建表,但是有一个潜在问题并没有解决,即用户在读取数据库时,并没有唯一的值来代表一条记录,这使得在根据某一个字段检查数据时,很容易出现多条记录的情况。• 为了解决这个问题,可以为表加上 1 个字段,这个字段是数值型,在增加记录时,可以自动增加其值,并在在表中是不重复的值,并把这个字段设置为主键。下面介绍使用 phpMyAdmin 添加字段,以及为数据建立主键的方法。

Page 22: 第 10 章  数据库的选择、创建及管理

10.4.4 修改字段• 在新建表时,如果表中字段比较多,难免会出现错误,这时需要使用 phpMyAdmin 编辑功能,来修改已经创建表中的字段。下面分步骤来介绍修改字段的方法。

Page 23: 第 10 章  数据库的选择、创建及管理

10.4.5 运行 SQL 语句• 使用 phpMyAdmin 管理数据库时,系统会把改动数据的 SQL 语句也列出来,如果用户对相关的SQL 语句精通的话,也可以在 phpMyAdmin 中,直接运行 SQL 语句。下面分步骤介绍在 phpMyAdmin 中,运行 SQL 语句的方法。

Page 24: 第 10 章  数据库的选择、创建及管理

10.5 SQL 语法• 在使用 phpMyAdmin 管理 MySQL 的过程中,都会产生一些 SQL 语句,这些 SQL 语句,就是 phpMyAdmin 的核心。• SQL 语句可以在 phpMyAdmin 中使用,执行后返回的结果,由 phpMyAdmin 绘制成表格的形式显示出来。 SQL 语句也可以在 PHP脚本中,使用特定函数来执行。• 数据库和表,都可以使用 SQL 语句来创建、修改和删除。但这些 SQL 语句往往很复杂,特别是使用 phpMyAdmin来管理数据库和表时,就更少使用这些 SQL 语句,所以本节主要介绍一些简单,以及常用的 SQL 语句。

Page 25: 第 10 章  数据库的选择、创建及管理

10.5.1 新建数据项• 数据表建好后,就可以向其中写入数据了,用户可以通过 phpMyAdmin 的插入功能,来插入数据项,也可以使用 SQL 语句,来增加指定库的数据项。新建数据项使用的 SQL语句格式如下所示:• INSERT INTO ` 数据库名称`.` 表名称` (` 表字段 1` ,`表字段 2` ,…)VALUES ('与表字段 1 对应的值’ , '与表字段 2对应的值 '…);

Page 26: 第 10 章  数据库的选择、创建及管理

10.5.2 查询数据• 查询内容的 SQL 语句格式如下所示:• SELECT * FROM ` 表名 ` WHERE `字段 ` = ‘ 数据’ ORDER BY `字段名 ` DESC LIMIT 0 , 30• 查询数据的 SQL 语句中,各关键字的作用

Page 27: 第 10 章  数据库的选择、创建及管理

10.5.3 更新数据• 更新数据的 SQL 语句格式如下所示:• UPDATE ` 数据库名称`.` 表名称` SET `字段` = ' 数据 ' WHERE `字段 ` = ‘ 数据’

Page 28: 第 10 章  数据库的选择、创建及管理

10.5.4 删除数据• 删除数据的 SQL 语句格式如下所示:• DELETE FROM ` 表名称 ` WHERE `字段 ` = ‘ 数据’

Page 29: 第 10 章  数据库的选择、创建及管理

10.6 常见问题

Page 30: 第 10 章  数据库的选择、创建及管理

10.6.1 字段原则• 在创建表时,一定要根据实际情况,来制定字段的类型和长度,这样可以节省数据库的空间。• 在创建表时,最好使用一个字段作为主键,这个字段使用 INT字段类型,其值在每次增加记录时,会自动加 1 ,并且不会在这个字段中重复出现,具体作法可以参照 10.4.3小节。• 注意:具有唯一值的字段的值,可以代表表中唯一的一条记录,在精确查询或定位时,特别有用。

Page 31: 第 10 章  数据库的选择、创建及管理

10.6.2 SQL 语法• 10.5 节中介绍的 SQL 语法,只是比较常用的简单语法,能完成基本的添加、编辑、删除等功能。• SQL 的语法比较复杂,特别是查询数据的语法,读者可以通过MySQL 的用户手册,来详细了解 SQL 语法。