数据库

什么是数据库

文件保存数据的缺点

  • 文件的安全性问题
  • 文件不利于数据查询和管理
  • 文件在程序中控制不方便

    数据库存储介质

  • 磁盘

  • 内存

    数据库的功能

    用来组织数据,组织很多很多数据
    这些数据通常都是存储在外存(磁盘)上的
    核心功能
    针对数据增删改查

内存与外存的区别

实际开发中,数据库往往是存储很多数据,同时又很容易成为整个系统的性能瓶颈

学习数据库的意义

对于任何一个公司来说,数据都是命脉
公司的数据主要都是通过数据库来进行管理的

数据库怎么学

  1. 一种编程语言SQL MySQL是一个具体的数据库
  2. 学习使用Java来操作数据库(MySQL)也是通过SQL
  3. 学习数据库得一些内部的原理

注意:

  • SQL这个语言的风格和Java非常不一样
  • 核心要义~多操作多练习

数据库不是指某个软件,准确来讲是一类软件的代名词
其中MySQL是一个典型代表

Oracle:领头人 SQL Server:Microsoft SQLite:是使用最广泛的数据库(没有之一)每个安卓手机都内置了SQLite

数据库分类

数据库分为关建型数据库非关系型数据库

  • 关系型数据库(RDBMS)

是指采用了关系模型来组织数据的数据库,简单来说,关系模型值得就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织

  • 非关系型数据库

不规定基于SQL实现,现在更多是指NoSQL数据库,如:

  1. 基于键值对:如memcached、redis
  2. 基于文档型:如mongodb
  3. 基于列族:如hbase
  4. 基于图型:如neo4j

关系型数据库与非关系型数据库的区别

关系型数据库 非关系型数据库
使用SQL 不强制要求,一般不基于SQL实现
事务支持 支持 不支持
复杂操作 支持 不支持
海量读写操作 效率低 效率高
基本结构 基于表和列,结构固定 灵活性比较高
使用场景 业务方面的OLTP系统 用于数据的缓存、或基于统计分析的OLAP系统

注:OLTP(On-Line Transaction Processing)是指联机事务处理,OLAP(On-Line Analytical Processing)是指联机分析处理

网络领域:
主动发起请求(Request)的一方,客户端
被动接受请求响应(Response)的一方,服务器
服务器是被动的一方,所以服务器要做好充分的准备——服务器程序往往是7*24小时运行的

MySQL服务器安装

本次学习使用MySQL5.7版本

安装过程略

SQL分类

  • DDL数据定义语言,用来维护存储数据的结构

代表指令:create,drop,alter

  • DML数据操纵语言,用来对数据进行操作

代表指令:insert,delete,update
DML中又单独分了一个DQL,数据查询语言
代表指令:select

  • DCL数据控制语言,主要负责权限管理和事务

代表指令:grant,revoke,commit