数据库内容复习01-概述

Feb 26, 2019 00:00 · 1375 words · 3 minute read 数据库 SQL DB

一边读廖雪峰的文章一边复习数据库方面的内容, 以下为笔记内容, 建议有时间的情况下阅读原文

主流数据库

  • 商用数据库: 例如:Oracle,SQL Server,DB2等;
  • 开源数据库: 例如:MySQL,PostgreSQL等;
  • 桌面数据库: 以微软Access为代表,适合桌面应用程序使用;
  • 嵌入式数据库: 以Sqlite为代表,适合手机应用和桌面程序。

常见数据类型

名称 类型 说明
INT 类型 4字节整数类型,范围约+/-21亿
BIGINT 长整型 8字节整数类型,范围约+/-922亿亿
REAL 浮点型 4字节浮点数,范围约+/-1038
DOUBLE 浮点型 8字节浮点数,范围约+/-10308
DECIMAL(M,N) 高精度小数 由用户指定精度的小数,例如,DECIMAL(20,10)表示一共20位,其中小数10位,通常用于财务计算
CHAR(N) 定长字符串 存储指定长度的字符串,例如,CHAR(100)总是存储100个字符的字符串
VARCHAR(N) 变长字符串 存储可变长度的字符串,例如,VARCHAR(100)可以存储0~100个字符的字符串
BOOLEAN 布尔类型 存储True或者False
DATE 日期类型 存储日期,例如,2018-06-22
TIME 时间类型 存储时间,例如,12:20:59
DATETIME 日期和时间类型 存储日期+时间,例如,2018-06-22 12:20:59

上面的表中列举了最常用的数据类型。很多数据类型还有别名,例如,REAL又可以写成FLOAT(24)。还有一些不常用的数据类型,例如,TINYINT(范围在0~255)。各数据库厂商还会支持特定的数据类型,例如JSON。
选择数据类型的时候,要根据业务规则选择合适的类型。通常来说,BIGINT能满足整数存储的需求,VARCHAR(N)能满足字符串存储的需求,这两种类型是使用最广泛的。

SQL(Structured Query Language)

SQL: 是结构化查询语言的缩写, 用来访问和操作数据库系统, 虽然SQL已经被ANSI组织定义为标准, 但不同的数据库对标准支持的并不一致, 大部分数据库对SQL进行了扩展, 也就是说如果只使用标准的SQL, 理论上所有的数据库都可以支持, 但如果使用了某种数据库的扩展, 在其他数据库上就不能执行, 如: Oracle把自己的扩展的SQL称为PL/SQL, Microsoft 把自己的扩展的SQL称为T-SQL

现实情况是,如果我们只使用标准SQL的核心功能,那么所有数据库通常都可以执行。不常用的SQL功能,不同的数据库支持的程度都不一样。而各个数据库支持的各自扩展的功能,通常我们把它们称之为“方言”。

总的来说, SQL语言定义了如下几种操作数据库的能力:

DDL: Data Definition Language: 允许用户定义数据, 也就是创建表, 删除表, 修改表结构这些操作.

DML: Data Manipulation Language: 允许用户添加, 删除, 更新数据.

DQL: Data Query Language: 允许用户查询数据.

SQL语言关键字不区分大小写!!! 但是针对不同的数据库, 对于表名和列名, 有的区分大小写, 有的不区分

MySQl 与它的衍生版

2009年 MySQL被Oracle公司收购, 从此便出现很多基于MySQL的衍生版.

  • MySQL官方版本:

    • Community Edition:社区开源版本,免费;
    • Standard Edition:标准版;
    • Enterprise Edition:企业版;
    • Cluster Carrier Grade Edition:集群版。
  • MariaDB: 由MySQL的创始人创建的一个开源分支版本, 使用XtraDB引擎;

  • Aurora: 由Amazon改进的一个MySQL版本,专门提供给在AWS托管MySQL用户,号称5倍的性能提升。

  • PolarDB: 由Alibaba改进的一个MySQL版本,专门提供给在阿里云托管的MySQL用户,号称6倍的性能提升.