zoukankan      html  css  js  c++  java
  • oracle 表查询(1)

    oracle 表基本查询

    介绍
    在我们讲解的过程中我们利用scott 用户存在的几张表(emp,dept)为大家演示如何使用select
    语句,select 语句在软件编程中非常有用,希望大家好好的掌握。

    emp 雇员表

    clerk 普员工
    salesman 销售
    manager 经理
    analyst 分析师
    president 总裁
    mgr 上级的编号
    hiredate 入职时间
    sal 月工资
    comm 奖金
    deptno 部门

    dept 部门表
    deptno 部门编号
    accounting 财务部
    research 研发部
    operations 业务部
    loc 部门所在地点
    salgrade 工资级别
    grade 级别
    losal 最低工资
    hisal 最高工资

    简单的查询语句

    查看表结构

    DESC emp;

    查询所有列

    SELECT * FROM dept;

    切忌动不动就用select *

    SET TIMING ON; 打开显示操作时间的开关,在下面显示查询时间。
    CREATE TABLE users(userId VARCHAR2(10), uName VARCHAR2 (20), uPassw
    VARCHAR2(30));
    INSERT INTO users VALUES('a0001', '啊啊啊啊', 'aaaaaaaaaaaaaaaaaaaaaaa');

    --从自己复制,加大数据量 大概几万行就可以了 可以用来测试sql 语句执行效率

    INSERT INTO users (userId,UNAME,UPASSW) SELECT * FROM users;
    SELECT COUNT (*) FROM users;统计行数

    查询指定列

    SELECT ename, sal, job, deptno FROM emp;

    如何取消重复行DISTINCT

    SELECT DISTINCT deptno, job FROM emp;

    查询SMITH 所在部门,工作,薪水

    SELECT deptno,job,sal FROM emp WHERE ename = 'SMITH';

    注意:oracle 对内容的大小写是区分的,所以ename='SMITH'和ename='smith'是不同的

    使用算术表达式 nvl null
    问题:如何显示每个雇员的年工资?

    SELECT sal*13+nvl(comm, 0)*13 "年薪" , ename, comm FROM emp;

    使用列的别名

    SELECT ename "姓名", sal*12 AS "年收入" FROM emp;

    如何处理null 值
    使用nvl 函数来处理
    如何连接字符串(||)

    SELECT ename || ' is a ' || job FROM emp;

    使用where 子句
    问题:如何显示工资高于3000 的 员工?

    SELECT * FROM emp WHERE sal > 3000;

    问题:如何查找1982.1.1 后入职的员工?

    SELECT ename,hiredate FROM emp WHERE hiredate >'1-1 月-1982';

    问题:如何显示工资在2000 到3000 的员工?

    SELECT ename,sal FROM emp WHERE sal >=2000 AND sal <= 3000;

    如何使用like 操作符
    %:表示0 到多个字符 _:表示任意单个字符
    问题:如何显示首字符为S 的员工姓名和工资?

    SELECT ename,sal FROM emp WHERE ename like 'S%';

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

    SELECT ename,sal FROM emp WHERE ename like '__O%';

    在where 条件中使用in
    问题:如何显示empno 为7844, 7839,123,456 的雇员情况?

    SELECT * FROM emp WHERE empno in (7844, 7839,123,456);

    使用is null 的操作符
    问题:如何显示没有上级的雇员的情况?

    错误写法:select * from emp where mgr = '';
    正确写法:SELECT * FROM emp WHERE mgr is null;
  • 相关阅读:
    【书目20200917】影响力思维
    Spring AOP +自定义注解 + Spel表达式 实现审计日志
    SPRING BOOT 注解之OBJECTPROVIDER源码追踪
    Activiti~相关概念
    ELK~fluentd多行日志的收集
    k8s~向etc/hosts里添加内容
    maven~本地仓库的指定
    ssh~ Access denied问题解决
    MySQL如何绕过授予information_schema中对象时报ERROR 1044(4200)错误
    Zabbix如何监控SQL Server服务状态
  • 原文地址:https://www.cnblogs.com/hongmaju/p/4587968.html
Copyright © 2011-2022 走看看