美文网首页程序园
Oracle SQL 学习笔记7- DML 语言

Oracle SQL 学习笔记7- DML 语言

作者: 赵阳_c149 | 来源:发表于2020-02-05 11:38 被阅读0次

    DML(Data Manage Language)语言的用途

    DML语言,有以下用途:

    1. 往一个表中添加新行
    2. 更改一个表中现有的行
    3. 从一个表中删除掉现有的行

    DML vs 事务

    一个事务由一组构成一个逻辑操作的DML语句组成。

    DML语言的种类

    DML分为INSERT,UPDATE和DELTE。

    INSERT语句

    使用INSERT语句向表中增加新行,使用这种方法一次只能插入一行数据。

    INSERT INTO table [(column [, column...])]
    VALUES  (value, [, value...]);
    

    插入特殊的值

    SYSDATE函数取出当前日期的时间

    INSERT INTO emp(empno, ename, job, mgr,
      hiredate, sal, comm, deptno)
    VALUES  (7196, 'GREEN', 'SALESMAN', 7782,
      SYSDATE, 2000, NULL, 10);
    

    插入值中引用函数

    INSERT INTO emp
    VALUES  (2296, 'AROMANO', 'SALESMAN', 7782,
      TO_DATE('FEB 3, 1997', 'MON DD, YYYY')
      1300, NULL, 10);
    

    从另一个表中拷贝行

    可以通过在INSERT语句中添加子查询,从另一个表中拷贝行。但是要注意:

    1. 不要使用 VALUES 子句
    2. 子查询中的列要与INSERT子句中的列相匹配
    INSERT INTO managers(id, name, salary, hiredate)
      SELECT empno, ename, sal, hiredate
      FROM emp
      WHERE job = 'MANAGER';
    

    UPDATE 语句

    可以使用UPDATE语句更改现有的行,如果有需要的话,可以一次更改多行。

    UPDATE table
    SET column = value [, column = value, ...]
    [WEHRE  condition];
    

    更改表中的行

    • 使用WHERE子句来指定要修改的行
    SQL > UPDATE emp
    SET  deptno = 20;
    WHERE  empno = 7782;
    
    • 如果忽略WHERE子句,那么句子中所有的值都将被更改。
    SQL > UPDATE emp
    SET  deptno = 20;
    
    • 用多列子查询进行修改
      更改第7698号雇员的工作和部门,使之与第7499号雇员相同:
    SQL > UPDATE emp
    SET  (job, deptno) = 
            (SELECT job, deptno
            FROM  emp
            WHERE  empno = 7499)
    WHERE  empno = 7698;
    
    • 使用子查询进行修改
    SQL > UPDATE employees
    SET  deptno = 
            (SELECT deptno
            FROM  emp
            WHERE  empno = 7788)
    WHERE  job = ( SELECT job
            FROM emp
            WHERE empno = 7788);
    

    DELETE 语句

    可以使用DELETE语句从表中删除现存的行。

    DELETE [FROM] table
    [WHERE  condition];
    

    相关文章

      网友评论

        本文标题:Oracle SQL 学习笔记7- DML 语言

        本文链接:https://www.haomeiwen.com/subject/ulgjxhtx.html