组内分享总结

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

  • 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
     

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

转载于:https://www.cnblogs.com/BraveApple/p/9262280.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值