什么是SQL?简单地说,SQL就是访问和处理关系数据库的计算机标准语言。也就是说,无论用什么编程语言(Java、Python、C++……)编写程序,只要涉及到操作关系数据库,比如,一个电商网站需要把用户和商品信息存入数据库,或者一个手机游戏需要把用户的道具、通关信息存入数据库,都必须通过SQL来完成。
1.为什么需要数据库
如果每个应用程序都各自写自己的读写数据的代码,一方面效率低,容易出错,另一方面,每个应用程序访问数据的接口都不相同,数据难以复用。所以,数据库作为一种专门管理数据的软件就出现了。应用程序不需要自己管理数据,而是通过数据库软件提供的接口来读写数据。至于数据本身如何存储到文件,那是数据库软件的事情,应用程序自己并不关心:
![](https://img.haomeiwen.com/i5058641/7c9bd4cb5eb24899.png)
2.数据模型
数据库按照数据结构来组织、存储和管理数据,实际上,数据库一共有三种模型:
(1)层次模型
(2)网状模型
(3)关系模型
层次模型就是以“上下级”的层次关系来组织数据的一种方式,层次模型的数据结构看起来就像一颗树:
![](https://img.haomeiwen.com/i5058641/5c6f0e4e03fa0723.png)
网状模型把每个数据节点和其他很多节点都连接起来,它的数据结构看起来就像很多城市之间的路网:
![](https://img.haomeiwen.com/i5058641/c9fc0aac3989ff99.png)
关系模型把数据看作是一个二维表格,任何数据都可以通过行号+列号来唯一确定,它的数据模型看起来就是一个Excel表:
![](https://img.haomeiwen.com/i5058641/650b5217d7d67b3e.png)
随着时间的推移和市场竞争,最终,基于关系模型的关系数据库获得了绝对市场份额。
3.数据类型
对于一个关系表,除了定义每一列的名称外,还需要定义每一列的数据类型。关系数据库支持的标准数据类型包括数值、字符串、时间等:
![](https://img.haomeiwen.com/i5058641/d12e4cdda28cb8cd.png)
4.主流关系数据库
目前,主流的关系数据库主要分为以下几类:
(1)商用数据库,例如:Oracle,SQL Server,DB2等;
(2)开源数据库,例如:MySQL,PostgreSQL等;
(3)桌面数据库,以微软Access为代表,适合桌面应用程序使用;
(4)嵌入式数据库,以Sqlite为代表,适合手机应用和桌面程序。
5.SQL
SQL是结构化查询语言的缩写,用来访问和操作数据库系统。SQL语句既可以查询数据库中的数据,也可以添加、更新和删除数据库中的数据,还可以对数据库进行管理和维护操作。不同的数据库,都支持SQL,这样,我们通过学习SQL这一种语言,就可以操作各种不同的数据库。(注:虽然SQL已经被ANSI组织定义为标准,不幸地是,各个不同的数据库对标准的SQL支持不太一致。并且,大部分数据库都在标准的SQL上做了扩展。也就是说,如果只使用标准SQL,理论上所有数据库都可以支持,但如果使用某个特定数据库的扩展SQL,换一个数据库就不能执行了。例如,Oracle把自己扩展的SQL称为PL/SQL,Microsoft把自己扩展的SQL称为T-SQL。现实情况是,如果我们只使用标准SQL的核心功能,那么所有数据库通常都可以执行。不常用的SQL功能,不同的数据库支持的程度都不一样。而各个数据库支持的各自扩展的功能,通常我们把它们称之为“方言”。)
总的来说,SQL语言定义了这么几种操作数据库的能力:
(1)DDL:Data Definition Language
DDL允许用户定义数据,也就是创建表、删除表、修改表结构这些操作。通常,DDL由数据库管理员执行。
(2)DML:Data Manipulation Language
DML为用户提供添加、删除、更新数据的能力,这些是应用程序对数据库的日常操作。
(3)DQL:Data Query Language
DQL允许用户查询数据,这也是通常最频繁的数据库日常操作。
网友评论