再次学习数据库和sql
引用:
数据库及sql: zhuanlan.zhihu.com/p/41576768
准备工作:认识一些英语单词
creat:创建
drop:删除,下降
alter:修改
column:行,纵行
character:字符
integer:整数
table:表格
add:添加
transaction:业务,变换+行为=交易,处理
insert:插入
revoke:撤销,取消
grant:承认,授予
rollback:反转
commit:确认,承认
基本数据类型
ps:这里使用小写便于认单词
integer:整数
char:字符,字符串(定长),不够则使用半角空格补充
varchar:(可变长字符串)
date:日期类,年月日
操作
sql:
命名规则:只能使用半角英文字母、数字、下划线(_)作为数据库、表和列的名称 ,且名称必须以半角英文字母开头。同一个表中不能创建两个名称相同的列
字符串及date要用单引号 ''
CREAT DATEBASE <数据库name>
CREAT TABLE <表name>(
<列name1> <该列所需约束>
);
- 删除列使用的语法:ALTER TALBE <表名> DROP COLUMN <列名>;,删除的数据无法恢复。
- 增加列使用的语法:ALTER TABLE <表名> ADD COLUMN <列的定义>;
改名:
RENAME TABLE <变更前的名称> to <变更后的名称>
sql--DDL
- CREATE: 创建数据库和表等对象
- DROP: 删除数据库和表等对象
- ALTER: 修改数据库和表等对象的结构
sql--DML
- INSERT:添加数据
- UPDATE:修改数据
- DELETE:删除数据
单机存储
在单个计算机节点上的存储软件系统,一般不涉及网洛交互
经典一:本地文件系统
管理单元:文件
对各种文件系统都有统一的抽象的接口:VFS
对Linux文件系统:两个最基本数据结构:Index Node & Directory Entry
- I N:文件唯一标识,根本数据所在(元数据:如大小权限物理位置id),存储在磁盘中,总数固定
- D E:文件名,I N 指针,层级关系,为内存结构
经典二:v_k存储
常用使用方式 put(k,v)&get(k)
LSM-Tree,(好像和树没啥关系),追求极致的写入性能而牺牲了读性能。
在内存中,MemTable负责不断写入数据直到满溢出来传到Immutable MemTable(固定化)中,这玩意满溢后将数据再写入磁盘的SSTable(有层级level 0---....) 满了就传到下一级。但读取时就很麻烦,需要将不同层级的SSTable合并起来一个完整的数据集合才能进一步操作