MySQL的认识和基础概念

1️⃣什么是数据库

数据库管理系统(DataBase Management System),简称数据库(DBMS)。

但是,如果是存储数据的话,使用硬盘和文件存储数据不好吗?

用文件保存数据有以下几个缺点:

  • 文件的安全性问题
  • 文件不利于数据查询和管理
  • 文件不利于存储海量数据
  • 文件在程序中控制不方便

内存中的数据:断电后不保留
硬盘中的数据:可以长时间保存

使用本地硬盘存储数据:

  • 需求需要:开发中使用软件、程序时,需要依靠数据的支持,所以就要操作存储在硬盘中的数据;
  • 问题出现:硬盘中的数据管理要比内存中的数据管理复杂;
  • 导致结果:让程序员完全只有地管理硬盘中的数据变得困难;
  • 所以:数据库管理软件就诞生了,它能更有效的管理数据。数据库可以提供远程服务,即通过远程连接来使用数据库,因此也称为数据库服务器。

2️⃣数据库的分类

SQL:Structure Query Language.
结构化查询语言,进行结构和数据的管理。

数据库大体可以分为 关系型数据库非关系型数据库

  • 关系型数据库(RDBMS)
    是指采用了关系模型来组织数据的数据库。 简单来说,关系模型指的就是二维表格模型,而一个
    关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。
    基于标准的SQL,只是内部一些实现有区别。常用的关系型数据库如:
  1. Oracle:甲骨文产品,适合大型项目,适用于做复杂的业务逻辑,如ERP、OA等企业信息系
    统。收费。
  2. MySQL:属于甲骨文,不适合做复杂的业务。开源免费。
  3. SQL Server:微软的产品,安装部署在windows server上,适用于中大型项目。收费。
  • 非关系型数据库
    (了解)不规定基于SQL实现。现在更多是指NoSQL数据库,如:
  1. 基于键值对(Key-Value):如 memcached、redis
  2. 基于文档型:如 mongodb
  3. 基于列族:如 hbase
  4. 基于图型:如 neo4j

关系型数据库非关系型数据库的区别:

关系型数据库非关系型数据库
使用SQL不强制要求,一般不基于SQL实现
事务支持支持不支持
复杂操作支持不支持
海量读写操作效率低效率高
基本结构基于表和列,结构固定灵活性比较高
使用场景业务方面的OLTP系统用于数据的缓存、或基于统计分析的OLAP系统

注:
OLTP(On-Line Transaction Processing)是指联机事务处理。短期的对数据的一系列动作(增删改查等等),要求对数据的响应快。对不同的要求技术方案是不一样的。
OLAP(On-Line AnalyticalProcessing)是指联机分析处理。一次涉及到很多数据,对数据往往只查询,很少做修改。要求实现的功能全,不要求响应快。对不同的要求技术方案也是不相同的。

3️⃣数据库的基本结构

这里使用的5.7的版本,不同的版本可以有差异。
数据库 DataBase 和 方案 Schema 都表示相同的概念。

我们接下来剖析一个数据库的结构:

先看一张学生表,保存了学生的基本信息:

  • 其中每一列代表一个独有的属性;每一行代表一个独立的数据,第一行代表表的结构,不算数据。
  • 通过行和列组成一张表,表示一类数据。
  • 多张表构建出有关联的数据。
    例如班级表,存储了班级号对应的班级名称:
    两张表把学生的信息和对应班级联系了起来。
  • 数据库即管理多张有关系的表。
  • 最后多个数据库存在一个MySQL服务器上。

大概的结构:

4️⃣理解计算机和数据库的三个层面

计算机的三个层面:

在数据库上三个层面的体现:

当前版本MySQL的结构和存储方式:

5️⃣关于SQL

SQL的分类:

  1. DDL(Data Defination Language)数据定义语言,用来维护存储数据的结构。
    比如新建或删除一个数据库,新建或删除一张表,修改表结构等等。
    代表指令: create, drop, alter
  2. DML(Data Manipulation Language)数据操纵语言,用来对数据进行增删改查等操作。
    比如添加或删除一行数据,查询某些符合条件的数据,修改某行中的数据等。
    代表指令: insertdeleteupdate
    DML中又单独分了一个DQL(Data Query Language),数据查询语言,代表指令: select
  3. DCL(Data Control Language)数据控制语言,主要负责权限管理和事务。
    比如添加一个DBMS用户、修改DBMS密码,重启服务等等
    代表指令: grantrevokecommit

SQL和Java语言的不同:

SQL是一种声明式语言,结果论的语言。
Java是一种过程式语言。

例如查找学生表中叫小A的同学

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bruin_du

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值