【JSU】LJDragon's Oracle course notes In the first semester, junior year

DML数据操纵语言

DML指:update,delete,insert等语句

eg1:select语句

  1. select e.* from emp e where empno = 7369;

eg2:insert语句

--插入数据 insert into 表名 [(列1,列2,……)] values (值1,值2,……);

--省略列列表,默认就是表中的所有列

--列和值必须要个数,顺序,类型相同

  1. --增加一个新部门
  2. INSERT
    INTO departments (department_id,department_name,manager_id,location_id)
  3. VALUES (120,'NEC',206,1700);
  4.  
  5. INSERT
    INTO departments
  6. VALUES (120,'NEC',206,1700);
  7.  
  8. INSERT
    INTO departments (department_id,department_name)
  9. VALUES (120,'NEC');
  10.  
  11. INSERT
    INTO departments
  12. VALUES (120,'NEC',NULL,NULL);

--插入多行 insert into 表名 [(列1,列2,……)] 子查询;

  1. INSERT
    INTO new_dept
  2. SELECT * FROM dept;

eg3:update语句

--更新数据 update 表名 set 列1=值,列2=值,……[where 子句]

  1. update emp
  2. set sal = sal+500,
  3. hiredate = (hiredate + 30)
  4. where empno = 7902

--修改100员工的姓名为张三

  1. UPDATE new_emp
  2. SET first_name = '三',
  3.        last_name = '张'
  4. WHERE employee_id = 100;

--修改60号部门员工的工资上浮50元

  1. UPDATE new_emp
  2. SET salary = salary + 50
  3. WHERE department_id = 60;

--修改103号员工的工资和100号员工相同

  1. UPDATE new_emp
  2. SET salary = (SELECT salary
  3.                  FROM new_emp
  4.                  WHERE employee_id = 100)
  5. WHERE employee_id = 103;

eg4:清空/删除表

truncate table 表名

delete from 表名 where

--快速删除表,清空整个表

--不能带条件

--不记录日志

--删除表空间

--数据不能回滚

--(之前一直都用这个的)

--有带条件

--记录日志

--不删除表空间

--数据可以回滚

--清空学生表

  1. select * from stu_tmp;
  2. truncate
    table stu_tmp;

--删除数据 delete from 表名 [where 子句]

  1. --删除103员工
  2. DELETE
    FROM new_emp
  3. WHERE employee_id = 103;
  4.  
  5. --删除50号部门员工
  6. DELETE
    FROM new_emp
  7. WHERE department_id = 50;
  8.  
  9. --删除部门名称为IT的部门的员工
  10. DELETE
    FROM new_emp
  11. WHERE department_id = (SELECT department_id
  12.                         FROM departments
  13.                         WHERE department_name = 'IT');

eg5:合并表merge

merge into 副表表名 别名

using 主表表名 别名 on (主表.主键=副表.主键)

when matched then

更新语句

when not matched then

插入语句

  1. --创建两张员工表并合并
  2. SELECT employee_id,last_name,salary
  3. FROM employees;
  4.  
  5. SELECT employee_id,last_name,salary
  6. FROM employees;
  7.  
  8. --合并数据
  9. MERGE INTO emp2 e2
  10. USING emp1 e1 ON (e1.emp=e2.empno)
  11. WHEN MATCHED THEN--匹配上,则更新
  12.      UPDATE
    SET e2.ename=e1.ename,e2.sal=e1.sal
  13. WHEN
    NOT MATCHED THEN--没有匹配上,插入数据
  14.      INSERT
    VALUES (e1.empno,e1.ename,e1.sal)

dcl:grant,revoke

dql:select

ddl:create,drop,alter

tcl:commit,rollback

分析函数

--over函数连续求和

  1. select t1.empno,t1.sal,t1.deptno,
  2. (select
    sum(t.sal) from emp t where t.deptno = t1.deptno)
  3. as 工资总和
  4. from emp t1;
  5. --------------------------------
  6. select t1.*,
  7. (select
    sum(t.sal) from emp t where t.deptno = t1.deptno)
  8. as 工资总和
  9. from emp t1;

  1. SELECT empno,
  2.        sal,
  3.        deptno,
  4.        sum(sal) over() AS 总个表总和 , --总个表总和
  5.        sum(sal) over(order
    by empno) AS 累计显示 , --累计显示
  6.        sum(sal) over(partition by deptno) 工资总和1,
  7.        sum(sal) over(partition by deptno order
    by empno) 部门工资总和2
  8. FROM emp;

  1. SELECT empno,
  2.        sal,
  3.        deptno,
  4.        avg(sal) over() ,
  5.        avg(sal) over(partition by deptno)
  6.        from emp;

  1. SELECT empno,
  2.        sal,
  3.        deptno,
  4.        sum(sal) over(ORDER BY deptno) over1,
  5.        SUM(sal) over() over2
  6. FROM emp;

 

