零点起飞学PHP之数据库管理系统.pptx

上传人:zhu****ei 文档编号:5429503 上传时间:2020-01-29 格式:PPTX 页数:45 大小:469.06KB
返回 下载 相关 举报
零点起飞学PHP之数据库管理系统.pptx_第1页
第1页 / 共45页
零点起飞学PHP之数据库管理系统.pptx_第2页
第2页 / 共45页
零点起飞学PHP之数据库管理系统.pptx_第3页
第3页 / 共45页
点击查看更多>>
资源描述
第11章数据库管理系统 数据库管理系统可以说是现在Web应用中必不可少的一部分 现在的数据库管理系统有很多 常见的有MySQL Oracle SQLServer PostgreSQL等 常与PHP搭配使用的数据库管理系统是MySQL 流行的LAMP组合就是Linux Apache MySQL和PHP 由此也可以反映出MySQL和PHP搭配的流行程度 本章我们就主要介绍使用PHP操作MySQL 11 1MySQL基础 虽然PHP和MySQL组合是非常流行的 但是它们毕竟是两种不同的技术 因此现在我们需要暂缓PHP的学习 来了解一些MySQL或者说是对大多数数据库的操作基础 11 1 1使用MySQL数据库前的准备 由于我们使用的是集成环境 因此相关配置已经设置得比较通用了 但是在默认的情况下通常需要配置php ini文件来获取PHP对MySQL的支持 php ini文件中需要设置的选项如下 1005extension php mysql dll1006extension php mysqli dll在确认了以上模块被加载之后 我们就可以从XAMPP控制面板中启动MySQL服务 在MySQL成功启动后 就为我们的后续操作做好了基础 11 1 2连接与断开MySQL数据库 数据库管理系统是用来管理数据的 同操作文件类似的 要对数据进行操作 就需要打开一个到数据的连接 MySQL默认的客户端是基于命令行的 我们可以通过XAMPP控制面板中的Shell按钮来打开一个命令行窗口 我们可以在命令行中输入如下的命令来打开与MySQL的连接 mysql u用户名 p密码在XAMPP集成环境中 默认的用户名为root 密码为空 在把上述命令中的 用户名 替换为 root 后点击回车键提交后会提示我们输入密码 由于密码为空 我们直接按回车即可 然后窗口中就会显示MySQL的欢迎信息 现在我们就已经连接了MySQL 断开与MySQL的连接可以输入 exit 命令来退出 以上介绍的就是连接与断开MySQL的操作 虽然这两步操作是非常简单的 但是他们也是非常重要的两个步骤 在PHP操作数据库管理系统的过程中同样是不可或缺的 11 1 3数据库操作 数据库管理系统通常使用SQL 结构化查询语言 语句来操作 SQL是大多数关系数据库管理系统所支持的工业标准 在接下来的大部分内容中 我们都将介绍SQL的使用 1 查看数据库 在一个数据库系统中可以有多个数据库 查看该数据库管理系统中存在的数据库可以使用如下的命令 SHOWDATABASESSQL命令中的关键字通常建议使用大写 一条SQL命令应该是以分号结束的 我们使用上面的命令来查看当前的MySQL中所有的数据库 从执行结果我们可以看到 现在的MySQL中存在6个数据库 2 创建数据库 为了我们对数据库的操作不会影响到其他数据库而导致系统不稳定 我们通常会创建一个用于学习的数据库 创建数据库使用的命令如下 CREATEDATABASE数据库名称如果期望创建的数据库名称已经存在则会报告一条错误 创建成功则报告影响到的数据行数 下面我们就来创建一个名为mydatabase的数据库 我们可以再次查看数据库 从查询结果中我们可以看到 mydatabase数据库已经被建立 3 删除数据库 与创建数据库对应的是删除数据库 当一个数据库不再需要使用的时候就可以将其删除 删除一个数据库的命令如下 DROPDATABASE数据库名称例如删除我们新创建的mydatabase数据库的语句如下 DROPDATABASEmydatabase 该语句正确执行后mydatabase数据库会被删除 这里就不做详细演示 4 取消操作 当我们在输入SQL命令的过程中出现错误 可以通过在结尾加入 c 来取消当前SQL命令 例如下面的语句 DROPDATABASEmydatabase c 11 1 4数据表操作 在一个数据库管理系统中 通常会有多个数据库 直接用来存储数据的是数据库中的数据表 数据表就类似于一个二维表格 1 选择数据库 在前面的讲解过程中我们可以看到一个数据库管理系统中可以有多个数据库 要指定操作的数据库需要使用的命令如下 USE数据库名称 这里我们可以选择一个存在的数据库 选择数据库管理系统中名为 mysql 的数据库 在成功选择数据库后客户端会返回 Databasechanged 的提示信息 2 显示数据库中的数据表 在成功选择一个数据库以后 我们就可以通过使用如下命令来查看该数据库中的数据表 SHOWTABLES 在执行该命令后通常会出现类似如下的信息 限于篇幅问题 我们这里只列出了查询结果中的一部分 3 创建数据表和查看数据表结构 创建数据表可以使用如下的语句 CREATETABLE数据表名 数据表定义 数据表名可以使用不包括 和 的字符 数据表定义通常会定义该数据表的字段名 字段类型 数据宽度 是否可以为空 主键 自动增加和默认值 通常的形式如下 字段名字段类型 字段宽度 NOTNULL PRIMARYKEY AUTO INCREMENT DEFAULT默认值 以上的形式可以在一条SQL语句中存在多次以定义数据表的多个字段 数据库管理系统中常用的数据类型以及其取值返回如表所示 3 创建数据表和查看数据表结构 3 创建数据表和查看数据表结构 在了解了数据类型之后 我们就可以来创建一个最简单的数据表 为了数据的安全 我们选择在前面创建的mydatabase数据库中创建数据表 创建的代码如下 CREATETABLEsimple table idINT 以上代码执行后会输出如下的信息 mysql CREATETABLEsimple table idINT QueryOK 0rowsaffected 0 13sec 3 创建数据表和查看数据表结构 提示信息显示查询成功 我们可以通过如下命令来查看数据表的结构 DESCRIBE数据表名称 查看simple table数据表结构的语句以及执行结果如下 从执行结果我们可以看到该表的信息 由于我们只设定了列名称和类型 因此其他选项均使用默认值 其他选项被设置后的效果说明 NOTNULL 该选项被设置后该字段不可以为空 例如可以限制用户名字段 PRIMARYKEY 该选择用来设置字段为主键 一个表中只可有一个主键 主键的值不可以重复 可以将ID类的字段设置为主键 DEFAULT 该选项用来设置字段的默认值 现在我们就可以来完整地创建一个数据表 数据表的名称我们定为complete table 数据表的信息如表所示 3 创建数据表和查看数据表结构 根据上表我们就可以使用如下的SQL语句来创建complete table数据表 CREATETABLEcomplete table idINTNOTNULLAUTO INCREMENTPRIMARYKEY nameVARCHAR 20 NOTNULL sexCHAR 4 DEFAULT boy register timeDATE 执行以上语句 3 创建数据表和查看数据表结构 提示信息表示查询成功 说明complete table数据表已经创建成功 查看complete table数据表 从查询结果我们可以清楚地看出创建的complete table数据表与我们在表中所规定的信息是完全一致的 4 修改数据表结构 数据表在创建好之后通常不会频繁改动 但是在有些时候改动表结构是必要的 例如一个社交网站记录用户的数据表在初期id的数据类型被设置为TINYINT型 如果注册的用户非常多 那么就有必要使用取值范围更大的数据类型 修改数据表的结构可以使用如下形式的语句 ALTERTABLE数据表名修改规则 常用的修改规则有增加 修改和删除列 他们的形式如下 ADD列信息 MODIFY列名称修改规则 DROP列名称 例如为complete table数据表添加age列 我们可以使用如下的语句 ALTERTABLEcompleteADDageCHARAFTERname 以上语句执行后会在name列后怎加名为age数据类型为char的列 执行效果如下 mysql ALTERTABLEcomplete tableADDageCHARAFTERname QueryOK 0rowsaffected 0 09sec Records 0Duplicates 0Warnings 0查看修改后的表结构 4 修改数据表结构 从查询结果可以看出在name列后加入了age列 如果新添加的列要作为第一列则可以使用FIRST选项 接着我们可以MODIFY选项来将age列的数据类型修改为TINYINT并设置为不可为空 使用的语句及执行效果如下 mysql ALTERTABLEcomplete tableMODIFYageTINYINTNOTNULL QueryOK 0rowsaffected 0 09sec Records 0Duplicates 0Warnings 0再次查看数据表结构 从修改后的表结构中我们可以看出修改的结果与我们期望的结果是相同的 删除列的语句非常简单 删除age列可以使用如下的语句 ALTERTABLEcompleteDROPage 为了保持数据表的完整性 这里我们就不做实际演示 5 为表添加 修改和删除数据 在创建了期望的数据表之后我们就可以向该数据表中添加数据了 向数据表中添加数据可以使用如下的语句 INSERT数据表名 列名 VALUES 值 向complete table中插入一行数据的语句如下 INSERTcomplete table name age sex register time VALUES Tom 15 boy CURDATE 注意 CURDATE 为MySQL中的函数 它可以获取系统当前时间 5 为表添加 修改和删除数据 同创建数据表类似的 可以通过逗号来分割每行数据的值以使用一条SQL语句向数据表中插入多行数据 到此为止我们就为complete table数据表中加入了4行数据 有些数据会经常改变 我们就可以通过使用如下语句来更改数据 UPDATE数据表名SET列名称 值 WHERE设置条件 将数据表中Jim的年龄由16改为15的语句如下 UPDATEcomplete tableSETage 15WHEREname Jim 注意 如果不指定设置条件则会更改数据表中所有的记录 5 为表添加 修改和删除数据 删除数据表中的数据可以使用如下的形式 DELETEFROM数据表名 WHERE删除条件 删除数据表中Mary的记录可以使用如下的语句 DELETEFROMcomplete tableWHEREname Mary 注意 如果不指定删除条件则会删除数据表中所有的记录 6 删除数据表 当一个数据表不再需要的时候就可以将其删除 可以使用的形式如下 DROPTABLE数据表名 注意 该语句会删除表中的数据以及表的结构 需要谨慎使用 删除complete table数据表可以使用如下的语句 DROPTABLEcomplete table 执行成功后complete数据表即被删除 查看mydatabase数据库中的数据表 从查询结果可以看出 mydatabase数据库中只存在simple table数据表 11 1 5查询数据操作 查询数据库操作是数据库管理系统中使用最为频繁的操作 本节就简单介绍一下查询数据的操作 在进行查询操作之前 我们应该建立一个如表所示的简单数据表 11 1 5查询数据操作 查询整个表中的数据可以使用如下的语句 SELECT FROM数据表名 查看report card数据表信息的语句以及执行效果如下 查看数据表中指定的列可以使用如下的形式 SELECT列名称 FROM数据表名 查看report card数据表中的name和total points列的语句如下 mysql SELECT FROMreport card 11 1 5查询数据操作 查看数据表中指定的列可以使用如下的形式 SELECT列名称 FROM数据表名 查看report card数据表中的name和total points列的语句如下 mysql SELECTname total pointsFROMreport card 11 1 5查询数据操作 与修改数据表类似的 查询数据也可以通过使用WHERE设置查询条件 形式如下 SELECT 列名称 FROM数据表名WHERE查询条件 查询report card数据表中Anne成绩使用的语句如下 mysql SELECT FROMreport cardWHEREname Anne 11 1 5查询数据操作 查询chinese列值大于80的数据并显示其name列的语句如下 mysql SELECTnameFROMreport cardWHEREchinese 80 查询数据操作还可以使用 ORDERBY 选项对查询结果排序 语句形式如下 SELECT 列名称 FROM数据表名ORDERBY列名称 ASC DESC ASC和DESC选项用于控制排序方式 默认为按照升序排列 ASC 将表report card按照total points列降序排列使用的语句如下 mysql SELECT FROMreport cardORDERBYtotal pointsDESC 通过使用LIMIT选项可以设置输出查询结果的条数 语法形式如下 SELECT 列名称 FROM数据表名LIMIT行数 将上面排序的结果只显示前3行的语句如下 mysql SELECT FROMreport cardORDERBYtotal pointsDESCLIMIT3 11 1 6使用phpMyAdmin管理数据库 在前面的学习过程中 我们一直都是在命令行中进行一系列的操作 以命令行的方式操作数据库虽然效率很高 但是对于初学者或者业余爱好者来说都是不太友好的 phpMyAdmin是使用PHP编写的一套用户界面友好的数据库管理工具 在我们使用的XAMPP集成环境中就包含这个工具 因为类似的工具都对数据库的操作进行了简化 虽然操作都非常简单 但是对于我们学习PHP的读者来说并不是最合适的 因此本章才会以命令行方式为主 而不是使用phpMyAdmin 下面我们就来简单介绍一下phpMyAdmin 1 启动phpMyAdmin 启动phpMyAdmin的方式有两种一种为直接使用浏览器访问地址 http localhost phpmyadmin 即可 第二种方式为从XAMPP控制面板启动 phpMyAdmin主界面的左侧列出的是当前系统中的数据库 大部分右侧则是一些容易理解的设置和相关的信息 2 管理数据库 在phpMyAdmin主界面左侧的数据库中点击一个数据库即可查看该数据库 这里以查看mydatabase数据库为例 查看该数据库的信息 点击其中的数据表名称即可查看该数据表中的数据 这里以查看report card数据表为例 点击数据表对应操作中的 结构 可以查看数据表的结构 这里以complete table为例 点击数据表对应操作中的 插入 可以为数据表添加数据 这里以report card为例 从以上一系列的介绍可以看出 phpMyAdmin的使用是非常简单和直观的 这里我们就不多做介绍 有兴趣的读者可以自己尝试其他操作 11 2使用PHP操作数据库 在上一节中介绍了使用命令行方式或者phpMyAdmin工具来管理数据库 本节我们来介绍使用PHP来实现操作数据库 11 2 1PHP操作数据库流程 标准的数据库操作流程分为3步 1 打开与数据库的连接 2 对数据库进行相关操作 3 关闭与数据库的连接 打开与数据库的连接可以使用mysql connect函数 该函数的原型如下 resourcemysql connect string server string username string password bool new link int client flags 参数server为MySQL服务器名 默认为 localhost 3306 参数username为数据库的用户名 参数password为数据库对应用户名的密码 参数new link用来控制是否打开新的连接 参数client flags用于传送客户端标记 可以为以下参数 MYSQL CLIENT COMPRESS 使用压缩的通讯协议 MYSQL CLIENT IGNORE SPACE 允许在函数名后有空格 MYSQL CLIENT INTERACTIVE 允许断开连接之前等候interactive timeout时间 MYSQL CLIENT SSL 使用SSL加密 mysql connect函数通常只使用前三个参数 关闭数据库连接可以使用mysql close函数 它的原型如下 boolmysql close resource link identifier 参数link identifier为打开的数据库连接 如果省略该参数则关闭上一个打开的数据库连接 该函数不是必须要调用的 当程序执行完毕后数据库管理系统会自动关闭非持久性连接 11 2 1PHP操作数据库流程 示例11 1 演示使用mysql connect函数连接MySQL服务器 服务器名称 用户名和密码错误均会导致连接失败 但是所有参数为空的时候有可能会连接成功 因为MySQL可能会有一个任意用户名并且没有密码的用户 但是这些用户可能会没有足够的权限去操作MySQL 11 2 2查询数据库 在成功连接数据库之后即可对数据库进行查询操作 这就类似于在命令行方式下成功登录后向数据库发送SQL语句 1 发送SQL查询 在PHP中向数据库发送SQL查询可以使用mysql query函数 该函数会向数据库发送SQL查询并将查询的结果返回 mysql query函数的原型如下 resourcemysql query string query resource link identifier 参数query即为SQL语句 可选参数link identifier为打开的数据库连接 如果省略则使用上一个打开的连接 没有打开的连接 则该函数会无参数调用mysql connect函数 以下代码发送SQL查询来查看MySQL中存在的数据库 mysql query SHOWDATABSES link 查询的结果会以资源类型返回 我们需要使用专门的函数来读取返回的结果 2 获取结果集 mysql fetch row mysql fetch assoc和mysql fetch array函数可以从返回的结果集中取出一行作为数组元素 mysql fetch row函数会返回索引数组 mysql fetch assoc函数会返回关联数组 mysql fetch array可能返回关联数组或者索引数组 以上三个函数的原型如下 arraymysql fetch row resource result arraymysql fetch assoc resource result arraymysql fetch array resource result int result type 三个函数中的参数result为SQL查询的结果集 mysql fetch array函数的参数result type可以为以下的取值 MYSQL ASSOC 只返回关联数组 MYSQL BOTH 该选项为默认值 返回有数字和字符索引的关联数组 MYSQL NUM 只返回索引数组 2 获取结果集 示例11 2 演示使用mysql fetch row函数取得SQL查询的结果集 注意 同字符串操作类似的 mysql connect返回的资源中也有一个类似的指针 从结果集获取数据的函数通常会移动指针 因此上面的示例中可以使用while循环来遍历结果集 运行结果输出的即为MySQL中存在的数据库 3 选择数据库 在成功连接数据库管理系统后 通常会选择一个数据库进行操作 但是通常不会使用mysql query函数发送SQL查询来选择一个数据库 而是使用专门的mysql select db函数来选择一个数据库 它的原型如下 boolmysql select db string database name resource link identifier 参数database name即为需要选择的数据库 可选参数link identifier为打开的数据库连接 如果省略则使用上一个打开的连接 没有打开的连接 则该函数会无参数调用mysql connect函数 在该函数执行成功后 后面的mysql query函数均对已选择的数据库进行查询 3 选择数据库 示例11 3 演示使用mysql select db函数选择一个数据库 如果期望选择的数据库并不存在mysql select db函数会返回FALSE 4 查询数据 在选择数据库后即可查询其中的数据 示例11 4 演示列出report card数据表中的数据 从运行结果可以看到 虽然表中的数据被无误地输出了 但是并不是很容易阅读 下面我们就将这些数据装入表格 示例11 5 演示将示例11 4代码中的查询结果装入表格 从运行结果可以看到将查询到的数据装入表格后更加直观了 但是这些数据所表示的含义并不直观 下面我们就来将列名称加入表格 示例11 6 演示将列名称加入示例11 5所输出的表格中 从运行结果可以看到 该数据表中数据的显示已经比较完美了 5 获取查询影响的记录行数 在进行一些SQL查询的时候 可能会对数据表中的数据产生影响 例如修改和插入数据 本节我们将主要介绍mysql affected rows函数 它可以记录上一次查询操作影响的记录行数 该函数的原型如下 intmysql affected rows resource link identifier 可选参数link identifier为打开的数据库连接 省略该函数则会无参数调用mysql connect函数 5 获取查询影响的记录行数 示例11 7 演示使用mysql affected rows函数获取上一次查询操作影响的记录行数 该示例中的查询语句删除了数据表中student id大于3的数据 到此为止 查询数据库部分的操作就介绍完毕了 当然还有一些其他操作没有做介绍 但是都与前面介绍过的示例类似 读者可以轻易掌握 11 3小结 本章主要介绍了MySQL数据库管理系统的一些常用操作以及使用PHP对MySQL进行操作 虽然在本章中使用大部分篇幅介绍SQL语句 但是SQL语句的内容远远不止这么多 读者可以根据自身情况加强SQL语句的学习 使用PHP操作MySQL部分则比较容易学习 只要可以熟练使用SQL语句则可以很轻松地掌握
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!