MySQL概述

栏目: 数据库 · 发布时间: 5年前

内容简介:很久很久以前,人们把数据存在动物骨头上,后来存到竹片上,再后来存到纸上,直到近代发明了磁带留声机啥的,不过这些都是依赖人工进行整理和保存的,特点就是效率低下、错误率高、查找不方便等等等等。。。后来人们发明了计算机,为了管理各种数据,人们发明了一种叫文件系统的东东,可以方便的通过文件的存储路径和文件名来访问各个文件的内容,计算机程序也可以直接通过文件系统来操作各种文件,比人工管理爽多了。随着文件中存储的内容越来越多,在文件中修改和查找某些数据已经变得非常困难了,所以人们发明了一种专门的

很久很久以前,人们把数据存在动物骨头上,后来存到竹片上,再后来存到纸上,直到近代发明了磁带留声机啥的,不过这些都是依赖人工进行整理和保存的,特点就是效率低下、错误率高、查找不方便等等等等。。。

文件系统阶段

后来人们发明了计算机,为了管理各种数据,人们发明了一种叫文件系统的东东,可以方便的通过文件的存储路径和文件名来访问各个文件的内容,计算机程序也可以直接通过文件系统来操作各种文件,比人工管理爽多了。

数据库阶段

随着文件中存储的内容越来越多,在文件中修改和查找某些数据已经变得非常困难了,所以人们发明了一种专门的 软件 来管理存储的数据, 这些数据依照一定格式保存,通过这个软件可以方便的对数据进行增删改查操作,从而极大的提升了数据管理效率 ,人们就把这个管理数据的软件叫做 数据库管理系统

MySQL简介

关系型数据库管理系统

我们平时经常会用表格来存放信息,比如下边的两个表格就存放着学生的一些基本信息和他们的各种科目的考试成绩:

学生基本信息表
学号 姓名 性别 身份证号 学院 专业 入学时间
20180101 杜子腾 158177199901044792 计算机学院 计算机科学与工程 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 论萨达姆的战争准备 98
20180103 母猪的产后护理 59
20180103 论萨达姆的战争准备 61
20180104 母猪的产后护理 55
20180104 论萨达姆的战争准备 46

如果我们想查找 史珍香 的《母猪的产后护理》科目的考试成绩怎么办呢?我们可以先通过 学生基本信息表 查找到她的学号,然后再通过她的学号到 学生成绩表 里找到该学号对应的《母猪的产后护理》科目的成绩。

表格也简称为表。有一种类型的数据库管理系统就是通过表格来存放数据的,而且不同的表可以通过某种关系联系起来(例子中成绩表通过学号和基本信息表联系起来),我们把这种数据库管理系统也称为 关系型数据库管理系统 ,我们要唠叨的 MySQL 就是一种 关系型数据库管理系统

MySQL的优势

这种所谓的 关系型数据库管理系统 有好多,比如甲骨文的 Oracle ,IBM的 DB2 ,微软的 AccessSQL Server ,开源的 PostgreSQLMySQL 。。。我们是来唠叨 MySQL 的,所以瞅瞅它有啥牛逼的地方:

  1. 免费

    就是不要钱,有很多数据库管理系统是要花真金白银买的,不过 MySQL 随便在网上下载就好喽~

  2. 开源

    MySQL 的代码都是公开的,网上随便就能下载下来,方便我们了解它的实现原理。又因为是开源的,所以一旦有bug就会被好多人发现,设计 MySQL 的大叔们就会立即把bug修复,所以是非常稳定的。

  3. 跨平台

    MySQL 可以运行在各种主流的操作系统上,各种类Unix系统、Windows系统啥的~

  4. 很牛逼

    它可以快速、安全、有效地处理大量数据,不牛逼就没人用啦~

客户端/服务器架构

以我们平时使用的微信为例,它其实是由两部分组成的,一部分是客户端,一部分是服务器。客户端可能有很多种形式,比如手机APP,电脑软件或者是网页版微信,每个客户端都有一个唯一的用户名,就是你的微信号,另一方面,腾讯公司在他们的机房里运行着一个服务器软件,我们平时操作微信其实都是用客户端来和这个服务器来打交道。比如狗哥用微信给猫爷发了一条消息的过程其实是这样的:

  1. 消息被客户端包装了一下,添加了发送者和接受者信息,然后从狗哥的微信客户端传送给微信服务器;
  2. 微信服务器从消息里获取到它的发送者和接收者,根据消息的接受者信息把这条消息送达到猫爷的微信客户端,猫爷的微信客户端里就显示出狗哥给他发了一条消息。