ORACLE STUDY NOTES 01的更多相关文章

  1. ORACLE STUDY NOTES 02

    [JSU]LJDragon's Oracle course notes In the first semester, junior year I.用户和权限 1.用户操作 --创建新用户 CREATE ...

  2. Machine Learning Algorithms Study Notes(3)--Learning Theory

    Machine Learning Algorithms Study Notes 高雪松 @雪松Cedro Microsoft MVP 本系列文章是Andrew Ng 在斯坦福的机器学习课程 CS 22 ...

  3. Machine Learning Algorithms Study Notes(2)--Supervised Learning

    Machine Learning Algorithms Study Notes 高雪松 @雪松Cedro Microsoft MVP 本系列文章是Andrew Ng 在斯坦福的机器学习课程 CS 22 ...

  4. Machine Learning Algorithms Study Notes(1)--Introduction

    Machine Learning Algorithms Study Notes 高雪松 @雪松Cedro Microsoft MVP 目 录 1    Introduction    1 1.1    ...

  5. Oracle Study之-AIX6.1构建Oracle 10gR2 RAC(3)

    Oracle Study之-AIX6.1构建Oracle 10gR2 RAC(3) 一.配置共享存储 [oracle@aix203 ~]$lsdev -c disk hdisk0 Available ...

  6. Oracle Study之--Oracle 11gR2通过RMAN克隆数据库

    Oracle Study之--Oracle 11gR2通过RMAN克隆数据库 Purpose of Database Duplication A duplicate database is usefu ...

  7. Oracle Study之-AIX6.1构建Oracle 10gR2 RAC(4)

    Oracle Study之-AIX6.1构建Oracle 10gR2 RAC(4) 一.安装CRS补丁 在安装CRS之前,须要安装补丁p6718715_10203_AIX64-5L,否则在安装时会出现 ...

  8. Oracle Study之--Oracle 单实例11.2.0.1.0升级到11.2.0.3.0

    Oracle Study之--Oracle 单实例11.2.0.1.0升级到11.2.0.3.0 系统环境: 操作系统:RedHat EL6(64位) Oracle:    Oracle 11gR2 ...

  9. ORACLE 10.2.01升级10.2.05 for windows 详细文档

    最近要做一个数据库的升级工作,提前在自己的PC机上练习了一下,这种文档在网上很多,但是大多都是使用命令编辑脚本,其实数据库还有一个DBUA的升级工具可以使用,使升级工作方便了很多. OS环境:wind ...

随机推荐

  1. linux nohup命令

    nohup 命令 用途:不挂断地运行命令.如果你正在执行一个job,并且你希望在退出帐户/关闭终端之后继续运行,可以使用nohup命令.nohup就是不挂起的意思( no hang up). 语法:n ...

  2. NYOJ737

    题意:给n堆石子,按照顺序排列,只能相邻两堆石子合并,求最后合并为一堆时所花费的最小代价,石子合并代价为两堆石子之和. 输入: n(石子堆数) Xi(每堆石子个数) 输出: T(最小代价) 思路:经典 ...

  3. C++关联容器<map>简单总结

    C++关联容器<map>简单总结 map提供大小可变的关联容器,基于关联键值高效检索元素值.当你处理键值对的数据是,都可以考虑使用map关联容器. 特点: 大小可变的关联容器,基于关联键值 ...

  4. Android开发手记(13) 几种Alertdialog的使用

    本文主要讨论七种形式的AlertDialog,及其编写方法. 1.退出 在用户退出的时候提示用户是否退出,含有“确定”和“退出”两个按键. btnExit.setOnClickListener(new ...

  5. C++拾遗(七)函数相关(2)

    内联函数 内联函数与常规函数的区别在于: 1.常规函数:在执行调用指令时,先存储该指令的内存地址,将函数参数复制到堆栈,然后跳转到被调用函数起点的内存单元,执行函数,将返回值放 入寄存器,最后跳回到一 ...

  6. 学习OpenSeadragon之三 (覆盖层Overlayer的使用)

    Overlayer(覆盖层)是一个很重要的机制,它可以在可缩放图片上显示额外的信息. 1.简单应用 以下是我做出的一个小例子: 看这小老鼠头部的红色框内的部分就是一个分离出来的overlay. 介绍一 ...

  7. ecshop模板如何修改详细图解

    ecshop模板如何修改?很多人在问这个问题,今天就以图解的方式给大家详细说下.相信学完之后,你会很清楚如何修改ecshop模板,不管你是初学者还是程序高手. 1, ecshop的模板结构 ecsho ...

  8. code:blocks 编译环境设置

    1.  支持C99 在菜单settings->compiler settings->comiler settings->Other options 添加: -std=c99 2. 支 ...

  9. JavaScript:Object.prototype.toString方法的原理

    在JavaScript中,想要判断某个对象值属于哪种内置类型,最靠谱的做法就是通过Object.prototype.toString方法. var arr = []; console.log(Obje ...

  10. Phpcms V9全站伪静态设置方法

    为什么要伪静态?具体在这里就不说了,你懂的!一方面更新修改后不需要生成静态文件,另一方面为了SEO! 访问规则如下 1 2 list-{$catid}-{$page}.html content-{$c ...