数据库总结

一、基础语法

5.select distinct id,name
1.from student as s join teacher as t on s.id=t.id  
2.where name is not null and name like '%王'
3.group by id,sex 
4.having count(*)>0
6.order by id desc
7.limit 0,5

二、关联查询

1.笛卡尔积

select * from student s,teacher t where s.id=t.id

2.内连接

select * from student s join teacher t on s.id=t.id

3.外连接

select * from student s left join teacher t on s.id=t.id

三、子查询

1.运算符in和exists对比

in是要结果集中存在就为true

exists判断某个子查询是否有结果集

2.all和any

all表示所有都满足 返回true

any表示任意一个满足 返回true

-- 表示含义是:age>all(子查询),表示age大于all子查询结果集中的所有成绩
select * from student s1 
where s1.age>all(
	select yuwen from student s2 where s2.best_friend=s1.id
)

四、SQL优化

SQL优化主要是针对查询语句,目的是提供查询效率。

除了SELECT语句之外,查询的调优技术也适用于诸如CREATE TABLE ..... AS SELECTINSERT INTO......SELECT、和DELETE.....WHERE语句中

主要理念有:

  • 首先检查是否可以添加索引,提高查询效率
  • 隔离和调优查询的任何部分,比如函数的应用次数
  • 最小化全表扫描的数量
  • 优化锁的问题
  • 调整MySQL用于缓存的内存区域
  • 多使用EXPLAIN

where条件优化

  • 删除多余小括号
  • 优化查询条件
  • 简单条件写前面

五、索引

  • 概述

    索引是建立在表的一列或多列上的辅助对象。可以加快对表的访问速率。

  • 作用

    提高查询效率。但降低了增删改的效率。

  • 索引的创建和删除

    CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX 索引名称
    USING {BTREE | HASH}
    on(哪些列)
    
    DROP INDEX 索引名称 ON 表名;
    

    适用索引情况

    • 主键自动建立唯一索引;

    • 经常作为查询条件在WHERE或者ORDER BY 语句中出现的列要建立索引;

    • 作为排序的列要建立索引;

    • 查询中与其他表关联的字段,外键关系建立索引;

    • 高并发条件下倾向组合索引;

    不适用索引情况

    • 经常增删改的列不要建立索引;
    • 有大量重复的列不建立索引;
    • 表记录太少不要建立索引;

六、事务

四大特征

  • 原子性(Atomicity)

    事务中的SQL要么都执行,要么就都不执行。不可分割。

  • 一致性(Consistency)

    SQL执行完后,事务提交前和提交后效果应该一致。如保证事务提交后,数据不会违反约束。

  • 隔离性(Isolation)

    多个事务之间应该相互不影响。

  • 持久性(Durability)

    一个事务一旦提交,它对数据库中数据的改变就应该是永久性的

四种事务隔离级别

  • 读未提交

    发生脏读

  • 读已提交(oracle、SqlServer等默认隔离级别)

    解决脏读;发生 不可重复读

  • 可重复读

    解决 不可重复读;发生 幻影读

  • 可串行化

    解决 幻影读

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值