本次mysql的学习将会围绕面试题进行。用于作者个人的查缺补漏。
首先讲讲什么是数据库
按照我的理解,数据库就是存储数据的仓库,因为如果把数据存储在文件中的话,读取写入的话会非常慢,没办法满足企业的开发需求。所以使用数据库来存储我们的数据。我们现在常常使用的是关系型数据库,这种数据库的好处是基于关系模型创建的,借助了集合、代数等数学概念和方法来处理数据库中的数据。我们使用数据库管理系统(RDBMS)来存储和管理数据库。这种数据库管理系统的优点是:
- 数据采用表格的形式展现。
- 每一行是各种数据字段名
- 每一列为各种字段名对应的作用域
- 许多的行和列组成了一张表单。
- 许多的表单组成了数据库。
那么什么是关系模型呢?
所谓的关系模型可以看下面的这张图:
关系模型是指把数据看成是行和列,任何数据都可以通过行和列进行定位,看起来就像是一种excel表格。
数据类型
其次对于一个关系表也就是数据表,除了定义每一列的名称之外,还要定义每一列的数据类型,关系型数据库支持的数据类型有以下几种。
通常来说要根据自己的业务类型来选择合适的数据类型,例如bigint能满足整数存储的需求,varchar()能满足字符串存储的需求。这两种也是使用最为广泛的。
sql语言
开源数据库我们最常用的就是mysql,orcle属于付费的数据库。一般我也用不起。 那么既然有了数据库,那么我们怎么操作数据库表、字段、表与表之间的关系呢?这时我们就用到了sql,sql不是任何一种数据库,它只是一个工具,一种语言,我们可以用这个语言操作数据库。
常见的sql语言主要有以下三种:
DDL:允许用户定义数据,就是创建表,删除表,修改表的操作,侧重于表的操作。
DML:允许用户对表中数据进行增删改的操作,注意没有查询操作。侧重于表中数据
DQL:查询数据的操作。这是开发中最为常用的操作。几乎百分之90的业务逻辑代码中都会用到,需要着重的学习。
sql的语法特点
sql语言关键字不区分大小写。但是针对于不同的数据库,可能会区分。