• oracle学习笔记系列------oracle 基本操作之基本函数的用法


    --创建一个accout账户表 
    CREATE TABLE account(
      id NUMBER(9) NOT NULL,
      recommender_id NUMBER(9),
      login_name VARCHAR2(30) NOT NULL,
      login_passwd VARCHAR2(8) NOT NULL,
      status CHAR(1) NOT NULL,
      create_date DATE DEFAULT SYSDATE,  
      pause_date DATE,
      close_date DATE,
      real_name VARCHAR2(20) NOT NULL,
      idcard_no CHAR(18) NOT NULL,
      birthdate DATE,
      gender CHAR(1) NOT NULL,
      occupation VARCHAR2(50),
      telephone VARCHAR2(15) NOT NULL,
      email VARCHAR2(50),
      mailaddress VARCHAR2(50),
      zipcode CHAR(6),
      qq VARCHAR2(15),
      last_login_time DATE,
      last_login_ip VARCHAR2(15)
    );
    --表重命名
    RENAME account TO t_account;
    --增加一列
    desc t_account;
    ALTER TABLE t_account ADD(bak VARCHAR2(50)); 
    desc t_account;
    --修改默认值
    ALTER TABLE t_account MODIFY(bak VARCHAR2(40) DEFAULT 'login');
    desc t_account;
    --删除
    ALTER TABLE t_account DROP(bak);
    desc t_account;
    --插入数据
    INSERT INTO t_account(id,login_name,login_passwd,status,create_date,real_name,gender,idcard_no,telephone)
                   VALUES(1,'souvc','123456','1',TO_DATE('2016-01-28','yyyy-mm-dd'),'daliu','F','410381194302256523','13669251234');

    SELECT * FROM t_account ;
    --更新表数据
    UPDATE t_account
    SET login_passwd='654321'
    WHERE id=1;
    
    SELECT * FROM t_account ;
    --删除表数据
    DELETE FROM t_account
    WHERE id=1;
    SELECT * FROM t_account ;
    --"||"在数据库中是连接字符串,相当于java中的"+"
    --注意和java中的"||"区分。
    --例如:
    --java中  "hello"+"world" ==> "helloworld"
    --DB中   ‘hello’||'world' ==> 'helloworld'
    --oracle中 CONCAT('hello','world') ==>'helloworld'   
    --'think'||'in'||'java'
    
    CONCAT(CONCAT('think','in'),'java');
    --快速入门SELECT
    SELECT * FROM t_account;
    SELECT * FROM emp_souvc;
    
    --指定查询表中的某几列
    SELECT id,status FROM t_account;
    
    
    --只查询特定的列的值
    SELECT id,job FROM emp_souvc;
    
    --虚表
    --DUAL:虚表,没有这么一个表,只为了满足
    
    --SELECT的语法要求。
    --我们常用虚表来测试表达式的结果。
    --在数据库中,我们想测试某个表达式的结果只能
    --使用SELECT语句来实现。
    SELECT 'hello'||'world' FROM DUAL
    
    SELECT id||':'||job FROM emp_souvc;
    
    SELECT CONCAT(CONCAT(id,':'),job)
    FROM emp_souvc;
    --LENGTH函数
    SELECT id,LENGTH(job) FROM emp_souvc;
    desc emp_souvc;
    --UPPER,LOWER,INITCAP函数 
    SELECT 
      UPPER(id), 
      LOWER(job), 
      INITCAP(NAME) 
    FROM emp_souvc;
    --TRIM,RTRIM 函数
    --参数中from前面只能是单一字符
    --若没有from以及前面的字符,则是去除空白
    SELECT TRIM('e' from 'eeeeeliteeeeee')
    FROM DUAL;
    
    SELECT RTRIM('eeeeliteeeee','e')
    FROM DUAL;
    --LPAD,LPAD补齐函数
    --显示20个字符,不够左边不若干空格
                              --AAAAA
    SELECT LPAD(id,20,'$')
    FROM emp_souvc;
    
    SELECT LPAD('aaaaAAAAAA',5,'$')
    FROM DUAL;
    
    --作用:要求显示20个字符,若sal的值不足长度,则
    --补充若干个'$',以达到20个字符
    
    SELECT RPAD('aaaaAAAAAA',5,'$')
    FROM DUAL;
    --INSTR函数
    SELECT 
      INSTR('Doctor Who Who Who', 'Who',9,2) 
    FROM DUAL;
    --时间函数的用法
    SELECT SYSTIMESTAMP FROM DUAL;
    
    
    --TO_DATE函数的用法
    SELECT 
      TO_DATE( '2008-08-12 22:45:33','yyyy-mm-dd hh24:mi:ss')
    FROM 
      DUAL;
    
    
    --TO_CHAR函数的用法
    --在日期格式字符串中,出现的非关键字符或符号的其他字符时,需要使用双引号。
    SELECT 
      TO_CHAR(sysdate, 'yyyy"年"mm"月"dd"日" hh:mi:ss' )
    FROM dual;
    
    
    --两个日期可以进行减法操作,差为相差的天数。
    SELECT sysdate-BIRTH,id
    FROM emp_souvc;
    
    
    --MONTHS_BETWEEN函数 
    SELECT id, 
      MONTHS_BETWEEN(SYSDATE, BIRTH)
    FROM emp_souvc;
    
    
    --NEXT_DAY函数
    --获取距离当前时间最近的周4,若给定的当前时间恰巧是周4,则表示的是下周的周4
    SELECT NEXT_DAY(SYSDATE,5)
    FROM dual;
    --处理空值的函数
    --任何值都不能等于null
    SELECT * 
    FROM emp_souvc
    WHERE gender IS NOT NULL;
    
    --NVL函数的作用:将null替换为给定值
    SELECT name,NVL(gender,'M')
    FROM emp_souvc;
    
    SELECT id,job,NVL(gender,0)
    FROM emp_souvc;

    有点类似java这种函数吧:

    public Object nvl(Object e1,Object e2){
    if(e1==null){
    return e2;
    }else{
    return e1;
    }
    }
    SELECT id,SALARY+NVL(SALARY,0)
    FROM emp_souvc;
    
    SELECT SALARY,NVL2(SALARY,'有奖金','没奖金')
    FROM emp_souvc;
  • 相关阅读:
    【转】【Linux】linux awk命令详解
    【转】【Linux】Linux 命令行快捷键
    【转】【Linux】sed命令详解
    【转】【Linux】Linux 下zip包的压缩与解压
    【转】【Linux】grep命令详解
    【转】crontab命令 脚本定时运行
    【转】BAT 批处理脚本 教程
    【MySql】脚本备份数据库
    php的json校验json-schema
    phan—php语法静态检查在windows下的配置
  • 原文地址:https://www.cnblogs.com/liuhongfeng/p/5304050.html
Copyright © 2020-2023  润新知