设为首页 收藏本站
查看: 1054|回复: 0

[经验分享] oracle ocp 学习day3总结(sql基础)

[复制链接]

尚未签到

发表于 2018-9-8 10:18:06 | 显示全部楼层 |阅读模式
  一、组函数(Group Functions)
  1、max/min:对数字,字符,日期取最大/最小
  内置操作:先排序后取大/小,在数据库中排序是非常消耗资源的
  2、count:计数
  select count(*) from table  等同于  select count(1) from table
  select count(字段) from table  --若字段中有空值则不计数,
  3、avg:求平均值
  --如有3条记录,其中记录3为空值,则计算为(记录1+记录2)/2,忽略了记录3
  select avg(commission_pct) from employees;
  --实际应用场景中需将空值转为可计算的值,如下
  select avg(nvl(commission_pct,0)) from employees;
  4、sum:求和
  5、stddev:求标准偏差
  6、variance:方差
  以上6种函数是对整个表分组,且不计算空值,可嵌套使用
  select max(avg(salary)) from employees group by department_id
  7、group by:将表分成更小的组
  7.1:可跟排序一起用
  select department_id,avg(salary)
  from employees
  group by department_id
  order by avg(salary)
  7.2:若group by后跟多个列,从左至右依次分组
  7.3:having之前的语句查出新的表,再用having对新表实现过滤
  select department_id,avg(salary) from employees
  group by department_id
  having avg(salary) > 5000
  7.4:
  where在group by之前,having在group by之后
  where和having后,不要用别名
  -----------------------------------------------------------------------------
  二、连接(Joins)
  主键:能标识唯一的一行,但主键不一定只有一列
  外键:存在约束
  连接时,用小表去驱动大表(即小表写在左边),减少消耗
  1、自然连接(Natural Joins):
  隐式的关联(关联的字段名必须一致),不建议写
  2、内连接(Inter Joins)
  2.1:等值连接
  2.2:非等值连接
  3、自连接(Self-join)
  4、外连接(Outer Join)
  4.1:左外连接(将左边表全部列出,右边表无匹配行则自动补空值)
  4.2:右外连接(同上反之)
  4.3:全连接(Full Outer Join,没匹配的也全列出来)
  5、交叉连接(Cross Join):即迪卡尔积
  返回行数为两张表行数的乘积
  -----------------------------------------------------------------------------
  三、子查询(Subquery)
  子查询能查需排除空值,因为空值不能比较
  --not in:all,与空值进行比较,故查不到记录
  select last_name from HR.EMPLOYEES where
  employee_id not in (select manager_id from HR.EMPLOYEES);
  --in:=any,允许空值,响应查得到记录
  select last_name from HR.EMPLOYEES where
  employee_id in (select manager_id from HR.EMPLOYEES);
  in/not in:判断单列值
  exists/not exists:判断行(即记录)
  -----------------------------------------------------------------------
  四、集合运算符(Set Operators)
  1、union/union all(内置有排序)
  union去掉重复值,union all包含重复值
  空值会被保留下来
  比较的多张表,字段类型要一致
  注:
  join:实际是为了过滤值,将两张表符合条件的记录产生一个记录集
  union:实际是为了取集合,将两个记录集并在一起
  2、intersect:取公共部分记录
  3、minus:取(左边表记录减去公共部分记录)
  -----------------------------------------------------------------------------
  五、insert,update,delete
  1、插入空值两种方法
  insert table values ('aaa',NULL)
  insert table values ('aaa','')
  注:
  delete与truncate
  truncate做的是定义的修改,产生的日志很少
  delete删除是一行行删除
  -----------------------------------------------------------------------------
  六、小谈事务
  1、隐式提交(Implicit Commit):
  DDL会触发事务提交:如果在一堆DML语句中误写了一条DDL语句,则默认commit
  正常关闭窗口会触发事务提交,而异常关闭窗口,触发回滚(rollback)
  2、显示提交(Explicit Submit):
  commit
  3、
  设置还原点:
  savepoint A
  回到还原点:
  rollback to A


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-567750-1-1.html 上篇帖子: oracle10g_rhel5安装流程 下篇帖子: oracle ocp 学习day4总结(对象的基本操作)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表