• 数据库学习 索引 查询等


    1.索引:是一个单独的物理的数据库结构,他是某个表中一列火多列值的集合。和相应的指向表中物理标识这些值的数据页的逻辑指针清单,

    查询时,第一种是全局搜索,将表中所有数据取出,进行对比,返回满足条件的记录,这样会消耗大量的数据库时间,第二种就是建立索引,索引就好像一本书的目录,能够加速查询的速度。通过索引找到符合条件的索引值,最后通过保存在索引中的ROWID相当于页码,快速找到对应的记录。索引在查询时比较快 但在修改插入时慢,每次插入时先插入到表中,在把数据插入到索引中,如果有5个索引,那么就要维护这5个索引。

    索引有 主键索引,唯一索引 聚集索引

    唯一索引:不允许任何两行具有相同索引值的索引 比如 在员工表中,姓列上创建索引 那么此表中不能有相同姓的员工,可以为空

    主键索引:是唯一索引的一种特定类型,主键索引是主键创建后自动生成的,不能为空,他要求主键列的每个值都唯一

    聚集索引:聚集索引确定表中的物理顺序,例如,字典按字母顺序排序,读者知道字母的读音可以根据字母顺序快速定位,因此聚集索引和表的内容在一起的。

    2.where 1=1 这个条件始终为true,例如select * from table 和select * from table where 1=1没有区别,其目的就是使得where条件都为true。在查询条件数量不确定的情况下,加上where 1=1很方便规范语句。防止where后面第一个词就是and而导致语法错误,如果不加 就要在每一个不为空的条件后面,都必须判断有没有where字句,哪里改嫁and/or.

    例如:

    select * from table where1=1;

      if( condition 1) {
      sql=sql+"  and  var2=value2";
    }

     if(condition 2) {
      sql=sql+"  and var3=value3";
    }

    不加时: select * from table_name where and var2=value2;

    3.分组查询

    HAVING子句的用途

        查询每个部门中, 1 982年以后入职的员工超过2个人的部门编号

    SELECT deptno FROM t_emp
    WHERE hiredate>="1982-01-01"
    GROUP BY deptno HAVING COUNT(*)>=2;
    ORDER BY deptno ASC;
     

  • 相关阅读:
    详解配置代理和IP设置的含义
    LiveNVR监控流媒体Onvif/RTSP功能-Onvif 发现以及探测通过ONVIF添加摄像头监控直播及云台控制
    【分布式】入门级NCCL多机并行实践 - 02
    JSP上传文件 2
    电脑格式化后文件还能恢复吗?
    linux 挂载磁盘 普通用户读写 --chatGPT
    TSINGSEE青犀视频:城市道路积水智能监管,智慧城市的守护者
    代码随想录 | Day 59 - LeetCode 503. 下一个更大元素II、LeetCode 42. 接雨水
    雷达电子战的基本内容 (02)
    意向客户的信息获取到底是怎样的,快来get一下
  • 原文地址:https://blog.csdn.net/lmm_666/article/details/125404350