数据库新手指南:从零开始学习

发表时间: 2022-01-19 10:40

大家可能一听数据库,就会觉得这是一个高大上的东西,当年Oracle(甲骨文)就凭借着他的Oracle数据库系统蝉联了好几年的世界第一市值的宝座,据说当年一套数据库系统就没有低于100万的;那个时候,一个Oracle数据库管理员的证书可是非常吃香的,在那个一个月一个大城市最低工资只有1000的年代里,拥有Oracle数据库管理员证书的人,一年可以轻松拥有十几二十万的年薪的。

当然现在要是去当一年数据库管理员也是非常不错的,家里有钱有关系的学生,其实你们可以往这个方向考虑。当数据库管理员就有点类似于仓库管理员,只要你做的好,其实工作很轻松,待遇又很高。你只要做好数据库的备份和安全,然后要会一些数据库的优化就可以了,很多时候很多单位其实也不差钱,所以数据库的优化在一些单位就不是那么重要,就是多添置一些设备的问题而已。

说了这么多题外话,现在我们回归主题,那么数据库到底是什么?

其实数据库没有那么高深,就在我们身边,我们就有碰到很多数据库的例子,比如一个文本文件、一个excel文件,其实就是一个数据库。比如我们现在做一个班级的学生信息表,

学号

姓名

出生年月

籍贯

1

张三

2001.1

福建

2

李思

2001.3

山东

3

王五

2000.6

河南

4

刘齐

2001.5

河北

5

钱九

2002.5

广东

5

李二

2001.2

海南

6

陈毅

2000.3

北京

7

王强

2001.3

福建

8

刘征

2000.6

广东

这就是一个数据库,也是一个数据表,这个数据表里面就包含了学号、姓名、出身年月、籍贯这四个数据列。

说到这里,既然数据库就是这么一个简单的东西,那么为什么要有数据库、建立数据库的目的是什么?相信大家也都看出来了,数据库就是存放一堆数据的地方,当我们有一堆数据要存放的时候,那总要想个办法让他有条理的存放一下,这就是数据库最初的目的,然后到了后面,发现数据越来越多了,这个时候就又产生了查询效率的问题,排序的问题,这个时候数据库程序的好坏就体现出来了,比如假如我们一个班级有一亿人,要查询这一亿人中有哪些姓陈的,然后按照出生年月排序好,这个时候好的数据库的查询所花的时间就是差的数据库所花时间的几分之一、甚至是几十分之一,这也就是为什么oracle他们敢卖这么贵的原因,他们在大数据查询方面的速度无人能比,在银行、电信等这些涉及几亿几十亿的数据处理上拥有超级快的速度。

所以我们建立数据库的目的,一是为了有条理的存放数据,二就是为了能方便快速的查询到我们想要的数据,这就是建立数据库的初衷目的,也是数据库的根本。

至于后面基于这个基本需求的前提下,衍生出了索引、触发器等等,都是为了加快和提升查询速度、提升数据处理效率而衍生出来的。

那么我们建立数据库的目的就是为了存放、管理、查询数据,而当前市面上有多种不同的数据库,大的如甲骨文的Oracle、微软的Sql Server、开源的MySql,小的如微软的Office中带的Access、Excel、文本文件等,那么如果每家都规定自己的一套查询办法的话,那就程序开发来说就是一个非常痛苦的事情了,要换一套数据库,就要对程序进行全面的重新修改和测试。所以大家就规定了一套统一的查询方法,这就是Sql查询语言产生的原因。

结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。

结构化查询语言不要求用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统, 可以使用相同的结构化查询语言作为数据输入与管理的接口。

结构化查询语言Sql包含6个部分:

1、数据查询语言(DQL: Data Query Language):其语句,也称为“数据检索语句”,用以从表中获得数据,确定数据怎样在应用程序给出。select是用得最多的词,其他DQL常用的保留字有WHERE,ORDER BY,GROUP BY和HAVING,比如我们上面的学生信息表中,假如我们要查询有哪些学生是2001.6月之前出生的,那我们可以这么查询 Select * from 学生信息表 where 出生年月<'2001.6'

2、数据操作语言(DML:Data Manipulation Language):其语句包括动词INSERT、UPDATE和DELETE。它们分别用于添加、修改和删除。

3、事务控制语言(TCL):它的语句能确保被DML语句影响的表的所有行及时得以更新。包括COMMIT(提交)命令、SAVEPOINT(保存点)命令、ROLLBACK(回滚)命令。

4、数据控制语言(DCL):它的语句通过GRANT或REVOKE实现权限控制,确定单个用户和用户组对数据库对象的访问。某些RDBMS可用GRANT或REVOKE控制对表单个列的访问。

5、数据定义语言(DDL):其语句包括动词CREATE,ALTER和DROP。在数据库中创建新表或修改、删除表(CREATE TABLE 或 DROP TABLE);为表加入索引等。

6、指针控制语言(CCL):它的语句,像DECLARE CURSOR,FETCH INTO和UPDATE WHERE CURRENT用于对一个或多个表单独行的操作。