上2节课学习了如何使用PHP语言和数据文件来实现完整的一个信息管理功能网页。 这节课开始学习关系数据库的概念,以及如何安装和使用MySQL数据库。 关系数据库的概念 数据库就是对数据进行结构化存储和管理的仓库。 关系数据库就是数据库中的表采用二维表格来存储数据,是一种按行与列排列的具有相关信息的逻辑组,它类似于Excle工作表。 表和表之间可以通过数据关系进行关联。 关系数据库有以下关键名词: 数据库服务程序:实现数据库机制并对外提供数据访问和存储服务的程序。 数据库客户端程序:用来访问和管理数据库结构和数据的程序。可以和服务器不在一台机器上,可以远程访问数据库服务器程序和数据。 数据库:一个数据库可以包含多个表。数据库有属性数据库名来区分不同的数据库。 表:二维表格,按行与列进行存储数据。表有属性表名用来区分不同的表。 字段:表格的每一个列定义为一个字段,字段有字段名,字段数据类型,存储长度等属性。 记录:表中的一行数据称之为一个记录。 记录数据值:记录的某一个字段的具体的值就是一个记录的数据值。该值数据属性符合字段的属性定义。 主键:表示记录唯一性的某些字段定义为主键。也就是相同的主键值不能在记录中重复出现。 常见的关系数据库产品 SQL Server数据库:微软公司的数据库产品。 Sql Server是一种高性能的关系型数据库管理系统,以Cliient / Server 为设计结构、支持多个不同的开发平台、支持企业级的应用程序、支持XML等,能够满足不同类型的数据库解决方案。 Oracle数据库:Oracle(甲骨文)公司的数据库产品。 Oracle是目前世界上使用最为广泛的关系数据库,它具有完整的数据库管理功能,包括数据的大量性、数据保存的持久性、数据的共享性、数据的可靠性。 MySQL数据库: MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。目前属于 Oracle 旗下产品。MySQL被广泛地应用在Internet上的中小型网站中。 MySQL数据库介绍 MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。 MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。 和其他的大型数据库,例如 Oracle、SQL Server等相比,MySQL 相对而言有一定的不足之处,但是丝毫没有减少它受欢迎的程度。对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于 MySQL是开放源码软件,因此可以大大降低总体拥有成本。 Linux作为操作系统,Apache 或Nginx作为 Web 服务器,MySQL 作为数据库,PHP/Perl/Python作为服务器端脚本解释器。由于这四个软件都是免费或开放源码软件(FLOSS),因此使用这种方式不用花一分钱(除开人工成本)就可以建立起一个稳定、免费的网站系统,被业界称为“LAMP“或“LNMP”组合。 安装MySQL数据库服务软件 Window7系统下安装MySQL数据库服务软件 在之前的第2章的2.11这一节当中,介绍了Web服务程序phpStudy,由于phpStudy里面已经包含了MySQL数据库服务软件,因此继续使用这个Web服务程序就可以使用MySQL数据库了。 进入目录c:\phpStudy,运行程序phpStudy.exe。然后点击按钮“启动”,启动服务程序。 树莓派系统下安装MySQL数据库服务软件 打开“LX终端”程序,运行以下命令: sudo apt-get install mysql-server mysql-client 当中需要输入root用户的密码。 为了让PHP支持MySQL数据库,需要运行以下命令: sudo apt-get install php5-mysql 然后重启树莓派系统。 Ubuntu系统下安装MySQL数据库服务软件 Ubuntu系统下的安装方式和树莓派系统完全一样。 后面就不再特别介绍关于Ubuntu操作系统的安装和配置了,参考树莓派系统即可。 安装数据库客户端软件 为了通过图形化界面访问和管理MySQL数据库,可以安装数据库客户端软件。 数据库客户端软件有很多种,有PC端软件形式,也有Web网页形式,还有命令行软件形式。 这里为了简单起见,只介绍Window7下面的PC端软件Navicat for MySQL。 大家可以去网上寻找免费版本,学哥使用的是比较老的版本:8.2.19。 下载后解压缩后文件如下: 双击navicat8_mysql_cs.exe程序,运行安装程序: 点击“下一步”: 选择“我同意”,点击“下一步”: 点击“下一步”: 点击“下一步”: 点击“下一步”: 点击“安装”: 点击“完成”,结束安装,然后在桌面找到“Navicat for MySQL”图标,双击打开程序: 连接到数据库服务器 打开数据库客户端软件之后,第一件事就是要连接到数据库服务器。 能连接上的前提是数据库服务程序已经开启,例如启动之前的phpStudy程序。 打开“Navicat for MySQL”程序,点击“连接”菜单图标: 在弹出窗口中的“连接名”后面输入“localdb”,“密码”输入“root”,点击“确定”按钮: 可以看到左侧“连接”里面出现了一个数据库连接,名字是“localdb”,双击它: 如果可以连接成功,则在“localdb”下面会出现几个数据库,例如:information_schema、mysql、performance_schema等。 如果要连接某个数据库,就可以双击数据库名字,就可以打开这个数据库。 例如双击mysql数据库: 可以看到,显示了mysql数据库下面的很多表,例如columns_priv、db、event等。 如果双击某个表名,就可以打开这个表。 例如双击db表: 可以看到新打开了一个窗口,显示的是表db的里面的记录和数据。 然后点击窗口右上角的关闭按钮,关闭查看数据窗口。 然后在数据库mysql上点击右键,弹出右键菜单: 点击关闭数据库,就可以关闭mysql数据库了。 接下来,我们自己创建一个单独的数据库,然后在里面进行实验。 手工新建一个数据库 在数据库连接“localdb”上点击右键,弹出右键菜单: 点击“创建数据库...”菜单: 键入数据库名:student,字符集选择“utf8 -- UTF-8 Unicode”,整理选择“utf8_general_ci”: 点击“确定”按钮,可以看到左侧数据库列表中多了一个数据库“student”,双击打开数据库: 可以看到右侧的表一个都没有。 手工新建一个表 接下来,在数据库student里面创建一个表,就是前面2节课的学生分数信息的存储数据的表。 在数据库“student”的里面的菜单“表”上面点击右键,弹出右键菜单: 点击菜单“创建表(N)”,弹出表设计窗口界面: 然后在表格当中填写字段信息,首先来创建id字段。 “名”这栏输入“id”; “类型”这栏选择“int”; “长度”这栏输入“11”; “十进位”这栏不输入; “允许空值”这栏的勾选去掉; 最右侧的主键,点击后出现主键图标。 如下图: 然后点击键盘上的向下箭头,会在这一行的下面出现新的一行,在第2行里面填写name字段。 “名”这栏输入“name”; “类型”这栏选择“varchar”; “长度”这栏输入“30”; “十进位”这栏不输入; “允许空值”这栏的勾选不用去掉; 最右侧的主键,不要点击,不出现主键图标。 如下图: 继续创建sex,subject,score这3个字段如下图: 然后点击工具栏按钮“保存”: 键入表名“studentscore”,点击“确定”按钮,然后关闭这个表设计窗口: 可以看到,多出来了一个表“studentscore”,这个表就是安装刚才的字段定义出来的表。 如果发现字段定义不合适,需要重新进行表结构修改的话,可以在表“studentscore”点击右键,弹出右键菜单: 点击菜单“设计表(E)”,再次进入表设计窗口,进行修改后保存即可。 手工插入一条记录 双击表“studentscore”,打开表,进入表数据管理窗口: 默认会显示一条空的记录,5个字段都显示的值为(Null)。 在这个表格里面填入这5个字段的数据值如下: 然后点击下面工具栏的提交按钮,就可以将这条数据保存到表当中存储起来了。 可以看到最下方的状态栏里面出现了一条INSERT INTO语句,并且右下角显示了“记录1/1”的信息,就表示数据已经保存成功了。 关闭表数据管理窗口,然后重新双击表“studentscore”,打开表,如果看到了这条记录数据,就表示数据已经存储到数据库了。 即是将数据库客户端程序关闭,将数据库服务程序关闭,也没有关系,这个数据已经被存储起来。 只要重新打开数据库服务程序,重新打开数据库客户端程序,重新打开这个数据库连接,重新打开数据库student,重新打开表studentscore,就仍然可以看到这条记录数据存在着,可以访问的。