• Oracle基础(五)之DML语句(增删改)、改变表


    一、DML语句(数据操作语句)

    1.添加数据到表中

      insert into 表名(字段名) values(值)

      注:1)使用values关键字只能插入一条数据

        2)注意完整性约束

        3)插入的值必须与字段的顺序一样

        4)可以给表中的所有字段插入值,也可以给表中插入子表中的数据

        5)先插入父表的数据再插入子表的数据

        6)可以跟子查询,同时插入多条数据

    //向s_stu插入一条数据
    insert into s_stu
    values(1,'tom',null,null,null,null);
    insert into s_stu
    values(2,'tom',null,null,'f',null);
    insert into s_stu
    values(3,'lucky',18,'18625034564','m',41);
    insert into s_stu(id,name,age)
    values(4,'jack',18);

    insert into s_stu(id,name)
    select id,last_name
    from s_emp
    where id>5;
    2.跟新表中的数据 update
      update 表名
      set 字段名1=值1,字段名2=值2.........
      [where 条件]
      1)不加where会更新学生表中的所有当前字段的信息

      更新学生表中的age=20
      update s_stu
      set age=20;
     
     2)加where 更新表中的某些数据 
     
      更新满足where条件的数据
      更新学生表中的id大于20的age为99
      
    update s_stu
      set age=99
      where id>20;
     
     3)注意完整性约束

      更新学生表中的id=10的age为50,phone为1111
      update s_stu
      set age=50,phone='1111'
      where id=10; 
    3.删除数据
     delete [from] 表名
     [where 条件]
       1)加where 删除表中的某些数据
         删除满足where条件的数据

          //删除id=10的学生信息
          delete from s_stu
          where id=10;

       2)不加where,删除表中的所有数据,表结构还在
       3)先删除子表的数据,再删除父表的数据
    4.事务
     在同一个操作单元中的一系列操作,这些操作要么同时成功 要么同时失败
    并且这些操作是原子单位,是不可再分的

     回滚事务:rollback
     提交事务:commit

     (1)事务什么时候开始:
        1)一个事物结束代表另外一个事物开始
        2)打开终端,一个新的事务就开始了
     (2)事务什么时候结束:
        1)正常情况结束
           a.执行commit
           b.执行rollback
           c.执行DDL,DCL命令会自动提交
           d.执行DML语句不会自动提交(需要手动提交或回滚)
           e:exit 会自动提交
        2)非正常结束
           a.点击退出按钮
           b.系统错误
    (3)事务四大特性:ACID
        原子性:事务是一个原子,事务不可再分
        一致性:事务操作前和事务操作后的数据要保持一致性
        隔离性:一个事务是看不见另外另一个事务的数据
        持久性:将事务的数据持久化的报讯保存到磁盘上
      
           insert into.....
           savepoint a
           update....
           savepoint b
           insert into....
           delete
       
           rollback to a/b
           //设置a,b保存点 回滚到想要留下的操作
    二、改变表(alter table,rename...)
    1.添加新的字段
       alter table 表名
       add (字段名 数据类型 默认值 约束
         ,字段名。。。。。。。。。)
      
        向s_stu添加comments
        alter table s_stu
        add comments varchar2(100);
    2.删除表中的字段
       alter table 表名
       drop column 字段名;
       删除comments
       alter table s_stu
       drop column comments;
    3.修改表中的字段
       alter table 表名
       modify(字段名 数据类型 默认值 约束 );
        修改s_stu的dept_id约束改为not null
        alter table s_stu
        modify dept_id number(7) not null;
     注意:值要注意一些情况(约束 数据类型 )
     修改:数据类型(值都为null),约束(是否符合约束),数据类型的长度(长度是否能放下表中的数  据)
    4.增加约束(表级约束,所以不能增加非空约束)
       alter table 表名
       add 取约束名字 约束类型(字段);
      
    5.删除约束
       alter table 表名
       drop constraint 约束名字
     
    6.使约束失效 ---->约束还在 只是不起作用
       alter table 表名
       disable constraint 约束名;
     
    7.使约束生效 ---->判断存在的值是否符合约束
       alter table 表名
       enable constraint 约束名;
    8.删除表
       drop table 表名;  
          a.删除表中的数据 以及表结构;
          b.是DDL 不能回滚
          c.drop可以删除任意对象
       delete from 表名; 
          a.删除表中的数据 不会删除表结构;
          b.是DML 可以回滚
          c.删除数据效率低
       truncate table 表名;
          a.删除表中的数据 不会删除表结构;
          b.是DDL 不能回滚
          c.truncate只能删除表
          d.删除效率高
    9.重命名rename
       rename 旧名字 to 新名字 ;
    10.重命名(字段的名字)
       alter table 表名
       rename column 旧字段名 to 新字段名
     
    11.给表增加注释
      comment on table 表名
      is '注释的内容';
        comment on table s_stu
        is 'This is a Student info';
        //查看表的注释
        select comments
        from all_tab_comments
        where table_name='TEST';
      
        //表中的列加注释
        comment on column  test.id
        is '序列号';
        //查看列的注释
        select comments
        from user_col_comments
        where table_name='TEST';
     用户表:用户通过create table 创建的表
            需要用户自己维护 自己增删改操作
     数据字典表:数据库创建的表,数据库自己维护,数据库自己增删改操作。
           eg:user_constraint
     
         //查询s_stu表的注释
         select comment
         from all_tab_comments
         where table_name='S_STU';//表名大写
  • 相关阅读:
    公式在Excel报表中的应用
    Excel生成报表之解决方案设置单个单元格格式
    Excel生成报表之解决方案开盘盘高盘低收盘图(附源码)
    Excel生成报表之解决方案设置多个单元格区域的格式
    Excel生成报表之解决方案簇状圆锥图
    Excel生成报表之解决方案设置整行整列(附源码)
    已发布Acey.ExcelX3.4英文和中文版
    Excel生成报表之解决方案气泡图
    Excel生成报表之解决方案单元格富文本
    Excel生成报表之解决方案单元格添加批注
  • 原文地址:https://www.cnblogs.com/shizt/p/13634630.html
Copyright © 2020-2023  润新知