• 十天学会Oracle数据库(Day2)


     十天学会Oracle数据库(Day2)


    今日目标:

    1. 查询排序(重要)
    2. Oracle思考题(重要)
    3. 单行函数(背)
    4. 多表查询(重要)


    一:查询排序

    1. 使用子句【ORDER BY 字段[ASC|DESC],字段[ASC|DESC]】:ASC表示升序,DESC表示降序;
    2. 按照工资由高到低排序。SELECT *FROM emp ORDER BY sal ASC;
    • SELECT FOME WHERE ORDER BY;就是这么一个子句


    二:Oracle思考题

    1:选择部门30中的所有员工

      SELECT *FROM emp WHERE deptno=30;

    2:列出所有办事员的姓名,编号和部门编号

      SELECT ename ,empno,deptno FROM emp WHERE job='CLECK';

    3:找出佣金高于薪金60%的员工

      SELECT * from emp WHERE comn>sal*0.6;

    4:找出收取佣金员工的不同工作

      SELECT DISTINCT job FROM emp WHERE comn IS NOT NULL;

    5:找出不收取佣金或者佣金小雨100的员工

      SELECT  job FROM emp (comn IS NULL) OR (comn<100);



    三:单行函数

      在Oracle中提供的单行函数非常多,有几万个,主要的有以下几个:

    • 字符串函数
      • 大小写转换函数:字符串 UPPER()|lower()。select *from emp where ename=UPPER('&name');
      • 首字母大写,其余字母小写。Initrap();
      • 取得字符串的长度,length(字符串型字段);
      • 替换指定字符串的内容。Replace
      • 字符串的截取操作。SUBSTR
      • 去掉左右空格的函数 TRIM(字符串类型的字段)
    • 数字函数
      • 四舍五入函数:ROUND(数字,位数);
      • 截取小数函数:TRUNC(数字,位数);
      • 求模函数:求余数
    • 日期函数
      • 伪列(是不存在表中的列,但是可以直接执行):SYSTIME,SYSDATE
      • 取得当前的系统日期,然后,日期+数字=日期;日期-日期=两个日期之间的参数;
        • SELECT SYSDATE-hireday from emp;
      • 加上指定月后的时间ADD_MONTHS(日期|列 月数)
      • 求出本月的最后一天 LAST_DAY(SYSDATE)
    • 转换函数
      • 字符串,数字,日期
      • 日期(yyyy)(mm)(dd)(HH)(mi)(ss):SELECT TO_CAHR(SYSDATE,'yyyy-mm-dd hh24:mi:ss') from dual;
      • 转日期操作:
      • 转数字类型:TO_NUMBER('1').但是现在Oracle提供了数据类型自动转换
    • 通用函数
      • NVL();
      • DECODE();——多数据判断


    四:多表查询

    1. 基本概念

          同时从多个表中查询数据。

          必须使用关联字段消除笛卡尔积。

          就是两张表中的相同的字段 SELECT* FROM EMP,DEPT WHERE EMP.DEPTNO=DEPT.DEPTNO;

          如果表名称过长,往往会使用一个别名,select * from EMP E, DEPT D WHERE E.DEPTNO=D.DEPTNO;

      2. 要先确定关联条件

          不一定是直接相同的字段,也可能需要自己定义关联条件,方法就是通过WHERE定义关联条件

          多表查询其实性能并不好,减少多表查询就能提升性能。

            第一种叫做内连接,第二种叫做外链接

            增加行:INSERT INTO

  • 相关阅读:
    powerdesigner 使用心得 comment、name
    idea 从git上checkout项目下来,project没有文件目录结构
    关于freemarker 空变量的接收以及类型转换 笔记
    关于indexof和substring经常记不住的点
    Intellij IDEA快捷键
    oracle 修改服务端字符集编码
    个人作业——软件工程实践总结&个人技术博客
    如何设置标签云
    前端框架的部署
    个人作业——软件评测
  • 原文地址:https://www.cnblogs.com/BoscoGuo/p/5827413.html
Copyright © 2020-2023  润新知