SQL 数据库
SQL数据库
关系型数据库用于存储和管理彼此相关的数据对象,即基于关系模型处理关系数据库的过程。这种关系模型是一种以结构化方式管理数据的方法(使用表)。管理这些关系数据库的系统称为关系数据库管理系统(RDBMS)。
有许多流行的RDBMS可供使用。下面列出了一些最受欢迎的RDBMS:
- MySQL
- MS SQL Server
- ORACLE
- MS ACCESS
- PostgreSQL
- SQLite
本教程对上述RDBMS进行了简要概述,这将帮助您比较它们的基本特性。
MySQL
MySQL是一个开源的SQL数据库,由瑞典公司MySQL AB开发。MySQL的发音为“my ess-que-ell”,与SQL发音“sequel”截然不同。
MySQL支持许多不同的平台,包括Microsoft Windows、主要的Linux发行版、UNIX和Mac OS X。
MySQL有免费和付费版本,具体取决于其使用情况(非商业/商业)和功能。MySQL带有一个非常快速、多线程、多用户和强大的SQL数据库服务器。
历史
- 自1994年开始,由Michael Widenius和David Axmark开发MySQL。
-
1995年5月23日,首次内部发布。
-
1998年1月8日,Windows版本发布,适用于Windows 95和NT。
-
2001年1月,3.23版开始正式发行。
-
2003年3月,4.0版开始正式发行(并集)。
-
2004年10月,4.1版开始正式发行。
-
2005年10月,5.0版开始正式发行。
-
2008年2月26日,Sun Microsystems收购了MySQL AB,并于2008年11月27日发行了Oracle Version 5.1。
-
2010年1月27日,Oracle收购了Sun Microsystems,并于2010年12月3日正式发布了5.5版。
-
2013年2月5日,正式发布了5.6版。
-
2015年10月21日,正式发布了5.7版。
-
2018年4月19日,正式发布了8.0版,是MySQL的最新版本。
特点
- 高性能。
- 高可用性。
- 可扩展性和灵活性,适用于各种需求。
- 强大的事务支持。
- 适用于Web和数据仓库。
- 强大的数据保护。
- 全面的应用开发支持。
- 易于管理。
- 开源自由和24 x 7支持。
- 拥有最低的总拥有成本。
MS SQL Server
MS SQL Server是由Microsoft Inc.开发的关系数据库管理系统。它的主要查询语言是:
- T-SQL
- ANSI SQL
历史
- 1987年 – Sybase发布了适用于UNIX的SQL Server。
-
1988年 – Microsoft、Sybase和Aston-Tate将SQL Server移植到OS/2。
-
1989年 – Microsoft、Sybase和Aston-Tate发布了适用于OS/2的SQL Server 1.0。
-
1990年 – 发布了支持Windows 3.0客户端的SQL Server 1.1。
-
2000年 – Microsoft发布了SQL Server 2000。
-
2001年 – Microsoft发布了适用于SQL Server的XML Web Release 1(下载)。
-
2002年 – Microsoft发布了SQLXML 2.0(从XML for SQL Server改名而来)。
-
2002年 – Microsoft发布了SQLXML 3.0。
-
2006年 – Microsoft于2006年1月14日发布了SQL Server 2005。
-
2008年 – Microsoft于2008年11月6日发布了SQL Server 2008。R2版本于2010年7月20日发布。
-
2012年 – Microsoft于2012年5月20日发布了SQL Server 2012。
-
2014年 – Microsoft于2014年6月5日发布了SQL Server 2014。
-
2016年 – Microsoft于2016年6月1日发布了SQL Server 2016。
-
2017年 – Microsoft于2017年9月29日发布了SQL Server 2017。
-
2019年 – Microsoft于2019年11月4日发布了SQL Server 2019。
-
2022年 – Microsoft于2022年11月16日发布了SQL Server 2022。
特点
- 高性能
- 高可用性
- 数据库镜像
- 数据库快照
- CLR集成
- 服务代理
- DDL触发器
- 排名函数
- 基于行版本的隔离级别
- XML集成
- TRY…CATCH
- 数据库邮件
ORACLE
它是一个非常大型的多用户数据库管理系统。Oracle是由”Oracle Corporation”开发的关系数据库管理系统。
Oracle致力于高效管理资源,将多个客户端在网络中请求和发送数据的数据库信息进行管理。
Oracle是客户端/服务器计算的最佳数据库服务器选择。Oracle支持所有主要操作系统,包括MSDOS、NetWare、UnixWare、OS/2和大多数UNIX版本。
历史
Oracle始于1977年,并庆祝其在行业中的46个美好年份(从1977年至2023年)。
- 1977年 – Larry Ellison、Bob Miner和Ed Oates共同创立了软件开发实验室,进行开发工作。
-
1979年 – Oracle发布了2.0版本,它成为第一个商业关系数据库和第一个SQL数据库。公司改名为关系软件公司(RSI)。
-
1981年 – RSI开始开发针对Oracle的工具。
-
1982年 – RSI改名为Oracle公司。
-
1983年 – Oracle发布了3.0版本,采用C语言重写,并可在多个平台上运行。
-
1984年 – Oracle发布了4.0版本。其中包含了并发控制、多版本读一致性等功能。
-
1985年 – Oracle发布了4.0版本。其中包含了并发控制、多版本读一致性等功能。
-
2007年 – Oracle发布了Oracle11g。这个新版本着重于更好的分区、易于迁移等。
-
2013年 – Oracle数据库12c R1版本于2013年7月发布;R2版本于2016年8月在云端发布,于2017年3月在本地发布。
-
2018年 – Oracle数据库18c版本于2018年7月首次发布。
-
2019年 – Oracle数据库19c版本于2019年2月发布。
-
2020年 – Oracle数据库21c版本于2020年12月发布。
-
2023年 – Oracle数据库23c版本于2023年4月发布。
特点
- 并发控制
- 读一致性
- 锁定机制
- 数据库静止
- 可移植性
- 自管理数据库
- SQL*Plus
- ASM
- 调度器
- 资源管理器
- 数据仓库
- 物化视图
- 位图索引
- 表压缩
- 并行执行
- 分析SQL
- 数据挖掘
- 分区
MS ACCESS
Microsoft Access是最受欢迎的微软产品之一。它是一款入门级数据库管理软件。它不仅价格低廉,而且是一款适用于小规模项目的功能强大的数据库。
MS Access使用Jet数据库引擎,该引擎使用特定的SQL语言方言(有时称为Jet SQL)。它是MS Office套件的专业版附带的。MS Access具有易于使用的直观图形界面。
- 1992年 – 发布了Access 1.0版本。
-
1993年 – Access 1.1版本发布,增加了Access Basic编程语言的兼容性。
-
最重要的变化是从Access 97到Access 2000。
-
2007年 – 推出了新的数据库格式ACCDB,支持复杂的数据类型,如多值和附件字段。
-
2010年 – Microsoft Access 2010引入了ACCDB格式的新版本,在SharePoint 2010服务器上支持托管Access Web服务。
-
2013年 – Microsoft Access 2013提供传统的Access桌面应用程序以及大幅更新的SharePoint 2013 Web服务。
-
2021年 – Microsoft Access不再包含在Microsoft Office 2021的一次性购买版本中,但仍然在Microsoft 365中存在。
特点
-
用户可以创建表格、查询、表单和报表,并通过宏将它们连接在一起。
-
可以将数据导入和导出到多种格式,包括Excel、Outlook、ASCII、dBase、Paradox、FoxPro、SQL Server、Oracle、ODBC等。
-
还有Jet数据库格式(在Access 2007中为MDB或ACCDB),可以将应用程序和数据包含在一个文件中。这使得将整个应用程序分发给另一个用户非常方便,该用户可以在断开的环境中运行它。
-
Microsoft Access提供参数化查询。这些查询和Access表可以从其他程序(如VB6和.NET)通过DAO或ADO引用。
-
Microsoft SQL Server的桌面版本可以作为Jet数据库引擎的替代方案与Access一起使用。
-
Microsoft Access是基于文件服务器的数据库。与客户端服务器关系数据库管理系统(RDBMS)不同,Microsoft Access不实现数据库触发器、存储过程或事务日志记录。
PostgreSQL
PostgreSQL是一种面向对象的关系数据库管理系统(ORDBMS),支持关系(SQL)和非关系(JSON)查询。它是一个非常稳定的数据库,是基于加利福尼亚大学伯克利分校计算机科学系发布的POSTGRES 4.2版本开发的。这个数据库是许多应用程序的流行数据库或数据仓库。
历史
- 1970年代 – Ingres在加州大学伯克利分校的计算机科学系作为一个研究项目在开发中,该项目于1985年结束。
-
1985年 – 后续项目POSTGRES开始启动,旨在解决旧数据库系统中的问题。该项目旨在完全支持数据类型,并定义它们以建立数据库对象之间的关系。POSTGRES还能够使用规则来检索数据。
-
1989年 – POSTGRES第一版发布给少数用户。
-
1990年 – POSTGRES第二版再次发布,重写了规则。
-
1994年 – 随着用户数量的增加,POSTGRES 4.2版发布,并以此结束了该项目。
- 1994年 – Andrew Yu和Jolly Chen,加州大学伯克利分校的学生,用SQL语言代替了运行POSTGRES的POSTQUEL查询语言,创造了Postgres95。
-
1995年 – Postgres95发布了第一个版本,并采用了更自由的许可证。
-
1996年 – 该项目更名为PostgreSQL以支持SQL。
-
1997年 – 发布了PostgreSQL 6.0的第一个版本。
-
从那以后,项目的下一版本作为自由开源软件发布,采用PostgreSQL许可证。
-
2000年 – PostgreSQL 7.0于2000年7月8日发布。此版本在功能上有最多的改变。主要的改变包括实现了外键、优化器得到了改进、psql进行了更新,现在支持JOIN语法。
-
2005年 – 8.0版本于2005年1月19日发布。该版本的变化包括:服务器现在可以在Microsoft上原生运行,引入了保存点、时点恢复、表空间、改进的缓冲区管理、检查点、引入了更改列类型等等。
-
2010年 – PostgreSQL 9.0版本于2010年9月20日发布。
-
2017年 – 10.0版本于2017年10月5日发布。主要改进包括:逻辑复制、声明式表分区、改进的查询并行性、整体性能的显著提高等等。
-
2018年 – PostgreSQL 11.0版本于2018年10月18日发布。
-
2019年 – PostgreSQL 12.0版本于2019年10月3日发布。
-
2020年 – PostgreSQL 版本 13.0 于2020年9月24日发布。
-
2021年 – PostgreSQL 版本 14.0 于2021年9月30日发布。
-
2022年 – PostgreSQL 版本 15.0 于2022年10月13日发布。
特性
- PostgreSQL支持高级数据类型。
- 它具有高度的数据弹性、完整性和正确性。
- 它包含多版本并发控制(MVCC)。
- 可进行时间点恢复。
- 细粒度的访问控制。
- 异步复制。
- 嵌套事务。
- 在线备份。
- 精细化查询优化器。
- 预写式日志。
- 支持国际字符集、多字节字符编码和Unicode。
- 对排序、大小写敏感和格式化具有地区感知能力。
- 高度可扩展。
SQLite
SQLite是一种嵌入式关系型数据库系统。它被称为轻量级数据库,因为它的大小不超过500KB,远小于其他关系型数据库。该数据库是一个内存中的开源库,因此它可以直接访问存储在其中的文件,并且其源代码可在公众领域中获得。
历史
-
2000年 – 发布了SQLite 1.0版,其中包括GNU数据库管理器。Dr. Richard Hipp在同一年设计了这个数据库,以创建一个不需要管理的数据库。
-
2001年 – 发布了SQLite 2.0版,其中包含自定义的B树实现,而不是GNU数据库管理器,增加了数据库的事务能力。
-
2003年 – 发布了SQLite 3.0版,其中包括国际化、显式类型等重大改进。
-
2011年 – Hipp宣布计划为SQLite引入非关系型接口。
-
2018年 – SQLite采用了圣本笃法规,并由于一些争议改名为道德规范。
-
尽管存在这样的争议,SQLite 3.x的新版本仍在不断发布,具有更好的功能和改进。
-
2023年 – 最新版本的SQLite是3.42.0,于2023年7月16日发布。
特性
- SQLite是一个用ANSI C编写的开源库。
- 它可以在跨平台上工作,更容易移植到其他系统。
- SQLite的源代码可在公众领域获得。
- 即使系统因任何原因崩溃,SQLite中的事务也是原子、一致、隔离和持久的。
- 这个数据库不需要任何配置或管理。
- SQLite是无服务器的,不同于其他关系型数据库。它与访问它的应用程序链接,应用程序直接与SQLite交互,读取和写入存储在磁盘上的文件。
- 它具有简单易用的API。
- 在某些情况下,SQLite比直接的文件系统I/O操作更快。
- SQLite是自包含的,即不依赖于任何外部库或操作系统。
- 使用独立的命令行界面(CLI)客户端来管理SQLite。