zoukankan      html  css  js  c++  java
  • Oracle-DML- insert & update & delete

    说明:语句中说到的“表”,以及表中有哪些“列”自行脑补......重要的是理解概率,能看懂语句代表的含义就OK~

    DML-数据操作语句:

    1. insert 新增

    /*
    insert into 表名
    values (value1,value2,...valueN);
    按照表的原有结构放入数据

    insert into 表名(列名1,列名2,……列名n)
    values (value1,value2,...valueN);
    自定义列放入数据
    */

    INSERT INTO dept
    VALUES (60,'TEACHING','CHONGQING');

    SELECT * FROM dept;

    -- dml 语句执行过后生成一个新的事务,事务需要提交才能永久生效,可以回滚撤销操作

    COMMIT; -- 提交
    ROLLBACK; -- 回滚

    -- 未定义的列默认为空值
    INSERT INTO emp(empno,ename,job,sal,deptno)
    VALUES(8000,'jodie','BOSS',5000,20);

    SELECT * FROM emp;

    -- null 空值
    INSERT INTO dept
    VALUES (60,'HR',NULL);

    -- 通过函数放入日期格式的数据
    INSERT INTO emp(empno,ename,job,hiredate)
    VALUES (8000,'jodie',NULL,SYSDATE);

    INSERT INTO emp(empno,ename,job,hiredate)
    VALUES (8000,'jodie',NULL,TO_DATE('1999-02-23','YYYY-MM-DD'));

    -- insert into 表名 select …… 将一张表中的数据拷贝到另一张表
    SELECT * FROM bonus;

    INSERT INTO bonus
    SELECT ename,job,sal,comm FROM emp
    WHERE comm IS NOT NULL;

    2. update 修改
    /*
    update 表名
    set 列名 = value
    【where ……】;
    */
    -- 如果不写where子句,该列数据都被修改
    UPDATE emp
    SET sal = 2000;

    SELECT * FROM emp;

    UPDATE emp
    SET sal = 2000
    WHERE ename = 'ALLEN';

    -- 可以基于当前表中已有数据进行修改
    -- 给20部门的所有员工涨500工资
    UPDATE emp
    SET sal = sal+500
    WHERE deptno = 20;

    -- set 后面的value和where子句中都可以使用子查询
    -- 将Jodie的工资改成和allen一样
    UPDATE emp
    SET sal =
    (SELECT sal FROM emp WHERE ename = 'ALLEN')
    WHERE ename = 'JODIE';

    3. delete 删除
    /*
    delete 【from】 表名
    【where ……】;
    */
    -- 如果不写where子句会删除所有数据
    DELETE emp;

    SELECT * FROM emp;

    DELETE emp
    WHERE ename = 'ALLEN';

    4. truncate 快速删除表中所有数据
    -- truncate 属于ddl语句,操作之后直接提交,不能回滚
    -- 站在表的层面快速删除所有数据,不能指定范围

    -- truncate table 表名;

    TRUNCATE TABLE emp;

    ROLLBACK;

    SELECT * FROM emp;

    【练习】
    1.在EMP表中,增加一名员工,员工信息参照现有员工构造.
    INSERT INTO emp
    VALUES(8000,'jodie','CLERK',7566,SYSDATE,1000,NULL,20);

    2.员工SMITH调动到SALES部门,请编写SQL语句更新员工信息.
    UPDATE emp
    SET deptno = (SELECT deptno FROM dept WHERE dname = 'SALES')
    WHERE ename = 'SMITH';

    3.员工JAMES已经离职,请编写SQL语句更新数据库
    DELETE emp
    WHERE ename = 'JAMES';

  • 相关阅读:
    Callable的Future模式
    并发队列
    并发工具类和线程池
    安全与死锁问题
    ConcurrentHashMap底层实现
    Map集合常见面试题
    List集合框架
    类加载器
    Activiti中个人任务分配
    流程定义
  • 原文地址:https://www.cnblogs.com/JodieRao/p/11358180.html
Copyright © 2011-2022 走看看