1.Mysql数据库介绍

Mysql数据库

思考:用户通过表单提交了很多数据,数据在PHP脚本中绕一圈就没了,那么这个数据有什么价值呢?数据怎么样才能持续的保存下来,并方便的给其他用户分享呢?

引入:数据保存与交互是Web2.0的显著特点,如果只是数据在PHP脚本中过一遍,那么数据将变得没有任何意义。PHP本身可以将数据存放到文件中(文件编程),但是文件操作的代价偏高(受制于操作系统I/O),另外数据操作的效率也非常低,因此需要一种高效的数据管理和操作方式,这个就需要用到数据库。

1.数据库基本了解【了解】

定义:数据库==Database==,是按照数据结构来组织、存储和管理数据的仓库,是用户所需要的各种数据管理的方式。数据库能够长期的、高效的管理和存储数据。(狭义的数据库是按照一定方式组织存储的数据集合)

  1. 数据库的发展史:数据库概念从被提出到后来实现商业化一共经历了三个过程
  • 数据库萌芽阶段:20世纪60年代末期,开始提出了多个程序共享数据的目标
  • 发展阶段:20世纪70年代到80年底初,各种数据库的理论开始提出和研究,为后来数据库产品的出现奠定了基础
  • 成熟阶段:20世纪80年代末期到现在,很多数据库产品出现,并实现了具体的市场应用
  1. 数据库分类
  • 根据实际数据结构的不同来组织数据的数据库进行分类分为三类:

    • 层次数据库
    • 网络数据库
    • 关系数据库
  • 当前市面上根据实际数据模型分类分为两类:

    • 关系型数库:SQL
    • 非关系型数据库:NoSQL
  1. 关系型数据库
  • 定义:是一种建立在关系模型上的数据库,关系模型由==关系数据结构==、==关系操作集合==、==关系完整性约束==三部分组成。将复杂的数据利用关系模型转换成一张==二维表==进行数据存储。关系型数据库的存储介质是磁盘。
  • 关系型数据库产品代表
    • 大型:Oracle、DB2
    • 中型:SQLServer,Mysql
    • 小型:Access、SQLite
  • 关系型数据库解决的主要问题是==数据的有效管理==和==持久化存储==
  1. 非关系型数据库
  • 定义:NoSQL(Not Only SQL),泛指非关系型的数据库,是一种使用非关系型方式的数据存储。非关系型数据库的存储介质绝大部分是内存。
  • 非关系型数据库产品代表
    • 大中型:Redis
    • 中小型:MongoDB,Memcached
  • 非关系型数据库解决的主要问题是==高并发==和==效率==

总结:数据库是一种高效存储和管理数据的集合,利用数据库可以实现数据的持久化存储和高效的管理。其中,基于数据的存储主要还是利用关系型数据库,而进行高并发处理的时候采用非关系型数据库,二者结合处理高并发需求的数据管理。


思考:关系型数据库是建立在关系模型上的数据库,最终存储方式是一个对应的二维表,那跟Excel是不是一样的结构呢?

引入:Excel本质也是一种数据库,只是这种数据库是需要通过人直接对数据进行操作的。关系型数据库存储数据的本质也就是一个类似的Excel二维表,但是为了管理的便捷性、操作的安全性和存储的高效性,从外到内分成四层对象。

2.关系型数据库系统【了解】

定义:关系型数据库系统(Database System,简称DBS),指的是关系型数据库这样的一种数据管理方式的内部方式。关系型数据库的结构从外到内四层对象分别为:数据库管理系统、数据库、数据表和字段(数据列)

  1. 数据库管理系统:DataBase Management System(DBMS),是数据库系统中最外层的部分,负责内部的管理操作以及与外部软件的交互,是一种用C语言底层实现的结构化查询语言(Structured Query Language,简称SQL)。所有对数据库的管理和操作指令都由DBMS完成实现
  2. 数据库:DataBase(DB),是数据存储的最高单元集合,通常是针对项目进行设置,一个项目对应一个数据库。数据库本身不存储数据
  3. 数据表:Table,是真正体现数据关系的对象,一个二维表通常代表一组数据关系。一个数据库中通常有很多张数据表
  4. 字段(数据列):field/column,是数据真实存储的最小单位,也是组成数据表的基本结构。一张表由多个字段组成
