一.数据库的出现与发展
🧙技术的出现往往是为了解决某些问题,数据库系统的出现也是这样,中国有句俗语"好记性不如烂笔头"这其实在一定程度上面反映了,人们对信息记录的需求,在远古时代,人们就懂得了这个道理,那个时候人们使用龟甲和兽骨记录信息,这些用于记录的文字就是我们所说的甲骨文,随着社会和技术的发展,人们发明了纸张,开始在纸张上面通过较现代的文字来记录信息,到现代科学家们发明了计算机,并且在计算机中建立了文件系统,可以通过文件名和日期等搜索有组织的文件,来实现对大数据量的信息进行管理,但是渐渐的发现文件管理的方式并不能满足他们的需求,因为文件系统有很多缺陷,数据的组织和查询等复杂操作很难实现~因此就有了数据库。
二.为什么需要数据库
🦊文件系统的缺点,为什么不使用文件系统来管理软件中的数据?
- 很难以合适的方式组织数据(多表之间的关系合理组织)。
- 并且对数据进行增删改查的复杂操作(虽然一些简单的确实可以),并且保证操作的原子性。
- 很难进行数据共享,比如一个数据库需要对多个程序服务,如何进行很好的数据共享。
- 需要考虑如何对数据库进行高效的备份,迁移,恢复等操作。
👽任何的软件系统都需要存储大量的数据,这些数据通常是非常复杂和庞大的。
- 比如用户的信息包括年龄,性别,地址,身份证号出生日期等等。
- 比如商品信息包含商品名称,描述,价格,分类标签,商品图片等。
- 比如歌曲信息包括歌曲的名称,歌手,专辑,歌曲时长,歌曲信息,封面图片等等。
🥴数据库通俗来讲就是一个用来存储数据的仓库,本质上也是一个软件,一个程序。
三.数据库都有哪些?
🔔我们通常会把数据库分为两类:关系型数据库和非关系型数据库。
😭关系型数据库:MySQL,Oracle,DB2,SQL Server,Postage SQL等。
- 关系型数据库通常我们会创建很多个二维数据表;
- 数据表之间相互关联起来,形成一对一,一对多,多对多的关系。
- 之后可以利用SQL在多张表中查询我们所需的数据。
😊非关系型数据库:MongoDB,Redis,Memcached,HBase等;
- 非关系型数据库的英文其实是Not only SQL,也简称为NoSQL;
- 相对而言非关系型数据库简单一点,存储数据也更加自由。
- NoSQL的是基于Key-Value的对应关系,并且查询过程中不需要经过SQL解析。
🎯如何选择他们哪?具体的选择会根据不同的项目进行综合的分析。
- 目前公司后端开发(Node,Java,Go)还是以关系型数据库为主的。
- 比较常用到关系型数据库的场景是在爬取大量数据进行存储的时候,会比较常见。
四.认识MySQL
👽MySQL原本是一个开源的数据库,原开发者为瑞典的MySQLAB公司,在2008年被Sun公司收购,在2009年,Sun被Oracle收购,所以目前MySQL归属于Oracle。
🎪MySQL是一个关系型数据库,其实本质上就是一个软件,一个程序。
- 这个程序管理着多个数据库;
- 每个数据库可以有多张表;
- 每张表可以有多条数据;
😶🌫️MySQL的数据组织方式如下:
👽MySQL的下载与安装:MySQL安装教程
🦊客户端-服务器架构:MySQL的架构基本方式是客户端-服务器的架构,客户就相当于我们使用的微信,服务器就相当于微信的服务器端,MySQL的客户端包含很多种,包括MySQL交互终端,Navicat都是客户端。
五.终端操作MySQL的方式
🥴在cmd中直接输入MySQL然后点击MySQL提供的本地终端,输入密码连接。
然后我们就可以其他命令show databases;来查看MySQL中的的数据库有哪些。
🤡直接在cmd终端中输入命令的同时输入用户名和密码来进行连接,比较方便快捷
🔔MySQL中的默认数据库,我们从上面使用show databases;中展示了许多数据库,有些数据库并不是我们自己创建的,那么这些数据库是做什么用的哪?
- information_schema:信息数据库,其中包括MySQL在维护的其他数据库,表,列,访问权限等信息。
- performance_schema:性能数据库,记录着MySQL Server数据库引擎在运行过程中的一些性能消耗相关的信息。
- mysql:用于存储数据库管理者的用户信息,权限信息等一些日志信息。
- sys:相当于一个简易版的performace_schema,将性能数据库中的数据汇总成更容易理解的形式。
🚨如果你平时开发中如果感觉数据库的查询比较慢的时候,可以通过性能数据库的信息来定位问题。
六.终端创建数据库表
😭在终端创建数据库,首先连接MySQL数据库,然后在交互终端中输入如下信息,数据库名为music_db
sql
create database music_db;
🎯创建完毕之后需要使用这个数据库
sql
use music_db;
😊当我们使用了这个数据库后就可以在这个数据库中进行相应的操作了,我们来建张表。
sql
create table t_singer(
name varchar(10),
age int
);
🎪我们如何进行查看这个表哪?使用如下命令就可以查看刚才建的表了。
sql
show tables;
七.GUI工具介绍
🥴我们会发现在终端操作数据库有很多不方便的地方:语句写出来没有高亮,并且不会有任何的提示, 复杂的语句分成多行,格式看起来并不美观,很容易出现错误,终端中查看所有的数据库或者表非常的不直观和不方便;
😶🌫️所以在开发中,我们可以借助于一些GUI工具来帮助我们连接上数据库,之后进行操作。
👽常见的MySQL的GUI工具有很多,这里推荐几款。
- Navicat:个人最喜欢的一款工具,目前收费。
- SQLYog:一款免费的SQL工具。
- TablePlus:常用的功能都有,但是会有一些限制,比如只能开两个标签页。
🤡推荐使用Navicat
,文章中也会使用它,因为比较好用界面优美,功能强大,希望大家支持Navicat正版,后续还可以试试DBeaver也是很好用的工具。并且开源免费。Navicat安装教程
八.Navicat的基本使用
🦊首先我们打开Navicat然后使用Navicat连接本地MySQL数据库,进行相关数据库内容的操作。
🧙然后输入我们的个人信息,连接名自己定义就可以,其他东西不要乱动,然后测试连接,连接成功后就是如下:
😊我们以后写SQL基本不会直接在黑框终端中书写,因为容易出错,且难以查看,我们会直接在Navicat中书写。
我们可以在如上图的内容中建议查询的内容,可以在里面编写SQL
语句,用来创建表,执行SQL等等。
其实就是我们在黑框中输入的内容,下载可以直接在这里写就可以了,其实和黑框终端中一样
九.阶段自我测试
🧙基本练习内容,分别通过终端和Navicat分别练习一遍,达到不看文章中的代码熟练写出来,并且保证正确。
- 通过终端创建数据库,命名为
TestDB
; - 然后使用进入这个数据库;
- 在当前数据库中创建一个表,表名为
testTable
; - 查看这个表中的内容。
- 查看使用了哪个数据库。