• 002


    --DQL查询语句
    --SELECT语句用来查询表中数据
    --一条SQL语句是由多个子句组成
    --一个句子有一个关键字加一系列内容组成
    --SELECT 语句中必须含有的时两个子句
    --SELECT 子句和 FROM 子句
    --SELECT 子句用于指定要查询的内容(字段,函数,表达式),
    --FROM子句用来指定数据来源的表
    
    select ename,job,sal,deptno
    from emp_coco
    where sal>2500
    --查看每个员工的年薪
    select ename,sal,sal*12
    from emp_coco
    
    --java中的+
    select concat(CONCAT(ename,':'),sal)
    from emp_coco
    --连接字符串常用“||” (常用)
    select ename||':'||sal
    from emp_coco
    --LENGTH函数:字符串长度
    select ename,length(ename)
    from emp_coco
    --名字4个字母的员工
    select ename
    from emp_coco
    where length(ename)=4
    
    --UPPER,LOWER,INITCAP (首字母大写)
    --dual:伪表,当查询的内容不是任何表中数据时,可以用伪表代替
    select upper('helloworld'),
           lower('HELLOWORLD'),
           initcap('hello world')
    from dual
    --举例
    select ename,sal,deptno
    from emp_coco
    where ename=upper('scott')
    
    -- TRIM,LTRIM,RTRIM
    去除字符串两侧的指定字符
    select trim('e' from 'eeeliteee')
    from dual
    --只要包含就去除
    select ltrim('etsettsetsliteee','ets')
    from dual
    select rtrim('eeelitetssteetts','ets')
    from dual
    
    --LPAD,RPAD 补位函数(用于左右对齐),实际长度多了就截取,截取都是从左向右
    select ename,rpad(sal,3,' ')
    from emp_coco
    select ename,lpad(sal,6,' ')
    from emp_coco
    --数据库下标都是从1开始的!(不同于java)
    --SUBSTR 截取字符串函数(不同于java中的sub)
    --substr(str,m,n) 截取字符串从m处开始,连续截取n个字符。
    --substr(srt,m) 省略截取数量,或超量,实际截取内容都是到末尾
    select substr('thinking in java',1,2)
    from dual
    select substr('thinkingin java',10)
    from dual
    select substr('thinking in java',-7,2)
    from dual
    --INSTR:查看字符串的位置
    --Instr(str1,str2,m,n) 查找str2在str1中的位置 
    --m,n是可选项,分别表示:
    --m 从第几个字符开始查找 
    --n:第几次出现位置
    select instr('thinking in java','in',4,2)
    from dual
    
    --数字函数
    --ROUND(m,n):四舍五入,保留m到小数点后n位
    --n为0或不指定这时保留到整数
    --n为负数这是保留到小数点前的位数
    select round(45.678,2) from dual
    select round(45.678,0) from dual
    select round(45.678,-1) from dual
    --TRUNC(m,n):截取数字
    --参数作用于ROUND一致
    select trunc(45.678,2) from dual
    select trunc(45.678,0) from dual
    select trunc(45.678,-1) from dual
    --MOD(m,n):求余
    select ename,sal,mod(sal,1000)
    from emp_coco
    --CEIL,FLOOR:向上取整,向下取整
    select ceil(45.678) from dual
    select floor(45.678) from dual
    
    --日期相关操作
    --SYSDATE:对应数据库一个内置函数,
    --返回一个DATE类型的值,该值表示当前系统时间
    --SYSTIMESTAMP:返回当前系统时间的时间戳类型的值
    select sysdate from dual
    select systimestamp from dual
    --日期转换函数
    --TO_DATE()可以将一个字符串按照给定的日期格式解析为一个DATE类型的值
    select to_date('2009-08-08 20:08:05','yyyy-mm-dd hh24:mi:ss')
    from dual
    --日期格式字符串中凡不是英文,符号,数字之外的其他字符要是用双引号括起来
    select to_date('2008年08月08日 20:08:05','yyyy"年"mm"月"dd"日" hh24:mi:ss')
    from dual
    select sysdate from dual
    --TO_CHAR():
    --将日期按照指定的格式转换为字符串
    select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss')
    from dual
    --日期类型可以比大小,越晚的越大
    --日期类型之间可以进行减法,差为相差的天数
    --日期可以进行减加数字,等于加减天数
    --查看每个员工入职至今多少天
    select ename,sysdate-hiredate
    from emp_coco
    --至今活了多少天
    select trunc(sysdate-to_date('1990-09-23','yyyy-mm-dd'))
    from dual
    --RR-MM-DD
    select to_char(to_date('49-08-01','RR-mm-dd'),'yyyy-mm-dd')
    from dual
    --LAST_DAY(date) 查看给定日期所在月的月底
    select last_day(sysdate)
    from dual
    --ADD_MONTHS(date,i) 
    --对给定日期加上指定的月,若i为负数,则是减去
    select ename,add_months(hiredate,20*12)
    from emp_coco
    --MONTHS_BETWEEN(date1,date2)
    --计算两个日期之间相差的月,计算是用date1-date2换算得到的
    select ename,months_between(sysdate,hiredate)
    from emp_coco
    --NEXT_DAY(date,i)
    --返回给定日期第二天开始一周内的周几的日期
    --i表示周几:1为周日,2为周一
    select next_day(sysdate,6)
    from dual
    
    --LEAST,GREATEST 求最小值与最大值 参数最少一个
    select least(sysdate,to_date('2008-10-10','yyyy-mm-dd'))
    from dual
    select greatest(sysdate,to_date('2008-10-10','yyyy-mm-dd'))
    from dual
    --EXTRACT函数:
    --提取指定日期中指定时间分量的值
    --date可以提取年月日,时间戳还可以提取时分秒
    select extract(year from sysdate)
    from dual
    --82年入职员工
    select ename,sal,hiredate
    from emp_coco
    where extract(year from hiredate)=1982
    
    create table student_coco1(
    id number(4),
    name char(20),
    gender char(1)
    )
    select * from student_coco1
    insert into student_coco1
    values(1000,'李莫愁','f')
    insert into student_coco1
    values(1001,'林平之',null)
    insert into student_coco1
    (id,name)
    values(1002,'张无忌')
    update student_coco1
    set gender=null
    where id=1000
    --在判断某个字段的值是否为空时,要使用is null和is not null判断
    --不能用等号“=”判断为空
    update student_coco1
    set gender='m'
    where gender is null
    --null的操作
    --null与字符串连接,等于什么都没做
    --null与数字计算,结果还是null
    select ename,sal,comm,sal+comm
    from emp_coco
    --空值函数 NVL(a1,a2)
    --若a1为null则函数返回a2,否则返回a1自身
    --所以该函数的作用是将null值替换为非null值
    select ename,sal,comm,sal+nvl(comm,0)
    from emp_coco
    --若该员工有奖金,则显示为“有奖金”,若奖金为null,则显示“没有奖金”
    --NVL2(a1,a2,a3)
    --当a1不为null时, 函数返回a2
    --当a1为null时,函数返回a3
    select ename,comm,nvl2(comm,'有奖金','没有奖金')
    from emp_coco
    --NVL2可以实现NVL功能的
    select ename,sal,comm,nvl2(comm,sal+comm,sal)
    from emp_coco
  • 相关阅读:
    flv网页视频播放
    Select显示多级分类列表
    DateTime获取一个月的第一天和最后一天
    服务器不装Excel读取Excel并转换DataTable
    ScriptX使用
    CheckBoxList 全选(jquery版本)
    div绝对定位针对手机浏览器的区别
    JAVA 基础编程练习题22 【程序 22 递归求阶乘】
    JAVA 基础编程练习题21 【程序 21 求阶乘】
    JAVA 基础编程练习题20 【程序 20 求前 20 项之和】
  • 原文地址:https://www.cnblogs.com/wangyuyanhello/p/8940895.html
Copyright © 2020-2023  润新知