从本节课开始,我们正式进入从零开始学数据分析第二个系列的内容,也就是零基础小白的SQL教程。那么到底什么是SQL,它用来干嘛的?
SQL 是用于访问和处理数据库的标准计算机语言。简单地说,SQL就是打开数据库大门的一把钥匙。
一、什么是数据库
数据库(英文Database)是一个存放数据的仓库,这个仓库是按照一定的数据结构和规律来存储的。简单理解,数据库就像一个生产仓库,我们把多种不同的产品对应存放在不同的货架上,如同我们把多种数据存放在不同的表中,区别在于两者存放的东西不同。
二、数据库的分类
数据库也有分类,主要包括关系型数据库和非关系型数据库。关系型数据库主要包括MySQL、SQL server、Oracle、Access、DB2等。非关系型数据库主要包括MongoDB、Redis、Cassandra、Dynamo等。
三、关系型数据库
关系型数据库,它是相对非关系型数据库而言的,它的突出特征是由行列结构组成,将众多复杂的数据结构归结为简单的二元关系(即二维表格形式)。如果我们想对数据库进行相关操作,必须遵循它的相关语法,也就是必须使用数据库的标准语言SQL进行操作。
SQL语言定义了几种常用的操作数据库语法:
DDL:Data Definition Language
DDL允许用户定义数据,也就是创建表、删除表、修改表结构等操作。通常,DDL由数据库管理员执行。
DML:Data Manipulation Language
DML为用户提供插入(INSERT)、删除(DELETE)、更新(UPDATE)数据的能力,这些是应用程序对数据库的日常操作。
DQL:Data Query Language
DQL允许用户查询数据,数据查询语言DQL基本结构是由SELECT子句,FROM子句,WHERE子句组成的查询块。这也是用得最频繁的数据库日常操作。
几种常见的关系型数据库介绍
1)MySQL
MySQL是目前非常流行的开源关系型数据库软件,最开始由瑞典MySQL AB公司开发与维护。2006年MySQL AB公司被SUN公司收购,后来SUN公司又被甲骨文(Oracle)公司收购,因此,MySQL数据库软件目前属于Oracle公司,成为甲骨文公司又一个非常重要的数据库产品。
MySQL是一种典型的关系型数据库管理系统,关系型数据库的突出特点是先将数据保存在不同的表中,再将这些表存放到不同的数据库中,而不是直接将所有数据统一放到一个大仓库中,这样的设计提升了MySQL的读取速度,使用起来非常灵活并且方便管理。
2)Oracle
Oracle数据库系统是美国Oracle(甲骨文)公司提供的以分布式数据库为核心的一组软件产品,也是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一。Oracle也是目前公认的大型关系型数据库产品,主要应用于传统大企业,例如政府、金融、证券等。
3)SQL Server
SQL Server是微软公司开发的大型关系数据库系统。SQL Server的功能比较全面,效率高,可以作为中型企业或单位的数据库平台。SQL Server可以与Winodws操作系统紧密集成,不论是应用程序开发速度还是系统事务处理运行速度,都得到较大的提升,对于在Windows平台上开发的各种企业级信息管理系统来说,不论是C/S(客户机/服务器)架构还是B/S(浏览器/服务器)架构。SQL Server都是一个很好的选择。但SQL Server的缺点是只能在Windows系统下运行。
四、非关系型数据库
非关系型的数据库,有时候我们也称之为NoSQL。
NoSQL(NoSQL = Not Only SQL ),意即"不仅仅是SQL"。
非关系型数据库以键(key)-值(value)对形式存储,支持多种值类型存储,包括string(字符串)、list(链表)、set(集合)和zset(有序集合)等,且结构不固定。例如,每一个元组可以有不一样的字段,每个元组可以根据需要增加一些自己的键值对,不局限于固定的结构,可以减少一些时间和空间的开销。
几种非关系型数据库介绍
1)MongoDB
MongoDB 是一个文档数据库,旨在简化开发和扩展。MongoDB 中记录的是一个文档,它是由字段和值对组成的数据结构。MongoDB 文档类似于 JSON 对象。字段的值可能包括其他文档、数组和文档数组。
使用文档的优点是:
- 文档(即对象)对应于许多编程语言中的本地数据类型。
- 嵌入式文档和数组减少了对昂贵连接的需求。
- 动态模式支持流畅的多态性。
2)Redis
Redis是一种高性能的key-value数据库,为了保证效率,Redis的数据都是缓存在内存中。区别是Redis会周期性地把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。 同时它提供了Python、Ruby、Erlang、PHP客户端,使用十分方便。
五、总结
以上就是数据库内容的基本介绍,下节课我们将正式进入SQL基础语法及实战内容的介绍,敬请期待!