SQL基础2

1.索引

    系统根据某种算法,将已有的数据(未来可能新增的数据)单独建立一个文件,这个文件能够实现快速的匹配数据,并且能够快速的找到对应的表中的记录。

     主键是聚合索引。

2.索引特点:

    加快查询速度,但是删除、插入速度会减慢。

    如果给表上了主键,那么表在磁盘上的存储结构就由整齐排列的结构转变成了树状结构,也就是上面说的「平衡树」结构,换句话说,就是整个表就变成了一个索引。没错, 再说一遍, 整个表变成了一个索引,也就是所谓的「聚集索引」。

    如果把这张表转换成平衡树结构(一棵非常茂盛和节点非常多的树),假设这棵树有10层,那么只需要10次IO开销就能查找到所需要的数据, 速度以指数级别提升

    增删改数据都会改变平衡树各节点中的索引数据内容,破坏树结构, 因此,在每次数据改变时, DBMS必须去重新梳理树(索引)的结构以确保它的正确,这会带来不小的性能开销,也就是为什么索引会给查询以外的操作带来副作用的原因。

3.索引相关命令

    创建索引:create index index_birthday on user_info(birthday);

  如果没有索引,该查询执行全表扫描,可以通过explain语句查询执行过程展示扫描rows; EXPLAIN select * from vip_broadcastor where employ_id='D0290BB581054CE7A94404E807BA3CC0';加上索引只扫描一行

 

查询索引:

 

4.where查询

    判断条件:

    比较运算符:>, <, >=, !=, <>, =, like, between and, in, not in。

    逻辑运算符:&&(and),||(or), !(not)

   

    在SQL中分组是为了统计数据,SQL提供了一系列统计函数供我们使用。

       1 )      Count(): 统计分组后的记录数,每一组有多少记录

       2)      Max(): 统计每组中最大值

      3)      Min(): 统计最小值

      4)      Avg(): 统计平均值。

      5)      Sum(): 统计和

     基本语法:group by 字段[ase 或者 desc];desc降序

 

5.查询模板

    select 选项,字段别名,数据源(单表,多表和子查询[别名]),where字句(条件判断:从磁盘上开始),group by 字句(分组统计,统计函数,分组排序,多字段分组),having子句(判断结果,针对分组统计结果),order by字句(排序,多字段排序),limit 子句(限制记录数,分页操作

 

6.连接查询:

    将多张表(可以大于2张表)进行记录的连接(按照某个指定的条件进行数据拼接):最终的结果是:字段数一定会增加,记录数有可能变化。连接查询的意义:在用户查看数据的时候,需要显示数据来自多张表。

内连接:

    内连接:[inner] join,从左表中取出每一条记录,去右表中与所有的记录进行匹配,匹配必须是某个条件在左表中与右表中相同最终才会保留结果,否则不保留。

外链接:

外连接分两种情况,是以某张表为主,有主表。当以左表为主表,这个叫left join,左外连接,我们习惯简称左连接;当以右表为主表,这个叫right join,右外连接,同样,简称右连接。 

7。存储过程 

         SQL语句需要先编译然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中。

       ◆优点:
  执行速度更快。存储过程只在创造时进行编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程执行速度更快。
  存储过程用于处理复杂的操作时,程序的可读性更强、网络的负担更小。
  使用存储过程封装事务性能更佳。
  能有效的放注入,安全性更好。
  可维护性高,在一些业务规则发生变化时,有时只需调整存储过程即可,而不用改动和重编辑程序。
  更好的代码重用。
  ◆ 缺点:
  存储过程将给服务器带来额外的压力。
   存储过程多多时维护比较困难。
  移植性差,在升级到不同的数据库时比较困难。
  调试麻烦,SQL语言的处理功能简单

 

 

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值