目录
- 1 数据库
- 1.1 前言
- 1.2 数据库分类
- 1.2.1 关系型数据库(RDBMS)
- 1.2.2 非关系型数据库
- 1.2.3 关系型数据库与非关系型数据库的区别
- 2 链接数据库
- 3 SQL分类
- 4 存储引擎
1 数据库
1.1 前言
- 到底什么是MySQL?
大家都知道MySQL叫做数据库。那么什么是数据库呢?
数据库是存储数据的一种服务器。 - 安装主要分为:
MySQL客户端的安装:
安装好的MySQL的客户端就是下图所示的内容:
客户端client的体现方式可以是下面三种的任一种:
(1)MySQL自带的
(2)cmd: 一定要配置环境变量,命令行语句为:mysql -u root -p密码
(3)借助工具,例如:Navicat
MySQL服务器的安装:
安装好的MySQL的服务器就是下图所示的内容:
编码问题:
解决MySQL不能添加中文数据(会乱码)的步骤如下图所示:
- 数据存储方式的发展史:
(1) 人工管理阶段:数据主要存储在纸带、磁带等介质上,或者直接通过手工记录。
(2) 文件系统阶段:数据没有进行结构化处理,查询起来还不是很方便。
(3) 数据库系统阶段:建立数据库,在数据库中建立表。表是数据库存储数据的基本单元。关系数据库中的表都是二维表。
对于数据库也可借助下图进行理解:
- 数据库 和 数据结构有什么区别?
数据结构是一门学科;
数据库是一个软件,数据库底层也用到了数据结构,且很依赖于这个数据结构,后期回学习高阶数据结构。例如:B树、B+Tree。 - 数据库的优点:
存储数据用文件就可以了,为什么还要弄个数据库?
文件保存数据有以下几个缺点:
(1)文件的安全性问题
(2)文件不利于数据查询和管理
(3)文件不利于存储海量数据
(4)文件在程序中控制不方便
数据库存储介质: 磁盘、内存。
为了解决上述问题,专家们设计出更加利于管理数据的软件——数据库,它能更有效的管理数据。数据库可以提供远程服务,即通过远程连接来使用数据库,因此也称为数据库服务器。即文件存储的缺点就是数据库的优点。
1.2 数据库分类
数据库大体可以分为:关系型数据库 和 非关系型数据库。
1.2.1 关系型数据库(RDBMS)
关系型数据库是指采用了关系模型来组织数据的数据库。 简单来说,关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。基于标准的SQL,只是内部一些实现有区别。
常用的关系型数据库如:
- Oracle:
甲骨文产品,适合大型项目,适用于做复杂的业务逻辑,如ERP、OA等企业信息系统。收费。 - MySQL:
属于甲骨文,不适合做复杂的业务。开源免费。 - SQL Server:
微软的产品,安装部署在windows server上,适用于中大型项目。收费。
1.2.2 非关系型数据库
不规定基于SQL实现。现在更多是指NoSQL数据库,如:
- 基于键值对(Key-Value):如 memcached、redis。
- 基于文档型:如 mongodb。
- 基于列族:如 hbase。
- 基于图型:如 neo4j。
1.2.3 关系型数据库与非关系型数据库的区别
关系型数据库 | 非关系型数据库 | |
---|---|---|
使用SQL | 是 | 不强制要求,一般不基于SQL实现 |
事务支持 | 支持 | 不支持 |
复杂操作 | 支持 | 不支持 |
海量读写操作 | 效率低 | 效率高 |
基本结构 | 基于表和列,结构固定 | 灵活性比较高 |
使用场景 | 业务方面的OLTP系统 | 用于数据的缓存、或基于统计分析的OLAP系统 |
注: OLTP(On-Line Transaction Processing)是指联机事务处理,OLAP(On-Line Analytical Processing)是指联机分析处理。
2 链接数据库
MySQL默认只允许在服务器本机 使用 root 用户登录,要开启 root 用户的远程登录,在MySQL服务器本机执行:
mysql -u root -p密码
要求输入密码,没有设置密码则直接回车。进入MySQL命令行以后,可以看到 mysql>,具体如下图所示:
注意:
- 如果遇到 :‘mysql‘ 不是内部或外部命令,也不是可运行的程序或批处理文件 的问题,则可参考文章https://blog.csdn.net/lexiaowu/article/details/129182499进行解决。
- 如果不知道mysql的安装目录,需要自己进行查看的话,则可参考文章https://blog.csdn.net/blbyu/article/details/128696173进行查看。
其他常用命令:
- 使用mysql数据库
use mysql;- 更新用户表的root账户,设置为任意ip都可以访问,密码修改为123456
update user set host=“%”,authentication_string=password(‘123456’) where
user=“root”;- 刷新权限
flush privileges;- 退出
quit;
3 SQL分类
SQL语言也是一种编程语言。SQL是用来操作数据库的数据的。
- DDL
DDL数据定义语言,用来维护存储数据的结构。
代表指令: create, drop, alter
刚工作的时候我们一般不会用到,因为它一般用在项目开始的时候。 - DML
DML数据操纵语言,用来对数据进行操作。
代表指令: insert,delete,update
但DML中又单独分了一个DQL,数据查询语言,代表指令: select。
在工作中使用频率是最高的。 - DCL
DCL数据控制语言,主要负责权限管理和事务。
代表指令: grant,revoke,commit
工作中主要针对运维人员,对于开发人员来说使用频率也不高。
以上SQL我们主要会在后面了解DDL和DML的操作。
4 存储引擎
存储引擎是:数据库管理系统如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。
在mysql中如何查看它的存储引擎,需要使用命令:
show engines;
查看结果如下图所示:
注:
- Transactions:事务
- 一些mysql中常用的引擎:InnoDB、MyISAM。
- Comment:注释。