MySQL数据库基础

2017-05-02 15:20:44
admin
1303
最后编辑:admin 于 2018-05-03 10:00:35

1  数据库基础知识

随着网站规模的日益增长,网民对网站交互性要求的增加,必须要有一种方式能够有效、快速地存储和读取数据,关系型数据库应运而生。关系型数据库系统将数据分解为二维表格的形式,通过将大的数据库结构分解为多个表,在表与表之间建立关联关系,既可以节省数据存储的体积,节省存储空间,又抑制了重复性数据,加快了数据检索的时间。
例如图17.2是一份简单的人员集息列表Excel文件,它是没有使用信息管理系统时常见的存储数据的一种方式。
这种Excel存储数据的方式,将人员的所有信息都包含在一张表中,当Excel中的栏位和记录数越来越多时,要修改这份人员信息表会变得越来越繁杂。这种存储数据的方式称为平面文件数据结构模型。
根据关系型数据库系统的原理,对数据的相关性进行分析,可以得知部门与人员信息之间有如图17.3所示的关系。

为了简化修改与维护的复杂性,关系型数据库设计人员通过使用实体关系模型进行数据库建模,例如人员信息表可以分为人员表和部门表,通过部门编号进行关联,ER模型如图17.4所示。

由图17.4中可以看到,通过将员工和部门分别存储在不同的二维表格中,使用主键(PK)和外键(FK)进行关联,使得获取和维护数据会变得更容易。上述ER图的三个关键组件分别如下。
实体:需要了解的信息,比如部门和员工信息。
属性:一般也称为列或字段,描述实体必须或可选的信息,比如员工表中的工号和姓名等。
关系:实体之间指定的关联,比如员工的部门编号关联到了部门表的编号属性。
注意:关系型数据库的理论是由IBM公司的研究员E.F.Codd博士在1970年6月发表    了名为“大型共享数据库的关系模型”的论文,受到了学术界和产业界的高度重视和广泛响应,使得关系型数据库系统很快成为数据库市场的主流。
    关系型数据库管理系统是基于关系型数据库理论而建立的软件系统,用来建立、运用和维护关系型数据库,提供统一管理、统一控制,是数据库与用户之间的操作接口。目前常用的关系型数据库管理系统有Oracle、SQL Server、MySQL、Access等,它将完成如图17.5所示的管理职责。

有了关系型数据库管理系统,开发人员就可以在数据库中创建数据库、创建表、存取数据库内容、对数据库进行备份和管理,只需要理解常用的系统相关的操作,而不用去研究关系型数据库系统内部深奥难懂的数据方面的理论知识。

2  MySQL简介

    MySQL最初是由瑞典的MySQL AB公司开发的,后来被Oracle收购,成为Oracle公司旗下的产品。与Oracle系统类似的是MySQL也是开源免费并且跨平台的,可以在Linux、UNIX和Windows操作系统上运行MySQL。由于MySQL体积小巧,总体拥有成本低,而且速度快,因此目前已经成为许多中小型网站后台数据存储的首选。
    由于MySQL的跨平台和开源的特性,它的学习资料和学习代码相当丰富,可以通过下面的网址访问MySQL公司的网站:
    http: //dev.mysql.com/
    通过MySQL的官网,可以获取关于MySQL更多更详细的信息,比如可以在线阅读MySQL各个版本的文档,下载最新的MySQL版本等。官方网站如图17.6所示。
    可以通过Documentation导航进入到MySQL的官方文档页面,在该页面中可以查看和下载最新的MySQL手册。幸运的是现在MySQL也提供了简体中文版的文档可供下载,大大方便了非英语系的用户。
    用户可以选择从MySQL官网下载适用于其平台的安装包单独进行安装配置,不过一个简单的方法是使用XAMPP的集成安装功能。如果是使用XAMPP的默认安装方式进行安装,MySQL就已经安装到了当前的系统中,通过XAMPP的配置面板可以直接启动和停止MySQL。XAMPP的MySQL控制如图17.7所示。
    可以通过单击配置按钮,从弹出的配置窗口中单“Services and Port Settings”按钮,在弹出的窗口中可以配置Apache的端口和MySQL的监听端口,默认情况下,MySQL使用3306作为其主要的监听端口。
    通过单击XAMPP中MySQL面板右侧的“Admin”按钮,可以打开phpMyAdmin工具使用Web的方式控制和操作MySQL数据库,可以使用phpMyAdmin通过网页来执行创建、复制和删除数据等操作,还可以通过命令提示符在命令行下管理数据库。

3  MySQL的命令操作


   MySQL提供了命令行的管理工具,在服务器启动后,在命令行界面通过命令行操作MySQL,可以创建新的数据库、创建表、管理用户和权限、执行查询等。虽然命令行工具没有提供图形化的便利性,但是性能快捷,不需要安装额外的工具,适合本地的MySQL数据库管理员。
    单击XAMPP配置面板中的“Shell”按钮,将打开控制台窗口,直接在该窗口中输出MySQL,由于XAMPP默认情况下会以当前操作系统管理员的身份登录,因此在服务器上可以直接通过MySQL命令进入到MySQL命令提示符界面。否则可能需要提供用户名和密码。如果是在一台与MySQL服务器位于不同位置的主机上登录,还需要指定主机名称或IP地址,如以下语句所示:
mysql -h host -u user -p
    -h后面的host指定主机名称,一u后面的user指定登录用户名称,一p指定输入密码,MySQL会显示Enter password:提示输入密码。
    一般进行MySQL管理时都会直接登录安装MySQL的服务器,因此笔者的命令提示界面如图17.8所示,笔者使用mysql -u root进行了登录。
    在mysql>命令提示符的后面,就可以输出MySQL的各种命令来操纵数据库了。比如下面使用MySQL命令来显示当前的数据库信息:
    可以看到当前的MySQL数据库系统中有两个数据库,可以在命令行中直接发送SELECT语句来查询数据库。例如要查询当前MySQL的版本信息,可以使用下面的语句:
    可以看到,在命令提示窗口中向MySQL发送命令,必须在随后跟一个分号。当一个命令发送成功后,这个命令将被发送到MySQL数据库服务引擎执行,然后显示一个结果。
  注意:在命令提示窗口可以使用大小写格式,并不影响查询的结果。
    在命令提示窗口中可以创建自己的数据库、添加一个或多个数据表、使用SELECT、INSERT、UPDATE和DELETE更新表中的内容,下面演示如何在命令提示窗口创建一个BookLib的数据库,用来存放图书馆的图书信息,如以下步骤所示。
(1)在mysql>命令提示窗口,输入如下命令创建一个新的BookLib数据库:
 
    可以看到通过调用CREATE DATABASE命令,创建了一个新的BookLib数据库。必须注意在Linux和UNIX中具有大小写的区别。
(2)使用USE命令切换到新创建的BookLib数据库,如以下命令所示:
   
(3)通过SHOW TABLES命令可以查看这个数据库中包含有哪些数据表,如下所示:
       
    可以看到,当前数据库中不包含任何数据表。
    (4)下面使用CREATE TABLE命令创建一个Books数据表,用来存放图书信息。它包含图书编号、图书名称、ISBN号、库存数量、单价字段,语句如下:
    可以看到通过CREATE TABLE语句成功地创建了一个表。现在通过SHOW TABLES可以看到这个新创建的表,如下所示。
  
(5)在具有了一个空白的Books表之后,下面使用一条INSERT语句向表中插入一本图书,如以下语句所示:
    可以看到,INSERT语句成功地向表Books中插入了一条记录。
    (6)现在有了一个具有一条记录的数据表,可以使用SELECT语句查询数据库,如以
下代码所示:
    可以看到数据库表Books中果然已经包含了一条新的图书记录。

    使用命令提示符工具需要用户具备较强的数据库知识,对于数据库新手来说这会造成使用的困难。对于网站建设者来说,可能并不需要太深的数据库知识,所幸的是现在有很多图形化的GUI管理工具可以代替手工操纵MySQL的麻烦。

4  phpMyAdmin管理MySQL数据库

    phpMyAdmin是开源的基于Web方式的用来控制和操作MySQL数据库的工具,它使用PHP编写,可以在网页上远程操作MySQL数据库,比如可以建立、复制、删除数据等。它使得对MySQL数据库的操作变得很简单,不需要理解命令行方式下的MySQL命令,特别适合网页新手操作。
    可以通过XAMPP配置面板中MySQL右侧的“Admin”按钮来打开phpMyAdmin首页,如图17.9所示。
注意:通过设置config.inc.php中的auth_type为cookie模式,可以将登录模式更改为远程访问方式,会提示输出用户名与密码,本节出于演示的目的,使用默认的config模式。
    phpMyAdmin主界面的左侧列出的是最近使用的数据库列表,单击某个数据库名称就可以切换到该数据库的管理窗口。可以通过phpMyAdmin下面的导航快捷按钮切换到主页或切换到数据库列表。
    在phpMyAdmin的数据库窗口中,可以执行创建新的数据库、管理数据库中的表、对数据库中的数据进行导入和导出、管理数据库用户、使用SQL语句查询数据库等操作,对SQL Server比较熟悉的用户会发现,phpMyAdmin提供了类似SQL Server企业管理器的图形化操作功能。

    尽管phpMyAdmin提供了简易的可视化数据库操作方式,但是作为一名网站开发人员来说,熟练掌握相关的数据库语法是非常有必要的。本章后面的内容将会介绍如何操作phpMyAdmin以可视化的方式操作数据库,同时也会简单介绍这些操作涉及的MySQL命令。







    • 在线客服
    • 关注微信
    • 联系电话
      • 欢迎咨询
      • 欢迎加入QQ群 303257430
    • 公众号:源宝网络
      • 联系电话及微信号 18902328227