本文转载至微信公众号:我们都是小青蛙
一、数据存储方式的演变
人们从古至今都有存储数据的需求,存储方式是按照下面的方式演变的。
很久很久以前,人们把数据存储在动物骨头上,后来存储在竹片上,再后来存到纸上,直到近代发明了磁带、留声机等载体,不过这些都是依赖人工进行整理和保存的,特点是效率低下、错误率高、查找不方便等。
后来人们发明了计算机,为了管理各种数据,人们发明了一种叫文件系统的东西,可以方便的通过文件的存储路径和文件名来访问各个文件的内容,计算机程序也可以直接通过文件系统来操作各种文件,比人工管理爽多了。
3. 数据库阶段
随着文件中存储的内容越来越多,在文件中修改和查找某些数据已经变得非常困难了,所以人们发明了一种专门的软件
来管理存储的数据,这些数据依照一定格式保存,通过这个软件可以方便的对数据进行增删改查操作,从而极大的提升了数据管理效率,人们把这个管理数据的软件叫做数据库管理系统。
数据库(DataBase,DB):指长期保存在计算机等存储设备上,按照一定规则组织起来,可以被各种用户或应用共享的数据集合.
直白来说:存储数据的仓库
数据库管理系统(DataBase Management System,DBMS):指一种操作和管理数据库的大型软件,**用于建立、使用和维护数据库**,
对数据库进行统一管理和控制,以保证数据库的安全性和完整性。用户通过数据库管理系统访问数据库中的数据。其实就是一个软件。
当前比较流行和常用的数 据库管理系统有Oracle、MySQL、SQL Server和DB2等
要想将数据添加到数据库,或访问、处理数据库中保存的数据,需要使用数据库管理系统
。数据库管理系统会将创建的数据库、保存的数据保存在安装了mysql服务端程序的服务器上。
RDBMS (Relational Database Management System,关系数据库管理系统)
图 数据库管理系统:
二、MYSQL简介
我们平时经常会用表格来存放信息,比如下边的两个表格就存放着学生的一些基本信息和他们的各学科的考试成绩:
学生基本信息表:
学号 | 姓名 | 性别 | 身份证号 | 学院 | 专业 | 入学时间 |
---|---|---|---|---|---|---|
20180101 | 杜子腾 | 男 | 15817719901044792 | 计算机学院 | 计算机科学与工程 | 2018-09-01 |
20180102 | 杜琦燕 | 女 | 151008199801178529 | 计算机学院 | 计算机科学与工程 | 2018-09-01 |
20180103 | 范统 | 男 | 17156319980116959X | 计算机学院 | 软件工程 | 2018-09-01 |
20180104 | 史珍香 | 女 | 141992199701078600 | 计算机学院 | 软件工程 | 2018-09-01 |
20180105 | 范剑 | 男 | 181048200008156368 | 航天学院 | 飞行器设计 | 2018-09-01 |
20180106 | 朱逸群 | 男 | 197995199801078445 | 航海学院 | 电子信息 | 2018-09-01 |
学生成绩表:
学号 | 科目 | 成绩 |
---|---|---|
20180101 | 母猪的产后护理 | 78 |
20180101 | 论萨达姆的战争准备 | 88 |
20180102 | 母猪的产后护理 | 100 |
20180102 | 论萨达姆的战争准备 | 88 |
20180103 | 母猪的产后护理 | 59 |
20180103 | 论萨达姆的战争准备 | 61 |
20180104 | 母猪的产后护理 | 55 |
20180104 | 论萨达姆的战争准备 | 46 |
如果我们想查找史珍香的《母猪的产后护理》科目的考试成绩怎么办呢?可以先通过学生基本信息表
查找到她的学号,如何通过她的学号到学生成绩表
中找到该学号对应的《母猪的产后护理》科目的考试成绩。
针对不同表中的数据可以通过某种关系联系起来,例子中成绩表通过学号和基本信息表联系起来,我们把这种数据库管理系统称为关系型数据库管理系统。
MYSQL就是一种关系型数据库。
关系型数据库管理系统有很多,比如甲骨文的Oracle、MYSQL,IBM的DB2,微软的Access和SQL Server等。我们是来介绍MYSQL的,所以瞅瞅它有啥牛逼的地方:
三、MYSQL 客户端/服务端架构
以我们平时使用的微信为例,它其实是由两部分组成,一部分是客户端,一部分是服务器。客户端可能有很多种形式,比如手机APP,电脑软件或是网页版微信,每个客户端都有一个唯一的用户名,就是你的微信名,另一方面,腾讯公司在他们的机房里运行着一个服务器软件,我们平时操作微信,其实都是客户端来和这个 服务器打交道。比如狗哥用微信给猫爷发了一条消息的过程其实是这样的:
MYSQL采用的架构就是这种客户端/服务器架构。它有一个服务器程序直接和我们存储的数据打交道,服务端一般在机房长期运行;然后可以有好多客户端程序连接到这个服务器程序,发送增删改查的请求,然后服务器就响应这些请求,从而操作它维护的数据。
和微信一样,MYSQL的每个客服端都需要提供用户名和密码才能登陆,登陆后才能给服务器发请求来操作数据。
客户端和服务端程序可以安装在同一台机器上,也可以安装在不同的机器上。
不过从我们学习的角度来说,也没有必要弄两台电脑,一个当服务器,一台当客户端了。所以,我们一般只需要在自己的电脑上把服务器程序和客户端程序都装上,先开启服务器程序,再打开客户端程序和服务器程序进行交互就好了。
小贴士:MYSQL的大部分安装包都包含了服务器程序和客户端程序,但是安装包中自带的客户端程序是在黑框框里使用的,如果你习惯了图形用户界面,可以自己下载个MYSQK Workbench、NaviCat、SQLyog等图形化界面客户端软件。
1. 启动和关闭服务器程序
通常在MYSQL安装目录下有个bin目录,看一下在我的机器中bin目录下的部分文件:
mysql
mysql.server
mysqld
mysqladmin
…
这些都是可执行程序,也就是说可以在DOS窗口输入这些文件的路径(绝对路径、相对路径)就可以执行它们。
服务器相关的可执行文件
我们重点关注一下mysql.server这个可执行文件,这个文件可以帮助我们启动和关闭服务器。
LINUX系统:
启动服务器:
mysql.server start
关闭服务器:
mysql.server stop
Windows系统:
启动服务器:
net start mysql
关闭服务器:
net stop mysql
2. 客户端相关的可执行文件
当 MySQL 服务已经运行时, 我们可以通过 MySQL 自带的客户端工具登录到 MySQL 数据库中, 首先打开命令提示符, 输入以下格式的命名:
mysql -h 主机名 -u 用户名 -p
(第一次登录没有密码,直接按回车过),登录成功,但是登录成功后,不能执行任何操作,MySQL服务器要求您必须设置密码再执行其它操作。
参数说明:
-h : 指定客户端所要登录的 MySQL 主机名, 登录本机(localhost 或 127.0.0.1)该参数可以省略;
-u : 登录的用户名;
-p : 告诉服务器将会使用一个密码来登录, 如果所要登录的用户名密码为空, 可以忽略此选项。
如果我们要登录本机的 MySQL 数据库,只需要输入以下命令即可:
mysql -u root -p
按回车确认, 如果安装正确且 MySQL 正在运行, 会得到以下响应:
Enter password:
若密码存在, 输入密码登录, 不存在则直接按回车登录。登录成功后你将会看到 Welcome to the MySQL monitor… 的提示语。
然后命令提示符会一直以 mysq> 加一个闪烁的光标等待命令的输入, 输入 exit 或 quit 退出登录。
对于java应用程序,难免要操作数据库,可以使用JDBI或JDBC与服务器程序建立连接,从而通过sql语句操作数据库中的数据。