关系型数据库结构.png

总结:关系型数据库系统(DBS)内部由数据库管理系统(DMBS)进行管理,所有的指令都有DBMS执行,DMBS管理的单元是数据库(DB),一个系统内部可以管理多个数据库,数据库内部是管理多张数据表(T able),数据表由各种字段(Field)组成,字段是存储数据的最小单元。


思考:根据数据库的结构,如果要操作数据最终是落在数据表上,那么如何才能够实现数据在数据表的增删改查呢?

引入:数据库系统是一个成熟的软件,有自己的结构也有自己的语法规则,必须要通过特地的指令,并且是交由DBMS才能最终执行。对关系型数据库的操作指令称之为SQL(Structured Query Language),叫结构化查询语言。

3.SQL【掌握】

定义:SQL(Structured Query Language)结构化查询语言,是一种针对关系型数据库特殊标准化的编程语言,能够实现用户数据库查询和程序设计(不同数据库产品在自身产品设计上有一些不同,因此不能完全通用)。虽然SQL原意是结构化查询,但是实际上可以进行多种操作,针对Mysql数据库产品,SQL分为5个部分。

  1. DQL:Data Query Language,数据查询语言,用于查询和检索数据
  2. DML:Data Manipulation Language,数据操作语言,用于数据的写操作(增删改)
  3. DDL:Data Definition Language,数据定义语言,用于创建数据结构
  4. DCL:Data Control Language,数据控制语言,用于用户权限管理
  5. TPL:Transaction Process Language,事务处理语言,辅助DML进行事务操作(因此也归属于DML)

总结

  1. SQL是一种编程语言,早起因为程序语言不够强大,可以直接使用数据库编程实现某些功能
  2. 后来随着编程语言的过程强化,数据库部分弱化了过程控制的功能,更多的关注数据的存储管理。因此,SQL部分中DQL、DML(TPL)这两种是实际开发中使用最多的部分,DDL和DCL通常是在开发前期使用。

思考:这么多关系型数据库,为什么要选择Mysql来作为Web服务器的数据库部分呢?

引入:理论上来讲任何关系型数据库都是可以作为Web数据库来进行数据管理的,PHP也支持多种数据库操作。但是Mysql作为一种开源且免费的特点,与PHP不谋而合,所以也就有了PHP和Mysql这对黄金搭档。

4.Mysql基本介绍【了解】

  1. Mysql历史
  • Mysql是由瑞典AB公司1999-2000年开发的一种开放源代码的关系型数据库管理系统
  • Mysql在2008年被Sun公司收购
  • Sun公司在2009年被Orace了公司收购
  1. Mysql存储引擎:存储引擎是数据库存储数据的方式,针对存储机制、索引技巧、锁定水平有不同的能力区分
  • MyIsam:不支持事务安全,也不支持外键(表与表之间的限定关系),优势是访问速度快(查询效率高)和写入效率高(数据插入)。数据保存方式是磁盘存储(Oracle收购后不再支持更新)
  • InnoDB:默认存储引擎,支持事务安全和外键,能够更好的保护数据安全,多用户操作数据效率高,缺点是需要大量维护索引占用磁盘高,且数据都保存到一个文件中,不方便备份。数据存储方式也是磁盘(Oracle收购继续支持更新)
  • Memory:内存中创建表存储数据,效率非常高。缺点是不支持模糊查询,且服务重启就会数据丢失(收费引擎)
  1. Mysql是一种C/S结构的软件,因此进行mysql数据库操作的时候需要借助于客户端来操作服务端
  • 服务端:mysqld.exe,安装的时候选择了随Windows服务自动启动
  • 客户端:mysql.exe,用于数据库的增删改查指令操作,通常借助于Windows下的CMD控制台运行

总结:Mysql提供了不止以上三种方式的存储引擎,但是实际普遍使用的就是以上三种,当前主流是InnoDB,Oracle还在继续支持。因此,在实际开发中,通常只要使用默认的存储引擎即可。Mysql作为一种C/S结构软件,需要客户端和服务端共同协作才能完成相关操作。


