发表于: 2020-06-07 22:11:24
1 1684
今天完成的事情:
1.数据库的索引
索引是什么?
索引是存储在表中的一个特定列的值的数据结构。索引是数据结构。
为什么需要索引?
没有索引,搜索数据的时候需要一行一行的比对目标值。
有了索引以后缩小了需要比对的数据范围。
什么样的数据结构可以作为索引使用?
B-Tree、B+Tree、哈希表··
索引的代价?
占用空间随着数量增大而增大;增删改需要更多的时间;
2.Sql 执行顺序
a,from
b,join
c,on
d,where
e,group by
f,avg,sum···
g,having
h,select
i,distinct
j,order by
k,limit
3.多表连接
交叉连接(cross join):得到的结果集数据量将会是两个表的乘积。【并集】
Tb1 |
| Tb2 |
|
Id | Name | Id | Car |
1 | Bob | 1 | Ford |
2 | Lili | 2 | Benz |
|
| 3 | nissan |
SELECT * FROM tb1 corss join tb2 on tb1.id=tb2.id;
内连接(inner join):【交集】
等值连接:
SELECT * FROM tb1 inner join tb2 on tb1.id=tb2.id;
SELECT * FROM tb1,tb2 where tb1.id=tb2.id;
不等连接:
SELECT * FROM tb1 inner join tb2 on tb1.id<tb2.id;
外连接(left join、right join):
左外连接 left join
SELECT * FROM tb1 left outer join tb2 on tb1.id=tb2.id;
右外连接 right join
SELECT * FROM tb1 right outer join tb2 on tb1.id=tb2.id;
SELECT * FROM tb1 right outer join tb2
on tb1.id=tb2.id
where tb1.id is null
4.interface abstract
interface
接口:用 interface 关键字声明的类,其内部有且仅有方法的签名,不能有成员变量。
行为:
接口无法被实例化
接口可以继承自多个接口
接口类只能被赋值为实现其内部所有方法的子类
abstract
抽象方法:签名前有关键字 abstract 且没有实现。
抽象类:包含抽象方法的类,其类本身也必须声明为抽象的。没有抽象方法的类也可以被声明为抽象类。
行为:
抽象类无法实例化
抽象类只能单继承
子类需实现所有的抽象方法,否则也要声明为抽象类
抽象方法不能声明为 private
抽象类与接口就是为了让子类去实现一些方法,没有继承就没有抽象类与接口概念。
抽象程度:接口>抽象类>一般类
从实现上来说抽象类比接口更需要花时间思考,因为抽象类同时存在成员变量与方法,且部分方法不是抽象方法。单继承的抽象类扩展起来也没有接口方便。
明天的计划:
1. 任务四
评论