• 组内分享总结


    ---恢复内容开始---

    • 1 select 列数 <= group by 列数 (在select指定的字段要么就要包含在Group By语句的后面,作为分组的依据;要么就要被包含在聚合函数中)
    • 2 避免select *, 相比select 列名1,列名2,列名3......列名n,后者具有的优点有(

                 1)性能上较好,select *需要把*进行转换,而把列名全部列出来省了这一步

                 2)如果后续表字段有增减,在代码上便于修改

    • 3 表关联
    • 表关联包括左联,右联,内联,全外联,非等值连接
    • 左联和右联的效率是低于等值连接的,因为等值连接可以走索引
    • 3.1 left join (左连接):返回包括左表中的所有记录和右表中连接字段相等的记录。
    • 写法:select a.name,b.job from A a  left join B b on a.id=b.A_id 等同于 select a.name,b.job from A a , B b on a.id=b.A_id (+)
    • 3.2 right join (右连接):返回包括右表中的所有记录和左表中连接字段相等的记录。
    • 写法:select a.name,b.job from A a  right join B b on a.id=b.A_id等同于 select a.name,b.job from A a , B b on a.id(+)=b.A_id 
    • 3.3 inner join (等值连接):只返回两个表中连接字段相等的行。
    • 写法:select a.name,b.job from A a  inner join B b on a.id=b.A_id
    • 参见百度上与“select a.name,b.job from A a , B b on a.id=b.A_id”两者区别在于:inner join 先过滤数据在联表查询,而联表是取所有数据再过滤。联表查询相对来说内链接速度稍慢。
    • 自然连接和等值连接
    • 1、自然连接一定是等值连接,但等值连接不一定是自然连接。
      2、等值连接要求相等的分量,不一定是公共属性;而自然连接要求相等的分量必须是公共属性。
      3、等值连接不把重复的属性除去;而自然连接要把重复的属性除去。
    • 4 in/not in里面的数量是有限的(in后括号中的参数个数有限制,Oracle 9i 中个数不能超过256,Oracle 10g个数不能超过1000.),效率低
    •  exists/not exists效率较好,走索引
    • 在Oracle中!=相当于(is not null)+(!=)
    • 5 NVL( string1, replace_with)  如果string1为NULL,则NVL函数返回replace_with的值,否则返回原来的值。
      与SQLserver 中的 ISNULL( string1, replace_with) 一样。
    • NVL2(E1, E2, E3)的功能为:如果E1为NULL,则函数返回E3,若E1不为null,则返回E2。
    •  

      6 update 和 delete操作,先用select再改,不要直接写update ,delete

    • 数据库备份参考https://jingyan.baidu.com/article/f71d603756425a1ab741d17e.html
       

    ---恢复内容结束---

  • 相关阅读:
    VIM 第二天--快捷键
    Vim 第一天
    The Salt Master has cached the public key报错解决办法
    nginx启用TCP反向代理日志配置
    FastDFS数据迁移
    nginx修改上传文件大小限制
    ipv6禁用导致rpcbind服务启动失败解决办法
    ELK之elasticdump迁移es数据
    MySQL+Amoeba实现数据库读写分离
    使用Zabbix监控RabbitMQ消息队列
  • 原文地址:https://www.cnblogs.com/BraveApple/p/9262280.html
Copyright © 2020-2023  润新知