• 一、Oracle的SQL语句学习


        0.sql的执行顺序
            from .. where .. group by .. having .. select .. rownum ..  order by ..
        1.select的区别:
            select 1+1;    此句在mysql中可以执行,但是在Oracle数据库中不可以使用,
            Oracle必须要补全表名,select 1+1 from dual;(dual是为了补全语法的系统的一个虚表)
        2.别名查询:
            别名查询使用as关键字,可以省略
                select ename 姓名,sal 工资 from emp;
            别名中不能使用特殊字符或关键字,如果有的话就加双引号
                select ename "姓     名",sal 工资 from emp;
        3.去除重复数据:distinct
            去除单列重复数据
                select distinct job from emp;
            去除多列重复数据(每一列都相同才算重复)
                select distinct job, deptno from emp;
        4.空值问题
            null值,代表不确定的、不可预知的内容,不可以做四则运算
                nvl函数:如果参数1为null,就返回参数2
                select sal*12 + nvl(comm,0) from emp;
        5.字符串拼接
            (在oracle中双引号用于表示别名,单引号表示拼接)
            oracle特有的字符串拼接符:||
                select '姓名'||ename from emp;
            函数拼接:concat(str1,str2)
                select concat('姓名',ename) from emp;
        6.转义字符
            使用escape表示转义字符 escape 后面接表示转义字符的符号
                (查询姓名中包含%的员工信息)
                select * from emp where ename like '%/%%' escape '/';
        7.排序
            升序 asc (默认)
            降序 desc
            排序时注意Null问题,默认Null数据排在前面nulls first,使用nulls last 可以使null值排在后面
                select * from emp order by comm desc nulls last;
        8.数值函数
            floor(value) 向下取整
            ceil(value) 向下取整
            round(value,[num]) 四舍五入, num 为精确度
                round(45.926,2) --45.93
                round(45.926,1) --45.9
                round(45.926,0) --46
                round(45.926,-1) --50
                round(45.926,-2) --0
                round(65.926,-2) --100
            trunc(value,[num]) 截断,num为精确度
                trunc(45.926,2) --45.92
                trunc(45.926,1) --45.9
                trunc(45.926,0) --45
                trunc(45.926,-1) --40
                trunc(45.926,-2) --0
                trunc(65.926,-2) --0
            mod(value1,value2) 取余函数 
        9.通用函数
            nvl(参数1,参数2) 如果参数1=null,就返回参数2
            nvl2(参数1,参数2,参数3) 如果参数1=null,就返回参数3,否则返回参数2
            nullif(参数1,参数2) 如果参数1=参数2,就返回null,否则返回参数1
            coalesce(参数1...) 返回第一个不为null的值
        10.条件表达式
            mysql和oracle通用
                case 字段
                    when 值1 thenwhen 值2 thenwhen 值3 thenelse
                        默认值
                    end
            oracle特有
                decode(字段,if1,then1,if2,then2,eles1)
        11.exists(查询语句)
            存在的意思,当作布尔值来处理
                当查询语句有结果时,返回true
                当查询语句没有结果时,返回false
        12.分页查询
            在Oracle中没有分页查询,只能借助子查询来实现分页查询
                查询第6到第10条记录
                select * from (select rownum hanghao,emp.* from emp) tt where tt.hanghao  between 6 and 10;
        13.并集运算
            union:去除重复的,并且进行排序
            union all:不会去除重复的
            列的类型要一致,按照顺序写,结果数量要一致(如果不足用null填充,或者写相同类型的数据填充)
        14.差集运算 minus
  • 相关阅读:
    netty源码深度分析
    《深入探索Netty原理及源码分析》文集小结
    Netty 那些事儿 ——— 心跳机制
    CSS实现单行、多行文本溢出显示省略号(…)
    测试
    PHP 二维数组根据某个字段排序
    PHP生成图片验证码、点击切换实例
    正确设置网站title、keywords、description(转载)
    nginx上支持.htaccess伪静态的配置实例
    百度编辑器Ueditor增加字体的修改方法
  • 原文地址:https://www.cnblogs.com/QQ1171492144/p/10654208.html
Copyright © 2020-2023  润新知