• Oracle学习笔记1


    oracle数据库的市场份额大,属于大中型数据库,安全性强,稳定性强,多用户,分布式支持力度大,可以移植,兼容性好;

    oracle数据库是一个关系型数据库,它与mysql数据库有很多不同的地方。

    在oracle数据库中,数据类型,常用的有:

    1.字符串型

      定长字符串:char(长度)最多存储2000字符

      可变字符串:varchar2() 最多存储4000字符

    2.数字类型

      Number(M,N)M:总长度,N:小数位数

    3.日期类型

      Date:日期类型:世纪,年月日时分秒 7字节

      Timestamp:精确秒具体到6位

    4.大对象

      CLOB:c:字符;4G

      BLOB:B:二进制

    --1. 在mysql中,我们可以使用select 1;这句sql语句时可以查到结果的,但是在oracle中,这是一个不完整的sql语句,不能被执行,
    select 1 from dual; --因此有一个虚拟的表用来补充代码的完整性
    
    --2. 在mysql中,建表时可以设置主键自增,但是在oracle中,没有这个功能,但是相对的oracle有序列,可以通过序列实现mysql中的自增效果
    create sequence seq1 --创建一个名为seq1的序列
      start with 1  --起始值为1
      increment by 1 --每次自增数字为1
      maxvalue 100 --最大值
      cycle; --循环
    -- 正常情况新建序列只写前两条就够了, 其他的都是用默认的值就可以,查询序列的值
    select seq1.nextval from dual; --查询下一个值
    select seq1.currval from dual; --查询序列当前的值
    --序列的具体用法
    insert into emp (empno, ename) VALUES (seq1.nextval,'张三');
    
    -- 3.在mysql中分页查询使用的时limit来查询,但是在oracle中没有limit,在oracle中使用分页查询需要用到伪列rownum
    select rownum,e.* from emp e where rownum <=10;
    --可以看到每一行前都有个行号,但是这个行号是变化的,当读取到一个数据时,就给这个数据的行号赋值,因此不能同通过>来取值
    --接下来的这句语句是错误的,因为执行时,会判断条件,如果条件满足,搜索到数据,就给数据行号,因此rownum初始值为0,0>1,条件不满足,找不到数据
    select rownum,e.* from emp e where rownum>1 and rownum <=10; --错误的sql语句
    --在oracle中正确的分页要好好的利用伪列,既然伪列是虚拟的,那么就把它实例化了,正确的分页语句如下
    select * from (select rownum r,e.* from emp e where rownum<=10) e where e.r>5;
    --上面语句的解释为先查询一个有位列的表,然后给位列起个别名,将这个有位列的表作为数据表来根据r的值做判断
    
    --不相关子查询,在之前的语句中,都是先查询条件中的sql语句,然后在执行父类的sql语句,即子类的sql语句单独拿出来也能运行,
    --这种sql语句叫做不相关子查询,执行顺序是先子后父,如下
    select * from emp where empno in (select mgr from emp);
    --相关子查询,是先执行父查询,再执行子查询,单独执行子查询是错误的,如下
    select * from emp e where exists(select * from emp e2 where e.empno=e2.mgr);
  • 相关阅读:
    UVa 10213
    树莓派学习路程No.2 GPIO功能初识 wiringPi安装
    树莓派学习路程No.1 树莓派系统安装与登录 更换软件源 配置wifi
    《软件工程》 的课程总结附加题。
    软件工程《个人总结》
    Java super关键字活用
    软件工程:黄金G点小游戏1.0
    Android之获取数据库路径
    Android自定义折线图
    软件工程:vs单元测试
  • 原文地址:https://www.cnblogs.com/Zs-book1/p/11209929.html
Copyright © 2020-2023  润新知