• 0729 操作符及SQL函数、数据库对象(同义词、序列)


     操作符及SQL函数

    SQL函数:

    单行函数:日期、字符、数字、转换、其他

    分组函数

    分析函数

    Oracle支持SQL操作符有5种:1、算术 2、比较 3、逻辑 4、集合 5、连接操作符

    select empno,ename,job,sal+1000 from emp

    -- 比较运算符   between and   包头包尾
    select * from emp where sal between 1000 and 2000

    -- 查询奖金不为空的员工信息  等于s is nul   不等于是is not null
    select * from emp where comm is not null

     

     

    SELECT *  FROM t_student
    WHERE sbirthday >= '01-1月-90' 
    AND not sclass = 2;
    SELECT *  FROM t_student
    WHERE sbirthday >= '01-1月-90' 
    AND sclass <> 2;
    SELECT *  FROM t_student
    WHERE sbirthday >= '01-1月-90' 
    AND sclass != 2;

    MySQL里面也有 UNION 但意思是不一样的

    1、union 操作符返回两个查询的不重复的所有行

    2、intersect  操作符只返回两个查询的公共行

    3、MINUS  操作符返回从第一个查询结果中排除第二个查询中出现的行

    注意:Oracle里叫连接 || 与MySQL的 短路或 || 是不同的

    MySQL的短路或 || 特点:如果是或者,只看左边是否为true,无需看右边。若左边是false,右边也要判定

    -- 连接操作符  || 
    select ('员工号为'||empno||'姓名为'||ename||'的工资为'||sal) from emp

    如果感觉太难看 可以起个别名   as info

    -- 字符串函数  lower:大写转小写(lower在哪个字段前加 哪列字段就是小写)
    select empno,lower(ename),job from emp

     ASC 码表需要记住的三个开头   0:48  a:97  A:65 

    Abs:绝对值

    Ceil:天花板 向上取整

    Floor:地板  向下取整

    Mod:取余(取模)

    Round:四舍五入 后面的2 代表位数

    Truncate:截取

    Sqrt:平方根

    -- 日期函数 add_months 偏移
    select * from java0322
    select add_months(sbirth,3) from java0322

    Months_between:相差月份数

    -- 日期函数 extract 计算年份差
    select extract(year from sysdate) from dual

    -- 计算java0322的人多少几年  extract 
    select sname,extract(year from sysdate)-extract(year from sbirth)
    as age from java0322

    -- 转换函数
    select to_char(0.123,'$0.9999') from dual
    -- 转日期
    select to_date('2015-02-22','yyyy-mm-dd') from dual
    -- 转数值
    select to_number('20') from dual

    pm

    select empno,sal +nvl(comm,0)as sal from emp;

    select ename,sal+nvl2(comm,10000,0) from emp

    select nullif(200,200) from dual;

    select empno,ename,job,sal,rank() over(order by sal desc) as numm from emp

    数据库对象

    同义词:私有和公有

    私有:当前用户内访问

    公有:只能管理员创建,所有用户都可以访问

     

     要注意 创建用户 要切换 system登录

    -- 同义词 创建用户 这里要切换 管理员登录
    CREATE  USER  test  IDENTIFIED  BY 123456;
    GRANT  CONNECT , CREATE  SYNONYM TO test;
    GRANT  SELECT   ON   SCOTT.EMP  TO test;
    GRANT  DELETE  ON   SCOTT.EMP TO test;
    GRANT  UPDATE  ON  SCOTT.EMP TO test;
    -- 以test身份登录
    select * from scott.emp;
    -- 创建同义词 synonym  谁建的谁用  
    create synonym staff for scott.emp;
    select * from staff

    公有同义词:就是谁都可以查   

    -- 以sys或system身份登录  创建公有同义词
    create
    public synonym emps for scott.emp

    谁创建的谁删除、修改

    -- 创建序列 先切换用户 scott
    create sequence seq_student
    start with 1
    increment by 1;

    -- 实现自增的功能 :利用里面的值  
    insert into stu values(seq_student.nextval,'袁一鸣');
    select * from stu

    s

  • 相关阅读:
    Functional Programming Contest
    CodeChef--SEPT14小结
    Weekly 10 小结
    CSS中的 REM PX EM
    phoenegap3.5 采坑
    PPT插件 用js制作PPT
    js 代码命名规范系列
    文档列表
    mockjax MOCK.js的拦截ajax请求
    css Tab选项卡
  • 原文地址:https://www.cnblogs.com/zs0322/p/11265501.html
Copyright © 2020-2023  润新知