【Oracle】学习总结

  • sqlplus命令
    (问题)问题:输入sql命令后不显示结果

    (灯泡亮)回答:请输入完整的sql语句:SELECT * FROM table;
  • 用户管理
  • 表的创建和管理(星星)(星星)(星星)
  • oracle单引号、双引号区别(OTL编程时不注意会经常犯错) 
     双引号是在创建表中用来区分大小写的,而单引号是用来表示一段字符串、转义或者自身

  • 序列(星星)

  • Oracle中的5种约束条件(非空约束、唯一约束、主键约束、外键约束、check约束) (星星)(星星)(星星)

  • 事务commit/rollback(星星)(星星)

    用户A在对表进行修改,但未进行COMMIT之前,其他用户可以SELECT数据表(非用户A修改的数据),但是对表进行编辑操作时会处于等待状态,等待用户ACOMMIT操作后去执行

    数据变更执行COMMIT后,无法通过ROLLBACK回滚数据。

  • 简单查询(星星)(星星)(星星)
  • 限定查询 (星星)(星星)(星星)
    (问题)问题:为什么在IN可以使用NULL,而NOT IN使用NULL会找不到数据?

    (灯泡亮)回答:NOT IN(NULL)相当于 !=null
  • 函数 (星星)(星星)(星星)
    (红色星星)部分函数还是记不住要多看看! 
    (问题)问题:怎么在oracle中输入自己想要的数据?
    (灯泡亮)回答:&变量

  • 多表查询(星星)(星星)(星星)
    (问题)问题:怎样会产生笛卡儿积?

    (灯泡亮)回答:sporter表有6条数据,item表有5条数据。如果我们查询俩张表,那么这俩张表的数据就俩俩结合,形成6*5条数据


    (问题)问题:怎样消除笛卡儿积?
    (灯泡亮)回答:使用关联字段。但要注意的是,虽然消除了笛卡儿积,但笛卡儿积依然存在。
    (问题)问题:内链接、左链接、右链接、全外链接的区别。

    (灯泡亮)回答:内链接:组合两个表中的记录,返回关联字段相符的记录(inner join 或select语句都是内连接)



    左链接:左表(a_table)的记录将会全部表示出来,而右表(b_table)只会显示符合搜索条件的记录。右表记录不足的地方均为NULL


    右链接:左表(a_table)只会显示符合搜索条件的记录,而右表(b_table)的记录将会全部表示出来。左表记录不足的地方均为NULL


    全链接:将所有记录都显示出来,仅支持语法:FULL JOIN
    (问题)问题:UNION和UNION ALL的区别。
    (灯泡亮)回答:UNION链接俩张相同的表并去除重复数据;UNION ALL链接俩张表但不会去除重复数据,即显示全部数据

    • 分组统计查询2019-9-4 ~2019-9-5 (星星)(星星)(星星)
      (问题)问题:count(*)和count(字段)有什么区别?
      (灯泡亮)回答:count(*)是统计所有的数据,count(字段)是不会统计为NULL的数据
      (问题)问题:WHERE和HAVING有什么区别?
      (灯泡亮)回答:WHERE实在GROUP BY之前使用,HAVING是在GROUP BY之后过滤的(HAVING必须和GROUP BY一起出现)。

      (警告)统计函数注意点:
      1、统计函数单独使用时(没有GROUP BY子句)只能够出现统计函数,不能够出现其他字段

      2、使用统计查询时(存在GROUP BY子句),SELECT子句之中只允许出现统计函数与分组字段,其他任何字段都不允许出现

      3、统计函数在分组之中可以嵌套使用,但是嵌套之后的统计查询之中,SELECT子句不允许在出现任何的字段,包括分组字段

    • 子查询 (星星)(星星)(星星)
      (红色星星)IN、NOT IN、ANY、ALL
    • 数据库更新 (星星)(星星)(星星)
    • 俩个数据伪列 (星星)(星星)
    • 视图  (星星)(星星)(星星)
    • 索引(星星)(星星)
    • 同义词 (星星)
    • Oracle PL/SQL使用 
    • 系统日期&系统时间  
    • 存储过程 
    • 触发器

猜你喜欢

转载自www.cnblogs.com/CSgarcia/p/11586230.html