数据库
一.定义
高效的存储和处理数据的介质(磁盘和内存)。
二.主流数据库
微软:SQL Sever和access SQL Sever具有使用方便、伸缩性好、与相关软件集成程度高优点。与.Net平台搭配使用(.mdf,.ldf日志文件) access(*.mdb)
瑞典MySQL:AB公司mysql 并发性好,不适合做复杂的业务,对简单的SQL处理效果好。(数据文件:.myd;索引文件:.MYI;表定义文件:.frm)
IBM公司:informix
美国oracle公司:oracle 能在所有主流平台上运行(包括Windows),采用完全开放策略。在兼容性、可移植性、可联结性、高生产率上、开放性存在优点
PostgreSQL:加州大学伯克利分校计算机系开发的关系数据库,可以免费使用、修改和分发(私用、商用、学术研究使用)。
SQLite:是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百k内存就够了。
H2:是一个用JAVA开发的嵌入式数据库,它本身只是一个类库,可以直接嵌入到应用项目中。
小型数据库:access、foxbase
中型数据库:sql sever、mysql、informix
大型数据库:db2(索引数据.inx大对象)、Oracle(.*DBF *.ora表空间数据文件)、Sybase
三、MySQL基本使用
1.服务器:
服务器管理:执行win+r输入services.msc打开服务管理器可控制对应服务的停止、暂停、重启动
2.数据库MySQL连接服务器
输入:
注:如果没有写-h 192.168.43.250默认是连接本地;如果没有写-P 3306默认是连接3306端口号
输出:
3.服务器、数据库、表关系
关系图:
所谓安装数据库服务器,只是在机器上安装了一个数据库管理系统程序,这个管理程序可以管理多个数据库,一般开发人员会针对每一个应用创建一个数据库。为保存应用中实体的数据,一般会在数据库中创建多个表,以保存程序中实体的数据。
四、MySQL架构
整体逻辑架构:
模块组成:
五、存储引擎(MySQL的核心是插件式存储引擎)
1.定义:数据库管理系统如何存放数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。
2.查看存储引擎
3.各类存储引擎
类型 | MyISAM | BDB | Memory | InnoDB | Archive | NDB |
Storage Limits(储存限制) | No | No | Yes | 64TB | No | Yes |
Transactions(commit,rollback,etc.)(事务管理) | | √ | | √ | ||
Locking granularity | Table | Page | Table | Row | Row | Row |
MVCC/Snapshot Read(快照读取) | √ | √ | √ | |||
Geospatial support(地理位置) | √ | | | | | |
B-Tree indexes(B树索引) | √ | √ | √ | √ | | √ |
Hash indexes(哈希索引) | | | √ | √ | √ | |
Full text search index(全文搜索) | √ | | | | | |
Clustered index(集群索引) | | | | √ | | √ |
Data Caches(数据缓存) | | | √ | √ | | √ |
index Caches(索引缓存) | √ | | √ | √ | | √ |
Compressed data(压缩数据) | √ | | | | √ | |
Encrypated data(via function)(加密数据) | √ | √ | √ | √ | √ | √ |
Storage cost(space used)(存储消耗) | Low | Low | N/A | High | Very Low | Low |
Memory cost(内存占有量) | Low | Low | Medium | High | Low | High |
Bulk insert Speed | High | High | High | Low | Very High | High |
Cluster database support(集群数据库支持) | | | | | | √ |
Replication support(复制支持) | √ | √ | √ | √ | √ | √ |
Foreign key support(外键支持) | | | | √ | | |
Backup/Point-in-time recovery(备份实时恢复) | √ | √ | √ | √ | √ | √ |
Query cache support(查询缓存支持) | √ | √ | √ | √ | √ | √ |
Update Statistics for Data Dictionary(数据字典更新统计) | √ | √ | √ | √ | √ | √ |
六、SQL分类
1.DDL数据定义语言:用来维护存储数据的结构(create、drop、alter)
2.DML数据操纵语言:用来对数据进行操作(insert、delete、update)
包含:DQL数据查询语言(select)
3.DCL数据控制语言:主要负责权限管理和事物(grant、revoke、commit)