1. 定义
按照数据结构来组织、存储、管理数据的仓库
2. 分类
2.1 网状数据库
- 实现多对多关系
2.2 层次数据库
- 以树结构存储数据
- 关系只支持一对多
- 不可以有交叉
2.3 关系型数据库
- 由行和列在组织数据和关系,表中行可以描述数据实体,也可以描述实体间的关系
- 基于关系模型构建的数据库称为 RDBMS(relational Database System)
- 常见关系型数据库
- Oracle
- MySQL
- PostgreSQL
- IBM Db2
- SQLite
- HIVE(蜂窝)
2.4 非关系型数据库
- 多种分布方式操作语言
- 常见的非关系型数据库
- redis(key-value)
- MongoDB(document store)
- Cassandra(wide column store)
- Elasticsearch(search engine 分布式搜索引擎)
- HBASE(search engine 大数据领域
3. SQL语句
- Structured Query Language
语言规范
- 大小写不敏感
- 用分号结束一句话
SQL语句分类
1. DDL 数据定义语言
🌼负责数据库定义,数据库对象定义,Create,alter 和 drop 三个语法组成
drop user user1;
drop database if exists test;
2. DML 数据操作语言
🌼负责对数据库对象的操作,包括创建数据库,创建表,对数据进行增删改查等,具体信息见数据库操作
3. DCL 数据控制语言
🌼负责数据库权限访问控制,grant 和 revoke
grant all on employees.* to 'root'@'%` identified by 'root'
revoke all on *.* from root;
4. TCL 事物控制语言
🌼负责梳理 ACID 事务,commit 和 rollback等
4. 数据库中的一些重要定义
4.1 主键(primarykey):
特点:唯一、非空且自增,常常为整型或长整形数据类型
4.2 索引(index)
4.2.1 用于快速检索,空间换时间,查询效率提高
4.2.2 插入修改删除效率低下
4.2.3 分类
- 主键索引:主键会自动建立主键索引,开始定位唯一记录
- 唯一索引:表中的索隐列组成的索引必须唯一,可以为空,但非空必须唯一
- 普通索引:没有唯一性要求
4.3 约束(constraint)
4.3.1. 唯一约束
4.3.2. primary key 约束(主键约束)
4.3.3. foreign key 约束(外键约束)
外键:在表 b 中的列,关联表 a 中的主键,表 b 中的列就是外键
如果 b 表中外键列插入了一个值,这个值必须是 a 表中存在的主键值
表 b 关联了表 a 的主键,删除 a 的主键,必须删除 b 中引用这个主键的记录,否则删除失败
外键约束为了保证数据完整性,一致性,杜绝冗余、数据讹误`
4.4 视图(view)
- 一张虚拟表,也叫虚表,由查询语句生成,可以通过视图进行 curd 操作
- 可以简化操作,可以隐藏真实表的数据,保护数据安全
5. SQL 的数据类型(MySQL)
text 类型
number 类型
日期类型
6. 数据库关系操作
关系:在关系数据库中,关系就是二维表(可以是一张或者多张表)
- 选择(Selection):也叫显示,是从关系中选择出满足给定条件的元组
- 投影(projection):在关系上投影就是从选择出若干属性列组成新的关系
- 连接(join):将不同两个关系连接成一个关系
7. MySQL 自带数据库
-
information_schema
- 虚拟库,不占用磁盘空间,存储一些数据库启动后的参数
-
mysql
- 授权库,主要存储系统用户的权限信息
-
Performance_schema
- 用于手机数据库服务器性能参数,记录处理查询时发生的各种事件、锁等现象
-
sys
- 将Performance_schema中的复杂度降低,使得 DBA 可以盖鞥高的阅读这个库找那个的内容
-
test
- 自动创建的测试数据库
8. 字符集
show charset;