思考:Mysql是一种C/S结构的软件,且服务器是加入到Windows服务中来进行管理的,如果想要进行服务器的管理的话,该如何操作呢?

引入:虽然mysql服务器端mysqld.exe是随系统启动和关闭的,但是本质而言属于Windows系统下的一个应用软件,因此不只是可以通过服务进程实现启动和关闭,也可以使用mysqld.exe相应的命令来实现。

5.Mysql服务器运行管理【了解】

定义:Mysql服务器运行管理,即对服务器端的运行(启动和关闭)进行管理。在Windows下安装成服务后,可以采用两种方式来进行服务器端的运行管理。

  1. Windows系统服务管理:即通过Windows服务本身进行启动和关闭操作:右键计算机->管理->服务和应用程序->服务->MySQL服务
  2. 通过Windows服务命令管理:net start/stop 服务名(需要管理员运行CMD控制台)
  3. 暴力形式关闭服务端:任务管理器->mysqld.exe->结束任务

总结:MySQL服务管理通常情况下不需要特别操作,随系统自启动和关闭即可。但是如果在运行过程中修改配置文件想要让服务器立即生效,课可以使用Windows服务方式进行mysql服务器端启动和关闭操作。


思考:MySQL是一种C/S结构的软件,那么客户端该如何实现与服务器端的通信呢?

引入:C/S结构的软件都是通过客户端运行,然后根据相应的规则与服务器建立连接并进行通信的。

5.登录和退出MySQL系统【掌握】

定义:登录和退出MySQL系统,即根据MySQL客户端与服务器端的登录规则实现客户端与服务端的关联,然后再根据相应规则断开与服务端的连接。

  1. 客户端登录服务端:首先要明确一点,实际开发中客户端和服务端通常不会在一台电脑上,而且服务端作为数据重地,数据安全是要考虑的重要因素。基于这样的一种情况,客户端想要登录服务端,需要使用以下规则来提供信息
  • 使用mysql.exe客户端:在CMD下运行mysql.exe或者mysql指令
  • -h参数:h代表host,表示客户端想要连接的服务器端的主机地址(可以是IP),如果是本机使用localhost,也可以省略该参数
  • -P参数:P(大写)代表port,表示客户端想要访问的服务器上的软件端口,默认是3306,如果没有修改服务器监听的端口,那么该参数也可以省略
  • -u参数:u代表username,表示客户端的登录用户名,MySQL默认安装用户是root用户
  • -p参数:p(小写)代表password,表示客户端的登录密码,建议在输入参数后进行换行密文输入密码


    mysql客户端登录服务端.png

注意:一个客户端只能连接一台服务器,但是一台服务器可以同时连接多个客户端,具体数量看安装MySQL的时候指定的数量(默认500连接数)

  1. 客户端与服务端断开连接:客户端在连接服务器处理完所有需求后,应该主动断开与服务端的连接,让出连接资源,让服务端能够更有效的服务于更多用户。客户端退出服务端有两种模式:主动断开和被动断开
  • 主动断开:即客户端输入断开连接的相关命令,服务器来主动断开连接
    • exit
    • quit
    • \q


      mysql客户端退出服务端.png
  • 被动断开:即客户端直接关闭客户端,服务器端在检测到客户端失联后释放连接

总结

  1. MySQL作为一种C/S结构软件,需要通过客户端来实现服务器端操作
  2. 客户端登录服务端包含建立连接(主机地址+端口)和登录验证(用户名+密码)信息,如果是本机操作可以省略连接信息(系统自动匹配本机)
  3. 因为数据库的连接数是有限的,所以要养成使用完毕主动断开连接释放资源的习惯。
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,219评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,363评论 1 293
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,933评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,020评论 0 206
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,400评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,640评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,896评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,597评论 0 199
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,327评论 1 244
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,581评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,072评论 1 261
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,399评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,054评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,083评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,849评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,672评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,585评论 2 270

推荐阅读更多精彩内容