数据库SQL
1,where和having的区别
“Where” 是一个约束声明,是在查询结果集返回之前约束来自数据库的数据,且Where中不能使用聚合函数。
“Having”是一个过滤声明,是在查询结果集返回以后对查询结果进行的过滤操作,在Having中可以使用聚合函数。
2,索引优缺点
索引主要分为四种:普通索引、主键、唯一索引、复合索引
建立索引的优点:
1、索引能够提高数据检索的效率,降低数据库的IO成本。
2、通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性,创建唯一索引
3、在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间
4、加速两个表之间的连接,一般是在外键上创建索引
建立索引的缺点:
1、需要占用物理空间,建立的索引越多需要的空间越大
2、创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加
一般需要建立索引的字段
1、经常用在where语句之后的字段
2、主键或者外键
3、字段具有唯一性的时候建立唯一性索引
4、在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的范围是连续的
3,事务特点
原子性 (atomicity):强调事务的不可分割.
一致性 (consistency):事务的执行的前后数据的完整性保持一致.
隔离性 (isolation):一个事务执行的过程中,不应该受到其他事务的干扰
持久性(durability) :事务一旦结束,数据就持久到数据库,
4,左连接右连接
- 左连接
- 右链接
- 左连接不包括内连接
- 内连接
- 全连接
- 右链接不包括内连接
- 外连接不包括内连接