技巧 下载 mystemctl命令
ctrl+a/e 命令最左侧最右侧crrl+l 清屏ctrl+c 强制停止ctrl+d 退出账户登录 退出特点的专属页面history 找到历史执行的命令!p 搜索历史中最近的p开头的命令
yum:RPM包软件管理器用于自动化安装配置Linux软件yum -y [install | remove | search] 软件名称需要root权限以及网络
在ubuntu里是用apt 语法一样
控制内置软件systemctl start|stop|status|enable|disable 服务名很多其它软件也可以用其控制 部分没有自动集成
数据库内核01
1.一个常见的数据库:编译查询更新 管理2.传统数据库拓展性差性能差 不支持协同并发 操作处理不统一3.关系型数据库基于实际对象的依赖关系建模 数据处理自己完成 对用户屏蔽解耦4.关系型数据库 mysql oracle informix… 使用方便非关系型数据库 redis(键值数据库) MongoDB…格式灵活速度快5.关系型数据库 表的本质就是关系 其中元组tuple就是一组字段 属性里面的值就不可以再分了 如人名 年份 是单个字段 且一般是标量 NULL可出现在任何地方6.一个关系数据表的主键(可能是某一列 其值能唯一地标识表中的每一行 ) 如果有个外界的属性去关联表中的关系 则是外键(表字段与外键类型相同 且是主表的唯一键) 如果有多对多的关系的话 可以用一个中间表7.储存检索数据有两种a:声明式的 比如查完以后 join之类的 带过程 如何达成结果 用户告诉其策略b:非声明式的 只告诉数据库要这个结果 select。。。(让数据库研究怎么去弄 我们一般用这种)8.关系型代数 十分重要Syntax: 符号 predicate (R)
数据库内核02
数据库语言大概分三类1.数据增删改查 DML2.数据定义语言(建表之类的) DDL3.数据控制语言(权限之类的) DCLSQL based on bags 里面元素可重复 而不是set
中级SQL
最基础的:SELECT column1,column2 输出列FROM table 表WHERE predicate1, predicate2 位次条件
oceanbase存储引擎1
Diskmanager 数据库管理磁盘上的文件的模块 也叫存储引擎1.一般来说数据库的数据都是存硬盘上的 但用户要操作的话 需要加载到内存里去存储引擎就是管理这 个来回流动的过程
2.存储是分层的 越往上层越小越贵越快 如图上层的虽然易失 但可以随机访问 可以按字节获取地址 下层那些硬盘之类的是顺序访问 且只能一块一块
3.好的存储引擎允许用户管理一个巨大的数据库 不让数据库经常读写磁盘(因为慢) 持续读写比随机读写入快
4.大多数数据库都面向硬盘(用户的东西最后归于硬盘文件) 面向内存的不考虑硬盘 更快但更小
5.内存上有个buffer pool 缓冲池 有一定的大小 硬盘上的文件的第一页的块读到缓冲池中(像一个loading的过程)6.还有一个execution engine 执行器部分 执行器想获取一个东西 缓冲池先把文件目录读进去再解析 找到第n页地址加载进去 此时数据已在内存 便提供给执行器
7.mmap提供虚拟内存 和实际硬盘一样大 想找page1 操作系统直接把page1弄到物理内存里 再将虚拟内存与其链接 无需自己管理内存加载卸载 但是如果物理内存满了 操作系统不知道该 ...
02 IN BETWEEN
IN让我们的代码简洁WHERE state =’VA’ OR state=’VB’ OR state=’VC’可以直接写成 WHERE state in (‘VA’,’VB’,’VC’)
BETWEEN让我们的代码简洁 可以比较同一属性的范围数值WHERE points >=1000 AND points <=2000->WHERE points BETWEEN 1000 AND 2000
01 SELECT WHERE AND OR NOT
DBMS 数据库管理系统 用来管理数据库关系型数据库中数据存储在利用关系互相链接的表中用SQL来查询 修改数据
USE sql_store; 用的哪个文件夹SELECT *获取列 *代表返回全部列From customers– WHERE customers_id =1 WHERE筛选 – 是注释OPENED BY first_name 按名字排列
关于SELECT…SELECT last_name, first_name, points, (points+10)*100 AS discount_fact 关于AS 可以给列别名 想要带空格就加双引号…
SELECT DISTINCT stateDISTINCT 关键字可以去重
关于WHEREWHERE 进行筛选USE sql_store;SELECT *From customersWHERE points>1000 AND points <2000 筛选已选列中满足要求的也可以 WHERE NOT (points>1000 AND points <2000)