zoukankan      html  css  js  c++  java
  • Oracle数据库基础3-常用函数与技巧

    --1.to_char ()将日期类型转换为字符串类型
    SELECT to_char(t.birthday,'yyyy-mm-dd hh24:mi:ss') 员工生日 FROM t_emp t;--(员工生日是给此列起的别名)
    --2.to_date() 将字符串转换成日期类型
    SELECT to_date('20050314','yyyymmdd') FROM dual;--打印结果为2005/3/14;duai在数据库里为虚拟表,默认一行一列;
    --分组函数(配合group by使用)
    --3.avg()平均数函数
    SELECT t.zhiwei, AVG(t.gongzi) FROM t_emp t GROUP BY t.zhiwei;--先根据zhiwei分组,然后计算每个分组中gongzi列的平均数;
    --4.sum()求和函数
    SELECT t.zhiwei,SUM(t.gongzi) FROM t_emp t GROUP BY t.zhiwei;--先根据职位f分组,然后计算每个分组中gongzi列的总和;
    --5 max() 求最大/函数;min() 求最小函数
    SELECT t.zhiwei,max(t.gongzi),MIN(t.gongzi)FROM t_emp t GROUP BY t.zhiwei;--先根据职位f分组,然后求出每个分组中最大和最小的数;
    --6 count() 计数函数
    SELECT COUNT(1) FROM t_emp;--求表中所有记录条数;count括号里可以写任意数,没有实际意义;
    --7  mod()取余函数, 传两个参数, 前面的对后面的取余;
    SELECT MOD(5,3) FROM dual;--取5除以3的余数;
    --8 decode ()(与case when 相似)
    SELECT t.name,DECODE(t.bumen,10,'人事部',20,'市场部','无此部门') FROM t_emp t;
    --9 substr() 截取字符串,需要传三个参数(需要处理的字符串, 开始索引, 截取几个字符)
    SELECT SUBSTR('abcdef',2,3) FROM dual;--打印结果为'bcd'
    --10 trunc() 取整函数
    SELECT TRUNC(11.4) FROM dual;--打印结果为11
    SELECT TRUNC(sysdate) FROM dual;--打印结果为当前系统时间年月日;
    --11 round() 四舍五入取整 ;ceil() 向上取整函数;floor() 向下取整; 
    SELECT ROUND(12.3452) FROM dual;--打印结果为12.35;传两个(需要处理的数字, 精确到几位)或者一个参数(默认对整数位取整);
    SELECT ceil(12.345) FROM dual;--打印结果为13;
    SELECT floor(12.345) FROM dual;--打印结果为12;
    --12 replace ()替换字符串(传三个参数, 1, 需要处理的字符串, 2, 需要进行替换的部分, 3新的字符串)--translate()类似函数
    SELECT REPLACE('aabbcc','bb','xx') FROM dual;--打印结果为aaxxcc;
    --13 length() 字符串长度
    SELECT LENGTH('aabbcc') FROM dual;--打印结果为6;
    --14 nvl()过滤空值函数;nvl2()
    SELECT NVL(t.jiangjin,0) FROM t_emp t;--查询如果jiangjin列为空值则显示为0
    SELECT NVL2(t.jiangjin,'有此值','没有此值') FROM t_emp t;--与nvl的区别为nvl函数第二个参数, 类型必须跟要判断的参数保持一致,nvl2可以为任意类型;
    --15 lower()字母该小写;upper()字母改大写;
    SELECT LOWER('BBB') FROM dual;--打印结果为bbb;
    SELECT UPPER('aaa') FROM dual;--打印结果为AAA;
    --16 concat()连接两个字符串
    SELECT CONCAT('aaa','bbb')  FROM dual;--打印结果为aaabbb;
    --17 wm_concat()列转行函数(也属于分组函数,纯净版无法用)
    SELECT t.age wm_concat(t.name) FROM t_emp t GROUP BY t.age;--显示分组后该组中全部数据;
    --常用技巧
    --1 查询结果中额外添加一列
    SELECT '额外一列' FROM t_emp t;
    --2.查询不为空的数据
    SELECT t.* FROM t_emp t WHERE t.age IS NOT NULL;
    --3. 添加已存在表的数据
    insert into t_emp(daihao,zhiwei) SELECT t.psw,t.uname FROM t_users t;--从users表中将psw列和uname列的数据添加到emp表中的daihao列和zhiwei列中;需要前后个数类型统一;
    --4.查看其他用户下面的表
    select * from 用户.表名(要拥有DBA角色);
    --5.复制表
    CREATE TABLE emp1 AS SELECT * FROM t_emp;--创建新表emp1并将t_emp表中的所有数据复制到新表中;
    CREATE TABLE emp1 AS SELECT * FROM t_emp WHERE 1=2;--创建一个空表emp1,只拥有t_emp中的列的名字;
    --6.删除表
    DELETE (FROM) 表名;trancate 表名(慎用);
    --6.将excel的表贴到oracle:在excel中选中一部分数据, 需要在第一列前面多选中一列;
    --7.将查询结果导出excel对查询结果全部选中, 右键有copy to excel ;
    --8.序列的创建
    --序列的作用: 一般用来作为一个自增长的主键
    --先在Sequences文件夹新建一个自定义命名序列,如命名为SQ_TEST.调用语句为:
    INSERT INTO t_users(uindex,uname) VALUES (sq_test.nextval,'小明');--每调用一次,主键都会自增长;
  • 相关阅读:
    android touch screen keyboard input移植记录
    共享内存示例代码如下:
    AF
    AF
    etc/fstab的内容是什么意思? 转载
    android 中如何添加新的键值,实现更多功能
    etc/fstab的内容是什么意思? 转载
    IPC框架分析 Binder,Service,Service manager
    共享内存示例代码如下:
    HDU 6125 Free from square (状压DP+分组背包)
  • 原文地址:https://www.cnblogs.com/wyc1991/p/9065362.html
Copyright © 2011-2022 走看看