zoukankan      html  css  js  c++  java
  • 一、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
  • 相关阅读:
    2021年1月1日 AutoCAD.Net/C#.Net QQ群:193522571 按顺序等距排列平行直线
    2021年1月1日 AutoCAD.Net/C#.Net QQ群:193522571GS标记子实体
    2021年1月1日 AutoCAD.Net/C#.Net QQ群:193522571获取和修改摘要信息
    2021年1月1日 AutoCAD.Net/C#.Net QQ群:193522571长事务
    2021年1月1日 AutoCAD.Net/C#.Net QQ群:193522571按表走呵呵!(延时死循环)
    2021年1月1日 AutoCAD.Net/C#.Net QQ群:193522571修改多段线的凸度
    2021年1月1日 AutoCAD.Net/C#.Net QQ群:193522571临时反应器的简单应用
    2021年1月1日 AutoCAD.Net/C#.Net QQ群:193522571自创实体类从AcDbCurve派生,实现一些类方法并动态绘制
    2021年1月1日 AutoCAD.Net/C#.Net QQ群:193522571多段线动态切割闭合区域
    动态块
  • 原文地址:https://www.cnblogs.com/QQ1171492144/p/10654208.html
Copyright © 2011-2022 走看看