数据结构:一门专门的学科,与语言无关,以具有某些特性的结构来存储数据
- 如果存放数据,直接放在数据结构中就行了,为什么还要数据库?
- 还比如,把数据直接放在硬盘中的文件就可以了,为什么还需要数据库?
- 为什么都不选还要选择数据库?
数据库:专门搞数据管理的一种软件,可以通过网络提供远程的数据管理服务,所以也称为“数据库服务器”
→一般而言,服务器这个名词,可以分为
- 硬件,服务主机
- 软件,提供服务的软件
数据库,本质是把数据保存在数据库服务器的主机硬盘上
硬盘存储数据 vs 内存存储数据(使用数据库) (使用数据结构)
- 内存是有限的,硬盘容量大很多
- 内存价格相对硬盘更贵
- 内存操作数据,比硬盘要快很多,效率更高
- 内存中保存的数据在重启后就消失了(进程关闭,对应的进程占用的内存也消失了)\(内存是程序起来的一个进程)
数据库存储数据(在数据库服务器主机硬盘) vs 自己电脑的硬盘
- 不安全
- 操作不方便(查询修改删除..)
- 海量数据存储效率低
数据库服务器:作为服务端提供数据管理服务,提供远程连接给用户,用户使用客户端来连接服务端,就可以进行数据管理操作。
再次看 数据库中的数据结构:数据都存储在数据库服务器主机的硬盘上(表现为一个文件)
数据库服务器进程运行后,就把硬盘上的文件,加载到内存上:使用很多数据结构,把数据组织起来。→其实就是数据结构的目的
当然,数据库除了数据结构这种技术,还使用了其他很多技术:如多线程,io等等
我们在MySQL命令行工具中,执行一个数据库命令,
本质是:通过客户端工具,输入一条命令
→把命令发给远程的数据库服务器软件
→数据库服务器运行这条命令,就可以执行数据管理的操作了
(非关系了解)
关系型数据库 与 非关系型数据库-
关系型数据库
数据储存在类似excel这种二维表中,且数据和数据之间,存在一定的关系(数据库本身是提供了这种关系的支持)
代表性产品:
①MySQL:开源(可以看到源码,免费)—很多互联网公司都喜欢用→④MariaDB:MySQL被Oracle收购以后,就在MySQL原来的版本上打了一个分支包(开源),这样以后即使Oracle要对MySQL收费,也不怕\开源即免费
②Oracle:甲骨文产品,一般来说,企业内部的系统用的多
③SQL Server:属于微软,目前市场占有率已经下降的很多了
→②③有提供开发者版本(免费),商业版收费(公司用)
⑤其他(耳熟即可,百度一下):DB2,Sybase
-
非关系型数据库(了解)
以性能为优先的设计
标准的SQL分类
(1)DDL:数据定义语言
定义 表和字段等等的:类似于,Java中,也是先定义类,及成员变量,再有实例对象。
定义 类→二维表
成员变量→二维表中的字段
(2)DML:数据操纵语言
做数据操作的:添加数据,删除数据,修改数据
添加数据→类似于Java中创建一个实例对象,把属性设置值
删除数据
修改数据
DQL:数据查询语言(属于DML中的一种)
(3)DCL:数据控制语言
比较常见的是权限的操作(grant赋予权限,revoke撤销权限)
事务的操作(commit提交事务,rollback回滚事务)
————————————————————
方括号是可加可不加的内容



