一、什么是数据库
当你用某易听歌或某宝购物时,都在和数据库打交道。你打开二维码做活宣时,也是在用数据库,有数据的地方就有“库”。
数据库(DataBase,DB):以某种有组织的方式存储的数据集合。可以理解为保存有组织的数据的“仓库”。
Oracle:数据库是结构化信息或数据的有序集合,一般以带脑子形式存储在计算机系统中。通常有数据库管理系统(DBMS)来控制。在现实中,数据、DBMS和管理应用一起被称为数据库系统,通常简称数据库。
为了提高数据处理和查询的效率,当经最常见的数据库通常以行和列的形式将数据存储在一系列的表中,支持用户便捷地访问、管理、修改、更新、控制和组织数据。这类数据库也叫关系型数据库,另外大多数数据库都是用结构化查询语言(SQL)来编写和查询数据。
自 20 世纪 60 年代初诞生至今,数据库已经发生了翻天覆地的变化。最初,人们使用分层数据库(树形模型,仅支持一对多关系)和网络数据库(更加灵活,支持多种关系)这样的导航数据库来存储和操作数据。这些早期系统虽然简单,但缺乏灵活性。20 世纪 80 年代,关系数据库开始兴起;20 世纪 90 年代,面向对象的数据库开始成为主流。最近,随着互联网的快速发展,为了更快速地处理非结构化数据,NoSQL 数据库应运而生。现在,云数据库和自治驾驶数据库在数据收集、存储、管理和利用方面正不断取得新的突破。
NoSQL数据库
NoSQL或非关系数据库,支持存储和操作非结构化及半结构化数据(与关系数据库相反,关系数据库定义了应如何组合插入数据库的数据)。随着 Web 应用的日益普及和复杂化,NoSQL 数据库得到了越来越广泛的应用。
这里有两个概念我们要能区分:数据库DB、数据库管理系统DBMS
上面介绍了数据库DB,而数据库管理系统(DatabaseManagementSystem)就是管理数据库的软件,也叫DBMS。数据库通常离不开数据库管理系统DBMS,DBMS充当数据库与其用户或程序之间的接口,提供用户检索、更新和管理信息的组织和优化方式,DBMS还具有数据库性能监视、调优、备份和恢复。例如我们可能听过的Qracle,MySQL,PostgreSQL等。
数据库系统(DatabaseSystem,DBS)也会随之出现,它可以理解为大系统,包含数据库和数据库管理系统,数据库管理人员的整个系统。
举例:我们想象一个图书馆,它就是一个数据库系统,其中数据库管理系统就是书柜和一套分类规则,存放的数据是书。
2.表
表table:某种特定类型数据的结构化清单
表名是唯一的,同一数据库,相同的表名不能重复使用两次。不同数据库不限制。
模式schema:关于数据库和表的布局及特性的信息。
3.列和数据类型
列column:表中的一个字段。
数据类型datatype:所容许的数据的类型。
4.行
表中的数据是按行存储的,每个记录存储在自己的行内。
行row:表中的一个记录。
5.主键
主键primary key:一列(或一组列),能够唯一标识表中的每一行。
应该总是定义主键。
主键满足两个条件:
-
任意两行都不具有相同的主键值。
-
每个行都必须具有一个主键值(主键列不允许NULL值)。
二、什么是SQL
SQL结构化查询语言(Structured Query Language):是一种专门用来于数据库通信的语言。目前几乎所有的关系数据库都支持SQL编程语言来查询、操作和定义数据,进行数据访问控制。SQL是一项来自于ANSI的标准。最初由IBM开发。
SQL相比其他语言,由很少的词构成。是一种读写数据简单有效的方法。
SQL优点
-
大多数关系型DBMS都支持SQL。例如:Qrcale、MySQL、PostgreSQL
-
SQL简单易学,它的语句都是由描述性很强的英语单词组成,而且数目非常少。
-
可以灵活操作数据库
实例
SELECT * FROM students;