- 数据库的增删改查
- group by;内连接,左外连接;distinct
- 事务的隔离级别;脏读,不可重复读,幻读
- 索引:了解B+树索引,及使用索引的好处、坏处
索引优缺点
创建索引可以大大提高系统的性能
1. 通过创建唯一性索引,可以保证数据库中每一行数据的唯一性
2. 可以大大加快数据的检索速度,这是创建索引的最主要原因。
3. 可以加速表和表之间的连接,特别是在实现数据的参照完整性方面特别有意义
4. 在使用分组(group by)和排序(order by)子句进行数据检索时,同样可以显著减少查询中分组和排序时间。
5. 通过使用索引,可以在查询过程中,使用优化隐藏器,提高系统的性能。
不利方面
1. 创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加。
2. 索引需要占物理空间,除了数据表占数据空间之外,每个索引还要占一定的物理空间,如果要简历聚簇索引,那么需要的空间就会更大。
3. 当对表中的数据进行增加、删除和修改的时候,索引页要动态维护,这样就降低了数据的维护速度。
哪些地方可以创建索引
1. 在经常需要搜索的列上创建索引,可以加快搜索的速度
2. 在作为主键的列上创建索引,强制该列的唯一性和组织表中数据的排列结构
3. 在经常用在连接的列上创建索引,这些列主要是一些外键,可以加快连接的速度
4. 在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的范围是连续的
5. 在经常需要排列的列上创建索引,因为索引已经排序,这样查询可以利用索引的排序,加快排序查询时间。
6. 在经常使用where子句的列上创建索引,加快条件的判断速度。
定义基本表
create table <表名> (<列名> <数据类型> [列级完整性约束条件])
修改基本表
alter table <表名>
[add <新列名> <数据类型> [完整性约束]]
[drop <完整性约束名>]
[modify column <列名> <数据类型>]
删除基本表
drop table <表名> [restrict | cascade]
restrict:该表的删除时有限制的:欲删除的基本表不能被其他表的约束所引用,不能有视图、不能有触发器,不能有存储过程或函数等。如果存在这些依赖该表的对象,则此表不能被删除。
若选择cascade,则该表的删除没有限制条件。在删除该表的同时,相关的依赖对象将一起被删除。
数据查询
select [all|distinct] <目标列表达式> [,<目标列表达式>]…
from <表名或视图名> [,<表名或是视图名>]…
[where <条件表达式>]
[group by <列名1> [having <条件表达式>]]
[order by <列名2> [asc|desc]];