数据库(DB)
定义:数据库是将大量数据保存起来,通过计算机加工而成的可以进行高效访问的数据集合。
数据库管理系统(DBMS)
定义:用来管理数据库的计算机系统称为数据库管理系统。
DB 与 DBMS
人们通常使用数据库代表他们使用的数据库软件,但这是不正确的,确切来说,数据库软件应称为DBMS。
数据库是通过DBMS创建和操作的容器,即你并不直接访问数据库,而借助DBMS替你访问数据库。 我们常说的MySQL数据库准确描述应是MySQL数据库管理系统。
种类
当今互联网中,最常用的数据库类型分为两种
- 关系型数据库(RHD):关系型数据库可以说是现在最广泛的数据库,它采用行列二维表结构来管理数据,同excel一样简单易懂;还使用专门的SQL语言对数据库进行操作。其代表DBMS有:mysql、oracle、sqlserver、postgreSQL等。
- 非关系型数据库:非关系型数据库也被称为NoSQL数据库,本意是“Not Only SQL”。它是对传统关系型数据库的补充,主要突出高性能、高并发。
其他的分类方式
- 层次型数据库(HDB):最古老的数据库之一,把数据通过层次结构(树型结构)的方式表现出来。
- 关系型数据库(RHD):同上。
- 面向对象数据库(OODB):该类数据库把数据及对数据的操作集合起来以对象为单位进行管理。
- XML数据库(XMLDB):XML数据库可以对XML形式的大量数据进行高速处理。
- 键值存储数据库(KVS):类似关联数组或散列(hash),一种单纯用来保存查询所使用的主键(key)和值(value)的组合的数据库。
SQL
SQL是结构化查询语言(Structured Query Language)的缩写。一种特殊目的编程语言,是一种数据库查询和程序设计语言。
国际标准化组织(ISO)为SQL制定了相应的标准,以此为基准的SQL称为标准SQL。然而,完全基于标准SQL的DBMS很少,每一种DBMS都可能存在自己特定的SQL和方言,这就导致了一些SQL语句在MySQL中可以使用,但移植到Oracle可能就发挥不了作用。
本系列介绍的SQL语句是以MySQL为主,针对存在差异的地方博主视情况补充。另外,MySQL各个版本之间也存在一定的差异,比如当下的 MySQL 8 开始支持窗口函数了。
SQL语句及其种类
SQL使用关键字、表名、列名等组合而成的一条语句(SQL语句)来描述操作的内容。
根据对DBMS赋予的指令种类的不同,SQL语句可以分为以下4类
- DDL(Data Definition Language,数据定义语言) 用来创建或者删除存储数据用的数据库以及数据库中的表对象。DDL包含以下等几种指令:
· CREATE:创建数据库和表等对象
· DROP:删除数据库和表等对象
· ALTER:修改数据库和表等对象的结构 - DML(Data Manipulation Language,数据操作语言) 用来查询或者变更表中的记录(核心)。DML包含以下等几种指令:
· SELECT:查询表中的数据
· INSERT:向表中插入新数据
· UPDATE:变更表中数据
· DELETE:删除表中的数据 - DCL(Data Control Language,数据控制语句) 用来确认或者取消对数据库中的数据进行的变更。除此外,还有对DBMS的用户是否有权限操作数据库中的对象(数据库表等)进行设定。DCL包含以下等几种指令:
· COMMIT:确认对数据库中的数据进行的变更
· ROLLBACK:取消对数据库中的数据进行的变更
· GRANT:赋予用户操作权限
· REVOKE:取消用户的操作权限 - TCL(Transaction Control Language,事务控制语句) 用于控制事务处理。TCL包含以下等指令:
· SAVEPOINT:设置保存点
· ROLLBACK:回滚
· SET TRANSACTION
注意:上述的DML其实也可以将SELECT语句部分独立为DQL(Data Query Language,数据查询语句) ,包含 SELECT、FROM、WHERE 等指令。实际使用的SQL语句中有90%属于DML,所以在日常开发中最核心的也是此类SQL。
SQL的基本书写规范
- SQL语句要以分号(;)结尾
- SQL语句不区分大小写,但为了可读性,建议关键字使用大写
- 常数的书写方式,字符串和日期使用单引号(’),数字可直接使用
- 单词之间使用半角空格或换行来分割
命名规范
- 只能使用半角英文字母、数字、下划线作为数据库、表、列的名字
- 名称必须以半角英文字母开头
- 同一数据库中表名不能重复,同一表中列名不能重复