一.为什么需要数据库
👽任何的软件系统都需要存储大量的数据,这些数据通常是非常复杂和庞大的。
- 比如用户的信息包括年龄,性别,地址,身份证号出生日期等等。
- 比如商品信息包含商品名称,描述,价格,分类标签,商品图片等。
- 比如歌曲信息包括歌曲的名称,歌手,专辑,歌曲时长,歌曲信息,封面图片等等。
🤡那么这些信息不能直接存储在文件中吗?可以,但是文件系统有很多的缺陷:
- 很难以合适的方式组织数据(多表之间的关系合理组织)。
- 并且对数据进行增删改查的复杂操作(虽然一些简单的确实可以),并且保证操作的原子性。
- 很难进行数据共享,比如一个数据库需要对多个程序服务,如何进行很好的数据共享。
- 需要考虑如何对数据库进行高效的备份,迁移,恢复等操作。
🥴数据库通俗来讲就是一个用来存储数据的仓库,本质上也是一个软件,一个程序。
二.数据库都有哪些?
🔔我们通常会把数据库分为两类:关系型数据库和非关系型数据库。
😭关系型数据库: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的方式
🥴在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,因为比较好用,后续还可以试试DBeaver也是很好用的工具。
🔔使用Navicat连接本地MySQL数据库,进行相关数据库内容的操作。
然后输入我们的个人信息,连接名自己定义就可以,其他东西不要乱动,然后测试连接,连接成功后就是如下:
😭准备好以上这些工作之后,我们就可以正式开始MySQL数据库的学习了~