• oracle学习篇二:常用SQL


    ------------------------1.简单的SQL查询--------------------------
    select * from emp;
    select empno,ename,job from emp;
    select '编号是:'|| empno || ' 名称是:'|| ename from emp;
    select distinct empno ,ename from emp;
    select empno,ename,job,sal*100 income from emp;

    ------------------------2.限定查询--------------------------
    select * from emp where sal>2000;
    select * from emp where not(sal>2000);
    select * from emp where mgr is not null;
    select * from emp where sal between 0 and 1000;
    select * from emp where sal in(800,900);
    select * from emp where sal not in(800,900);
    select * from emp where sal >1000;
    select * from emp where sal <>100;
    select * from emp where ename like 'SCO%';

    ------------------------3.排序------------------------------
    select * from emp order by sal asc;--升序
    select * from emp order by sal desc,Hiredate asc;--按sal进行降序,如果sal相同则安排hiredate的早晚排序

    ------------------------4.单行函数------------------------------
    --1.>字符函数:专门处理字符

    --大小写转换
    select * from emp where ename=upper('allen');
    select lower(ename) from emp;
    --首字母大写。
    select empno,initcap(ename) from emp;
    select initcap('hello,world') from dual;
    --字符串截取
    select substr(ename,1,2) from emp;--截取前两位
    select substr(ename,0,2) from emp--0/1开始都一样
    select substr(ename,length(ename)-2) from emp;--字符最后两位
    --字符长度
    select length(ename) from emp;
    --字符替换
    select replace(ename,'S','5') from emp;


    --2.>数值函数

    --四舍五入
    select round(9.536) from dual;--10
    select round(9.536,2) from dual;--9.54

    --截断小数点,直接截取,不做四舍五入
    select trunc(9.536) from dual;--9
    select trunc(9.536,2) from dual;--9.53

    --取余
    select mod(10,3) from dual;--1

    ---3>.日期函数
    select sysdate from dual;
    select sysdate-1 from dual;
    select * from emp;
    --查询10部入职的星期数
    select empno,ename,round((sysdate-hiredate)/7)week from emp;
    ---3.1 MONTHS_BETWEEN() 求两个日期之间的月数。
    select round(months_between(sysdate,hiredate)) from emp;

    ---3.2 ADD_MONTHS() 在指定日期,上加月数
    select add_months(sysdate,1) from dual;

    ---3.3 NEXT_DAY() 下一个今天是什么日期
    select next_day(sysdate,'星期六') from dual;--从今天开始,找下一个星期六

    ---3.4 LAST_DAY() 求出给定日期的最后一天
    select last_day(sysdate) from dual;--当前月最后一天

    ---4>.转换函数

    --4.1 to_char转换字符
    select empno,ename,to_char(hiredate,'yyyy-mm-dd') d from emp;--2016-06-18
    select empno,ename,to_char(hiredate,'fmyyyy-mm-dd') d from emp;--2016-6-18,fm去掉年月日前的0;
    select empno,ename,to_char(sal,'999,90.00') from emp;--对数值格式化
    select empno,ename,to_char(sal,'$999,90.00') from emp;
    select empno,ename,to_char(sal,'L999,90.00') from emp;--对数值格式化,L表示,本地币种
    --4.2 to_number 转换数值
    select to_number('123') + to_number('123') from dual;--246
    --4.3 to_date 转换日期
    select to_date('2016-06-18','yyyy-mm-dd') d from dual;

    ---5>.通用函数
    select ename,nvl(comm*2,0) from emp;--将空值变为指定内容(0).
    select decode(3,1,'aa',2,'bb',3,'cc') from dual;--cc 类似if.. elseif.. else
    select empno 编号,ename 姓名,decode(job,'CLERK,','业务员','SALESMAN','销售人员','ANALYST','分析员','MANAGER','经理','PRESIDENT','总裁')职位 from emp;

  • 相关阅读:
    切换node版本
    vue 移动端组件
    vue 单元测试
    git
    每日日报
    每日日报
    每日日报
    01人月神话阅读笔记之三
    每日日报
    每日日报
  • 原文地址:https://www.cnblogs.com/brant/p/5596139.html
Copyright © 2020-2023  润新知