MySQL从入门到删库(2) 了解数据库基本单元、SQL语句的分类、以及关系型数据库(RDBMS)和非关系型数据库(非RDBMS)的区别

一、数据库基本单元

1、数据库当中最基本的单元是表:table

1)什么是表(table)?为什么用表来存储数据呢?

举个例子:你平时放学习资料的时候,应该不是把它随便放在某个地方吧,而且在放学习资料之前先创建一个文件夹然后把文件夹命名在把学习资料放进去,以备以后复习。

你创建的文件夹可以当做是一个表,你的学习资料就是表里面的字段啊、数据类型啊、约束啊、

姓名 性别 年龄(列:字段) --------------------------- 张三 男 20 ------->行(记录) 李四 女 21 ------->行(记录) 王五 男 22 ------->行(记录)

我们看一下命令行和软件显示的表吧!

查询表的指令:select * from 表名

我们就会发现一个现象数据库当中是以表格的形式表示数据的,因为表比较直观。

2)表名

数据库中的每个表都有一个名字,用来标识自己。此名字是唯一的, 这表示数据库中没有其他表具有相同的名字。

唯一性:

表名的唯一性取决于多个因素,如数据库名和表名等的 结合。这表示,虽然在相同数据库中不能两次使用相同的表名, 但在不同的数据库中却可以使用相同的表名。

2、表中的元素

  • E-R(entity-relationship,实体-联系)模型中有三个主要概念是:实体集属性联系集

  • 一个实体集(class)对应于数据库中的一个表(table),一个实体(instance)则对应于数据库表中的一行(row),也称为一条记录(record)。一个属性(attribute)对应于数据库表中的一列(column),也称为一个字段(field)

ORM思想 (Object Relational Mapping)体现: 数据库中的一个表 <---> Java或Python中的一个类 表中的一条数据 <---> 类中的一个对象(或实体) 表中的一个列 <----> 类中的一个字段、属性(field)

二、SQL语句的分类

SQL语句有很多,最好进行分门别类,这样更容易记忆。 分为:

DQL: 数据查询语言(凡是带有select关键字的都是查询语句) select...

        DML:
            数据操作语言(凡是对表当中的数据进行增删改的都是DML)
            insert delete update
            insert 增
            delete 删
            update 改
​
            这个主要是操作表中的数据data。
​
        DDL:
            数据定义语言
            凡是带有create、drop、alter的都是DDL。
            DDL主要操作的是表的结构。不是表中的数据。
            create:新建,等同于增
            drop:删除
            alter:修改
            这个增删改和DML不同,这个主要是对表结构进行操作。
​
        TCL:
            不是王牌电视。
            是事务控制语言
            包括:
                事务提交:commit;
                事务回滚:rollback;
​
        DCL:
            是数据控制语言。
            例如:授权grant、撤销权限revoke....

三、RDBMS 与 非RDBMS

从排名中我们能看出来,关系型数据库绝对是 DBMS 的主流,其中使用最多的 DBMS 分别是 Oracle、MySQL 和 SQL Server。这些都是关系型数据库(RDBMS)。

1、 关系型数据库(RDBMS)

  • 这种类型的数据库是最古老的数据库类型,关系型数据库模型是把复杂的数据结构归结为简单的二元关系(即二维表格形式)。

  • 关系型数据库以行(row)列(column)的形式存储数据,以便于用户理解。这一系列的行和列被称为表(table),一组表组成了一个库(database)。

  • 表与表之间的数据记录有关系(relationship)。现实世界中的各种实体以及实体之间的各种联系均用关系模型来表示。关系型数据库,就是建立在关系模型基础上的数据库。

  • SQL 就是关系型数据库的查询语言。

    优势

  • 复杂查询 可以用SQL语句方便的在一个表以及多个表之间做非常复杂的数据查询。

  • 事务支持 使得对于安全性能很高的数据访问要求得以实现。

2 、非关系型数据库(非RDBMS)

1 )介绍

非关系型数据库,可看成传统关系型数据库的功能阉割版本,基于键值对存储数据,不需要经过SQL层的解析,性能非常高。同时,通过减少不常用的功能,进一步提高性能。

目前基本上大部分主流的非关系型数据库都是免费的。

2 )有哪些非关系型数据库

相比于 SQL,NoSQL 泛指非关系型数据库,包括了榜单上的键值型数据库、文档型数据库、搜索引擎和列存储等,除此以外还包括图形数据库。也只有用 NoSQL 一词才能将这些技术囊括进来。

键值型数据库

键值型数据库通过 Key-Value 键值的方式来存储数据,其中 Key 和 Value 可以是简单的对象,也可以是复杂的对象。Key 作为唯一的标识符,优点是查找速度快,在这方面明显优于关系型数据库,缺点是无法像关系型数据库一样使用条件过滤(比如 WHERE),如果你不知道去哪里找数据,就要遍历所有的键,这就会消耗大量的计算。

键值型数据库典型的使用场景是作为内存缓存Redis是最流行的键值型数据库。

 

文档型数据库

此类数据库可存放并获取文档,可以是XML、JSON等格式。在数据库中文档作为处理信息的基本单位,一个文档就相当于一条记录。文档数据库所存放的文档,就相当于键值数据库所存放的“值”。MongoDB 是最流行的文档型数据库。此外,还有CouchDB等。

搜索引擎数据库

虽然关系型数据库采用了索引提升检索效率,但是针对全文索引效率却较低。搜索引擎数据库是应用在搜索引擎领域的数据存储形式,由于搜索引擎会爬取大量的数据,并以特定的格式进行存储,这样在检索的时候才能保证性能最优。核心原理是“倒排索引”。

典型产品:Solr、Elasticsearch、Splunk 等。

列式数据库

列式数据库是相对于行式存储的数据库,Oracle、MySQL、SQL Server 等数据库都是采用的行式存储(Row-based),而列式数据库是将数据按照列存储到数据库中,这样做的好处是可以大量降低系统的 I/O,适合于分布式文件系统,不足在于功能相对有限。典型产品:HBase等。

图形数据库

图形数据库,利用了图这种数据结构存储了实体(对象)之间的关系。图形数据库最典型的例子就是社交网络中人与人的关系,数据模型主要是以节点和边(关系)来实现,特点在于能高效地解决复杂的关系问题。

图形数据库顾名思义,就是一种存储图形关系的数据库。它利用了图这种数据结构存储了实体(对象)之间的关系。关系型数据用于存储明确关系的数据,但对于复杂关系的数据存储却有些力不从心。如社交网络中人物之间的关系,如果用关系型数据库则非常复杂,用图形数据库将非常简单。典型产品:Neo4J、InfoGrid等。

猜你喜欢

转载自blog.csdn.net/OMGcome/article/details/123648017