MySQL 的使用过程跟这个是一样的, 它有一个服务器程序直接和我们存储的数据打交道,然后可以有好多客户端程序连接到这个服务器程序,发送增删改查的请求,然后服务器就响应这些请求,从而操作它维护的数据 。和微信一样, MySQL 的每个客户端都需要提供用户名密码才能登录,登录之后才能给服务器发请求来操作某些数据。另外, 客户端程序和服务器程序可以安装到同一台机器上,也可以安装到不同的机器上 。不过从我们学习的角度来说,也没必要弄两个电脑,一个当服务器一个当客户端了。所以我们一般只需要在自己的电脑上把服务器程序和客户端程序都安装上,先开启服务器程序,再打开客户端程序和服务器程序进行交互就好了~

小贴士: `MySQL`的大部分安装包都包含了服务器程序和客户端程序(在 Linux 下使用RPM包时会有单独的服务器RPM包和客户端RPM包,需要分别安装),但是安装包中自带的客户端程序是在黑框框里使用的,如果你习惯了图形用户界面,可以自己去下载个 `MySQL Workbench` 或者 `Navicat`,这两个客户端软件可以让你在图形界面上点点点~ 顺便说一句,作为 程序员 使用图形界面是不是有点儿low啊~ 也不是单纯为了装逼,使用黑框框的话很多时候会比图形界面更快,更简单~ 所以该用哪个客户端软件你心里应该有点儿*数吧!

安装MySQL

在安装过程中一定要 记住安装路径和用户名密码啊

我的机器上 MySQL 的安装路径是: /usr/local/Cellar/mysql/5.7.21/

用户名是: root

密码是: 123456

Windows下安装

略~

Mac下安装

略~

Linux下安装

略~

MySQL命令

MySQL中的可执行文件

通常在 MySQL 安装目录下有个 bin 目录,看一下在我的机器中 bin 目录下的部分文件:

.
├── mysql
├── mysql.server -> ../support-files/mysql.server
├── mysqladmin
├── mysqlbinlog
├── mysqlcheck
├── mysqld
├── mysqld_multi
├── mysqld_safe
├── mysqldump
├── mysqlimport
├── mysqlpump
... (省略其他文件)

0 directories, 40 files
复制代码

这些都是 可执行文件 ,也就是说只要我们在黑框框里输入这些文件的路径(绝对路径、相对路径都可以)就可以执行它们。其实这些文件就相当于图形界面中的软件图标,鼠标双击就可以运行,只不过在黑框框里不能用鼠标,必须把这些文件的路径输入到黑框框里才能执行它们。比方我想运行 mysql 这个文件,那就可以在黑框框里输入:

/usr/local/Cellar/mysql/5.7.21/bin/mysql
复制代码

或者把当前目录切换到 /usr/local/Cellar/mysql/5.7.21/bin/ ,使用相对路径也可以运行,就像这样:

cd /usr/local/Cellar/mysql/5.7.21/bin/
mysql
复制代码

如果你觉得输入绝对路径或者切换当前目录太麻烦,可以考虑把这些可执行文件添加个快捷方式。Windows里可以把 bin 目录的路径添加到系统变量 PATH 中,Linux或者Mac用户就不用管了,在安装过程中已经默认把这些命令设置为快捷方式了,你只需要直接输入命令名称就好了。

使用Windows的小伙伴赶紧把`bin`目录的路径添加到系统变量`PATH`中,我们下边的操作都默认大家有了这些可执行文件的快捷方式,就不再使用绝对路径或者切换目录的方式来执行这些文件了。
复制代码

服务器相关的可执行文件

类UNIX系统

我们重点关注一下 mysql.server 这个可执行文件,这个文件可以帮助我们启动和关闭服务器。这个可执行文件后边可以携带参数,启动和关闭的参数如下:

  1. 启动服务器携带的参数:

    mysql.server start
    复制代码
  2. 关闭服务器携带的参数:

    mysql.server stop
    复制代码

我们开启一下服务器,在黑框框里输入 mysql.server start ,看到输出结果:

Starting MySQL
. SUCCESS!
复制代码

这就说明启动成功了~

Windows系统

一般把 MySQL 注册为Windows的服务,然后调用 net start MySQLnet stop MySQL 来启动和关闭服务器。

客户端相关的可执行文件

