数据库
数据库管理系统
数据库系统=数据库+数据库管理系统+数据+DBA
表优化语句
optimize table xxx(可以利用未使用的空间,并整理数据文件的碎片),这个optimize关键字值对INNOdb以及MyIsam引擎好用
索引分类
hash索引:将键值对保存在一个列表中
btree索引
1)普通索引
2)唯一索引
3)主键索引
4)全文索引
一数据模型,
层次模型,网状模型,关系模型(以二位数据表的形式组织数据)关系模型更适合组织数据库,,
因此我们用关系模型来组织数据,组织数据库,进而出现关系数据库管理系统,出现关系数据库语言sql
二数据库设计
概念模型--------对数据库进行概念设计,ER图(实体联系图)1:1 1:n m:n
逻辑模型--------从实体联系图中得出关系模式(表)
物理模型---------面向计算机的模型
c/s架构,有应用程序接收用户请求,应用程序直接向数据库请求数据,
b/s架构,有web服务器接收用户请求,web服务器找到对应的应用程序,应用程序直接向数据库请求数据,
三我没有用过的操作!!!!
1直接用语句进行图片的存储
insert into table values(load_file(‘文件的整体路jing名')
四关系运算基础
关系运算可以用来操作数据库!!!!!!!!
实际上sql就是对关系运算的一种封装!!!!!!!!!!!!
选择运算------select
投影运算----select
连接运算
=============================================================================================
# sql与代数关系运算之间的关系
关系实际上是“组域”上的笛卡尔积的一个子集,所以sql对关系数据库上的操作实际上在这个子集上的代数关系运算。
- **代数关系运算的介绍**
- **sql与代数关系之间的关系**
-------------------------------------------------------------------------------------------------------------------------------------------------
## 关系运算
> 一群元组的集合称为“关系”,关系之上进行一些“操作”,这些“操作”称为关系运算,包括“选择”、“投影”、“笛卡尔积”、“连接”、“外连接”,“更名”等等。
### 选择
**sql** select * from TABLE **where** name='zhangsan';
**运算** $\sigma_{name='zhangsan'}(TABLE)$;
### 投影
**sql** select **name**,**age** from TABLE ;
**运算** $\Pi_{name,age}(TABLE)$;
**注释** 从TABLE中投影出name、age两个属性;
### 笛卡尔积
**sql** select * from **TABLE1,TABLE2 **;
**运算** $TABLE1\times TABLE2$;
**注释** 将TABLE1中的元组与TABLE2中的元组两个任意拼接成一个新的元组,改元组的长度是TABLE1与TABLE2元祖长度的和 ;
### 自然连接
**sql** select * from **TABLE1,TABLE2 ** where **TABLE1.id=TABLE2.id ** ;
**运算** $TABLE1\Join TABLE2$;
**注释** 将TABLE1与TABLE2中具有重复属性的元组的拼接成一个新的元组,改元组的长度是TABLE1与TABLE2元祖长度的和减去重复属性的个数 ;
###左外连接
**运算** $TABLE1 ⟕ TABLE2$;
**注释** 左外连接的结果包含TABLE1 中所有元组,对每个元组,若在TABLE12中有在公共属性名字上相等的元组,则正常连接,若在TABLE1 中没有在公共属性名字上相等的元组,则依旧保留此元组,并将对应其他列设为NULL。
###右外连接
**运算** $TABLE1 ⟖ TABLE2$;
**注释** 右外连接的结果包含TABLE2中所有元组,对每个元组,若在TABLE1中有在公共属性名字上相等的元组,则正常连接,若在TABLE1中没有在公共属性名字上相等的元组,则依旧保留此元组,并将对应其他列设为NULL。
作者:dxaxin
链接:https://www.jianshu.com/p/fbb97b7b208b
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。