zoukankan      html  css  js  c++  java
  • 三、Oracle的简单查询

    Oracle的表查询

    前提:搞清楚scott的几张表的含义

    EMP:雇员表

    字段

    类型

    注释

    EMPNO

     

    员工编号

    ENAME

     

    员工姓名

    JOB

     

    员工职位

    MGR

     

    上级编号

    HIREDATE

     

    入职日期

    SAL

     

    薪水

    COMM

     

    奖金

    DEPTNO

     

    部门编号

    DEMP:部门表

    字段

    类型

    注释

    DEPTNO 

    NUMBER(2)

    部门编号

    DNAME 

    VARCHAR2(14)

    部门名字

    LOC 

    VARCHAR2(13)

    所处位置

    SALGRADE:工资级别表

    字段

    类型

    注释

    DEPTNO 

    NUMBER(2)

    部门编号

    DNAME 

    VARCHAR2(14)

    部门名字

    LOC 

    VARCHAR2(13)

    所处位置

    1. 查看表结构

    desc dept;

    1. 查询所有列

    select * from dept;

    1. 查询指定列

    select ename,sal,job,depno from emp;

    1. 取消重复行

    select distinct deptno from emp;

    举例:查询smith的薪水,工作和所在部门。

    select sal,job,deptno from emp where ename='smith';

    举例:

    创建一张表:

    create table users(

    userid varchar2(20),

    userName varchar2(30),

    userPass varchar2(20)

    );

    插入数据:

    insert into users values('a0001', '王二小哈哈哈哦', 'fanyong@gmail.com');

    赋值数据:把自己的数据加入到自己的表中:

    insert into users(userid, userName, userPass) select * from users;

    每次插入后数据量都是上一次的一倍,

    查询记录行数:

    select count(*) from users;

    1. 使用算数表达式,使用列的别名

    显示每个雇员的年工资

    select ename "姓名", sal*12+comm*12 "年收入" from emp;

    但是计算结果有问题,所有工资comm字段为null的记录,年收入全部为null

    1. 如何计算null值?

    使用nvl函数来判断是不是空值

    select ename "雇员", sal*12 + nvl(comm, 0)*12 "年收入" from emp;

    1. 使用where子句

    如何显示工资高于3000的员工:

    select ename,sal from emp where sal>3000;

    如何查找1982年1月2号以后入职的员工

    select ename, hiredate from emp where hiredate>'2-1月-1982';

    如何显示工资在2000到2500之间的员工

    select ename, sal from emp where sal>2000 and sal<2500;

    1. 在where中使用in

    如何显示员工编号是101或者220或者340的员工

    select * from emp empno in (101,220,340);

    1. 使用like操作符

    % : 表示任意0到多个字符

    _ : 表示任意1个字符

    如何显示首字母为S的员工姓名和工资

    select ename, sal from emp where ename like 'S%';

    如何显示第三个字符为大写O的所有员工的姓名和工资

    select ename, sal from emp where ename like '__O%';

    1. 使用is null , is not null 操作符

    如何显示没有上级雇员的信息

    select ename from emp where mgr is null;

    1. 使用逻辑操作符号

    查询工资高于500或者是岗位为Manager的雇员,同时还要满足他们姓名的首字母为大写字母J

    select * from emp where (sal>500 or job='Manager') and ename like 'J%';

    1. 使用order by子句排序

    如何按照工资从低到高的顺序显示雇员信息

    select * from emp order by sal asc;

    如何按照部门号升序而雇员的工资降序排列

    select * from emp order by deptno asc, sal desc;

    1. 使用列的别名排序

    select * from emp where (sal+nvl(comm,0))*12 "年薪" from emp order by "年薪";

    1. 分页查询

    先学子查询!

  • 相关阅读:
    .JS replace方法替换所有字符
    .net framework 4.0,结果还是失败,出现HRESULT 0xc8000222错误代码
    用PowerDesigner15自动将数据库里的表生成ER图
    C#对JSON数据格式的处理
    Type of conditional expression cannot be determined because there is no implicit conversion between 'Common.EnumType.EnumGender' and '<null>'
    如何在string.Format方法中输出大括号({})
    网架构学习笔记
    c#实现javascript中函数escape解码
    Solon 开发,八、注入依赖与初始化
    Solon 开发,七、自定义注解开发汇总
  • 原文地址:https://www.cnblogs.com/fanyong/p/2888227.html
Copyright © 2011-2022 走看看