在服务器程序启动之后,就可以使用 mysql 这个可执行文件来启动客户端并连接该服务器了,这个可执行文件需要一些参数,格式如下:

mysql -h主机名  -u用户名 -p密码
复制代码

各个参数的意义如下:

参数名 含义
-h 表示启动服务器程序的计算机的域名或者IP地址,如果服务器程序就运行在本机的话,可以省略这个参数,也可以填 localhost 或者 127.0.0.1 。也可以写作 --host=主机 的形式。
-u 表示用户名,如果你是刚刚使用 MySQL ,则用户名是 root 。也可以写作 --user=用户名 的形式。
-p 表示密码,如果你在安装过程中设置了密码,那就用你设置的密码,否则密码为空。也可以写作 --password=密码 的形式。

比如我这样执行下边这个可执行文件(用户名密码按你的实际情况填写),就可以启动 MySQL 客户端,并且连接到服务器了。

mysql -hlocahhost -uroot -p123456
复制代码

也可以这么写:

mysql --host=localhost --user=root --password=123456
复制代码

我们看一下连接成功后的界面:

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.21 Homebrew

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 
复制代码

最后一行的 mysql> 是一个客户端的提示符,之后客户端发送给服务器的命令都需要写在这个提示符后边。

如果我们想断开客户端与服务器的连接并且关闭客户端的话,可以在 mysql> 提示符后输入下边任意一个命令:

quit
exit
\q

比如我们输入 quit 试试:

mysql> quit
Bye
复制代码

输出了 Bye 说明客户端程序已经关掉了。注意注意注意,这是关闭客户端程序的方式,不是关闭服务器程序的方式,怎么关闭服务器上一节里唠叨过了。

如果你愿意,你可以多打开几个黑框框,每个黑框框都使用 mysql -hlocahhost -uroot -p123456 来运行多个客户端程序,每个客户端程序都是互不影响的。如果你有多个电脑,也可以试试把它们用局域网连起来,在一个电脑上启动 MySQL 服务器程序,在另一个电脑上执行 mysql 命令时使用 IP 地址作为主机名来连接到服务器。

连接注意事项

  1. 最好不要在一行命令中输入密码。

    我们直接在黑框框里把密码敲出去被别人看到咋办,这和你当别人的面输入银行卡密码没啥区别,所以我们在执行 mysql 连接服务器的时候可以不显式的写出密码,就像这样:

    mysql -hlocahhost -uroot -p
    复制代码

    点击回车之后才会提示你输入密码:

    Enter password:
    复制代码

    不过这回你输入的密码不会被显示出来,心怀不轨的人也就看不到了,输入完成点击回车就成功连接到了服务器。

  2. 如果你非要在显式的把密码熟出来,那密码值和 -p 之间不能有空白字符,其他参数名之间可以有空白字符,就像这样:

    mysql -h localhost -u root -p123456
    复制代码

    如果加上了空白字符就是错误的,比如这样:

    mysql -h localhost -u root -p 123456
    复制代码
  3. mysql 的各个参数的摆放顺序没有硬性规定,也就是说你也可以这么写:

    mysql -p  -u root -h localhost
    复制代码
  4. 如果你的服务器和客户端安装在同一台机器上, -h 参数可以省略,就像这样:

    mysql -u root -p  
    复制代码
  5. 如果你使用的是类Unix系统,并且省略 -u 参数后,会把你登陆操作系统的用户名当作 MySQL 的用户名去处理。

    比方说我用登录操作系统的用户名是 wangqingfeng ,那么在我的机器上下边这两条命令是等价的:

    mysql -u wangqingfeng -p
    复制代码
    mysql -p
    复制代码

    对于Windows系统来说,默认的用户名是 ODBC ,你可以通过设置环境变量 USER 来添加一个默认用户名。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

我++

我++

威廉·J·米切尔 / 刘小虎等 / 中国建筑工业出版社 / 2006-6 / 50.00元

随着《我++——电子自我和互联城市》(Me++:The Cyborg Self And The Networked City)的出版,《比特之城》(City Of Bits)和《E-托邦》(E-topia)的作者完成了一套检验信息技术在日常生活中之衍生的非正式三部曲。威廉·J·米切尔描述了自马可尼以后的百年间无线技术的发展变化:网络的不断扩大,发送和接受装置的不断缩小。正如他所说,这就像“大人国重......一起来看看 《我++》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

URL 编码/解码
URL 编码/解码

URL 编码/解码