GPL:通用编程语言: JAVA python
DSL领域特定编程语言: SQL. Gradle
SQL语言子分类:
DDL: 数据定义语言:Create, Drop
DML: 数据操作语言: Insert, Update
DQL: 数据查询语言: Select, Where, OrderBy
TCL: 事务控制语言:RollBack, Commit
DCL: 数据控制语言: Grant , Revoke
CCL: 指针控制语言: 游标
常用SQL执行/观察/优化工具:
mysql自带的命令行工具,sql指令,非可视化工具。
图形化界面工具: Navicat , MySqlWorkBench
调优的基本手段:
explain: sql自带的, 通过指令看sql命令给出的报告。
第三方开源:SQLAdvisor, 小米SOAR
SQL -- Join:
笛卡尔积:
X: {1,2}
Y: {a,b,c}
CP:
{1,a},{1,b},{1c} {2,a},{2b},{2c}
X{1,2},Y{a,b},Z{3,4}= 2 * 2 * 2 = 8
{学生,课程},{声母,韵母}
CROSS JOIN: 交叉连接,笛卡尔连接,无需关联也能查询。
select * from a cross join b;
Inner Join : 内连接(取表与表之间的交集)
select * from a inner join b on a.id=b.id
Left Join:左连接:(取a表全部和b表与a表匹配部分)
select * from a left join b on a.id=b.id
Right Join:右连接:(取a表匹配b表的部分和b表的全部)
select * from a right join b on a.id=b.id
Outer Join: 外连接(左连接与右连接综合结果)
select * from a outer join b on a.id=b.id(mysql中没有outer关键字)
可以通过union 联合查询。
select * from a left join b on a.id=b.id
union
select * from a right join b on a.id=b.id
数据库事务: