0064 关系数据库的概念和安装使用MySQL
上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。然后点击按钮“启动”,启动服务程序。
image树莓派系统下安装MySQL数据库服务软件
打开“LX终端”程序,运行以下命令:
sudo apt-get install mysql-server mysql-client
当中需要输入root用户的密码。
image为了让PHP支持MySQL数据库,需要运行以下命令:
sudo apt-get install php5-mysql
然后重启树莓派系统。
Ubuntu系统下安装MySQL数据库服务软件
Ubuntu系统下的安装方式和树莓派系统完全一样。
后面就不再特别介绍关于Ubuntu操作系统的安装和配置了,参考树莓派系统即可。
安装数据库客户端软件
为了通过图形化界面访问和管理MySQL数据库,可以安装数据库客户端软件。
数据库客户端软件有很多种,有PC端软件形式,也有Web网页形式,还有命令行软件形式。
这里为了简单起见,只介绍Window7下面的PC端软件Navicat for MySQL。
大家可以去网上寻找免费版本,学哥使用的是比较老的版本:8.2.19。
下载后解压缩后文件如下:
image双击navicat8_mysql_cs.exe程序,运行安装程序:
image点击“下一步”:
image选择“我同意”,点击“下一步”:
image点击“下一步”:
image点击“下一步”:
4-10-8.jpg点击“下一步”:
image点击“安装”:
4-10-10.jpg点击“完成”,结束安装,然后在桌面找到“Navicat for MySQL”图标,双击打开程序:
image连接到数据库服务器
打开数据库客户端软件之后,第一件事就是要连接到数据库服务器。
能连接上的前提是数据库服务程序已经开启,例如启动之前的phpStudy程序。
打开“Navicat for MySQL”程序,点击“连接”菜单图标:
4-10-12.jpg在弹出窗口中的“连接名”后面输入“localdb”,“密码”输入“root”,点击“确定”按钮:
image可以看到左侧“连接”里面出现了一个数据库连接,名字是“localdb”,双击它:
4-10-14.jpg如果可以连接成功,则在“localdb”下面会出现几个数据库,例如:information_schema、mysql、performance_schema等。
如果要连接某个数据库,就可以双击数据库名字,就可以打开这个数据库。
例如双击mysql数据库:
image可以看到,显示了mysql数据库下面的很多表,例如columns_priv、db、event等。
如果双击某个表名,就可以打开这个表。
例如双击db表:
4-10-16.jpg可以看到新打开了一个窗口,显示的是表db的里面的记录和数据。
然后点击窗口右上角的关闭按钮,关闭查看数据窗口。
然后在数据库mysql上点击右键,弹出右键菜单:
image点击关闭数据库,就可以关闭mysql数据库了。
接下来,我们自己创建一个单独的数据库,然后在里面进行实验。
手工新建一个数据库
在数据库连接“localdb”上点击右键,弹出右键菜单:
4-10-18.jpg点击“创建数据库...”菜单:
image键入数据库名:student,字符集选择“utf8 -- UTF-8 Unicode”,整理选择“utf8_general_ci”:
4-10-20.jpg点击“确定”按钮,可以看到左侧数据库列表中多了一个数据库“student”,双击打开数据库:
image可以看到右侧的表一个都没有。
手工新建一个表
接下来,在数据库student里面创建一个表,就是前面2节课的学生分数信息的存储数据的表。
在数据库“student”的里面的菜单“表”上面点击右键,弹出右键菜单:
image点击菜单“创建表(N)”,弹出表设计窗口界面:
4-10-23.jpg然后在表格当中填写字段信息,首先来创建id字段。
“名”这栏输入“id”;
“类型”这栏选择“int”;
“长度”这栏输入“11”;
“十进位”这栏不输入;
“允许空值”这栏的勾选去掉;
最右侧的主键,点击后出现主键图标。
如下图:
image然后点击键盘上的向下箭头,会在这一行的下面出现新的一行,在第2行里面填写name字段。
“名”这栏输入“name”;
“类型”这栏选择“varchar”;
“长度”这栏输入“30”;
“十进位”这栏不输入;
“允许空值”这栏的勾选不用去掉;
最右侧的主键,不要点击,不出现主键图标。
如下图:
4-10-25.jpg继续创建sex,subject,score这3个字段如下图:
image然后点击工具栏按钮“保存”:
image键入表名“studentscore”,点击“确定”按钮,然后关闭这个表设计窗口:
4-10-28.jpg可以看到,多出来了一个表“studentscore”,这个表就是安装刚才的字段定义出来的表。
如果发现字段定义不合适,需要重新进行表结构修改的话,可以在表“studentscore”点击右键,弹出右键菜单:
image点击菜单“设计表(E)”,再次进入表设计窗口,进行修改后保存即可。
手工插入一条记录
双击表“studentscore”,打开表,进入表数据管理窗口:
image默认会显示一条空的记录,5个字段都显示的值为(Null)。
在这个表格里面填入这5个字段的数据值如下:
4-10-31.jpg然后点击下面工具栏的提交按钮,就可以将这条数据保存到表当中存储起来了。
image可以看到最下方的状态栏里面出现了一条INSERT INTO语句,并且右下角显示了“记录1/1”的信息,就表示数据已经保存成功了。
关闭表数据管理窗口,然后重新双击表“studentscore”,打开表,如果看到了这条记录数据,就表示数据已经存储到数据库了。
即使将数据库客户端程序关闭,将数据库服务程序关闭,也没有关系,这个数据已经被存储起来。
只要重新打开数据库服务程序,重新打开数据库客户端程序,重新打开这个数据库连接,重新打开数据库student,重新打开表studentscore,就仍然可以看到这条记录数据存在着,可以访问的。