zoukankan      html  css  js  c++  java
  • Oracle笔记1

    ORACLE:

     目前分为12C(cloud云)和11G(grid网格)版本

    --数据库基本概念
    data--数据
    database--数据库
    DBMS--数据库管理系统
    RDBMS--关系型数据库管理系统
    ORDBMS--对象关系型数据库管理系统
    
    --SQL概述
    SQL(Structured query language)结构化查询语言
    
    --SQL 分类
    SELECT --数据库查询语句DQL
    INSERT DELETE UPDATE  MERGE--数据库操作语句DML
    CREATE ALTER DROP TRUNCATE RENAME COMMENT--数据库定义语句DDL
    COMMIT ROLLBACK SAVEPOINT--事物控制语句TCL
    
    --OracloraDb11g_home1INSListener这个是网络监听器的服务,开始才能通过外部访问。
    --OrcalService ORCL:数据库实例服务
    
    --比较运算符: >,>=,<,<=,=,<>,!=,^=
    --特殊运算符:[not]between...end
                [not] like
                [not] in
                is [not] null 
    --多条件使用:and or not 连接
    
    
    
    /*--单行函数练习
        查询与表无关 FROM 后面是 dual*/
    --转小写,大写,单词首字母大写
    select lower('Hello'),upper('Hello'),initcap('Hello evan')
    from dual;
    -------------------------------------------字符串
    --去掉指定字符(去全部,去左边字符,去右边字符)
    select TRIM('H'FROM 'HELLOHH'), ltrim('helloh','h'), rtrim('helloh','h') FROM dual;
    
    --补齐(参数解释:数值,几位数,不够用什么补)输出:*100和100*
    select lpad(100,4,'*'),rpad(100,4,'*')
    from dual;
    
    --查找位置,相当于indexOf,ORCALE的索引从1开始返回7
    select instr('hello tom','tom') from dual;
    
    --substr()//返回llo,ll
    select substr('hello',3), substr('hello', 3, 2)
    from dual;
    
    --连接字符,和求长度
    select concat('hello','evan'),length('abc')
    from dual;
    
    --替换
    select replace('hello','h','a')
    from dual;
    --------------------------------------------number
    --四舍五入[小数点后保留几位小数][小数点前保留几位]
    select round(123.456,2),round(123.456,-2),round(123.45,0), round(123.45)
    from dual;
    
    --去尾数 不进行四舍五入
    select trunc(12.456,2),trunc(12.456,-2),trunc(12.456,0),trunc(12.456)
    from dual;
    
    --取模(求余数)
    select mod(13,2) from dual;
    
    ----------------------------------------date
    --获取当前日期 +2代表加两天或者-2 
    select sysdate +2 from dual;
    --加月份
    select add_months(sysdate,3) from dual;
    --月份范围
    select months_between(sysdate, hiredate)from emp;
    --获取当前月份的最后一天
    select last_day(sysdate)from dual;
    --获取年月日year,month,day
    select extract(day from sysdate)
    FROM dual;
    --计算天数差
    select round(to_number(TO_DATE('2015-07-24','YYYY-MM-DD')-TO_DATE('2015-07-23','YYYY-MM-DD')))from dual;
    --计算小时差
    select round(to_number(TO_DATE('2015-07-24','YYYY-MM-DD')-TO_DATE('2015-07-23','YYYY-MM-DD'))*24)from dual;
    
    ------------------------------------转换函数
    --to_char:将日期或数值按指定格式转换成字符
    select to_char(sysdate,'yyyy-mm-dd HH24:MI:ss DAY')from dual;--hh:mi:ss day星期几
    select to_char(123456)from dual;
    select to_char(105,'L9,999,999.00')from dual;--¥105.00
    
    --to_date:将指定格式的字符串转换为日期
    SELECT TO_DATE('1998-09-02','YYYY-MM-DD')FROM DUAL;
    
    --to_number:字符串转换成数值
    SELECT TO_NUMBER('123')FROM DUAL;
    
    ----------对空值的转换,comm列中空的用0代替
    select ename,nvl(comm,0)from emp;
    -------val2:[comm数据列,不为空用0,为空用1]
    select ename,comm,nvl2(comm,0,1)from emp;
    ----nullif(列名,为空用什么代替)
    
    ---------------------------------分支判断
    ---case练习
    select ename, deptno, sal,
    case
      when deptno=10 then sal+10
      when deptno=20 then sal+20
      else sal end as addsal
    from emp;
    
    ---decode
    select ename, deptno, sal,
    decode(deptno,
           10,sal+10,
           20,sal+20,
           30,sal+30,
           sal)
    from emp;
    
    ---------------------------集合函数
    --max,min,count,sum,avg
    select MAX(hiredate), MIN(hiredate),MAX(sal), MIN(sal)
    from emp;
    select count(*)from emp;
    ------------分组
    --group by 将查询结果按指定列分组  
    --having 指定分组必须要满足的条件
    --非分组列必须包含在group by 中
    select deptno,max(sal),min(sal)
    from emp group by deptno having deptno in (10,20);
    

      

      

  • 相关阅读:
    大神的文章
    分布式锁
    分布式事务
    事务两三事
    spring框架笔记
    三个缓存数据库Redis、Memcache、MongoDB
    面向对象面试题
    SSM面试
    单例模式
    Spring Cloud面试题
  • 原文地址:https://www.cnblogs.com/Evan-Pei/p/4673208.html
Copyright © 2011-2022 走看看