本人以后端工程师为目标,从JAVASE学起,现在刚接触MySQL数据库。那么今天就先来学习一些关于数据库的一些基础背景知识吧!
先允许我谈个题外话(哈哈哈,占宝地一用……)。
有关Java对象的存放位置:
list 存放在java进程的堆区,其索引的string也在堆区
言归正传:
一、数据库的数据存放在哪里呢
我们先来分析一波内存与硬盘的存储区别:
因此,根据内存的特点,数据库的数据是要保存在硬盘里的。
二、数据库使用技术
数据库使用很多数据结构,把数据组织起来
数据库还使用了其它很多技术:多线程,io等
MySQL的gui可视化工具:navicat , MySQL Workbench
三、数据库分类
数据库大体可以分为关系型数据库和非关系型数据库
关系型数据库(RDBMS):
是指采用了关系模型来组织数据的数据库。 简单来说,关系模型指的就是二维表格模型,而一个
关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。
基于标准的SQL,只是内部一些实现有区别。
特性:保证安全来牺牲性能,所以对于海量数据效率较低
常用的关系型数据库如:
1. Oracle:甲骨文产品,适合大型项目,适用于做复杂的业务逻辑,如ERP、OA等企业信息系
统。收费。
2. MySQL:属于甲骨文,不适合做复杂的业务。开源免费。
3. SQL Server:微软的产品,安装部署在windows server上,适用于中大型项目。收费。
非关系型数据库:
特性:性能优先的设计原则,海量数据,查询多,修改少
不规定基于SQL实现。现在更多是指NoSQL数据库,如:
1. 基于键值对(Key-Value):如 memcached、redis
2. 基于文档型:如 mongodb
3. 基于列族:如 hbase
4. 基于图型:如 neo4j
关系型数据库和非关系行数据库的对比:
四、SQL分类
DDL数据定义语言,用来维护存储数据的结构
代表指令: create, drop, alter
DML数据操纵语言,用来对数据进行操作
代表指令: insert,delete,update
DML中又单独分了一个DQL,数据查询语言 代表指令: select
DCL数据控制语言,主要负责权限管理和事务
代表指令: grant,revoke,commit