centos7
oracle11g、 secureCRT
一、DML操作主要是对数据库表中的数据进行增加 修改 删除1.insert语法:insert into 表名 (字段名1,字段名2。。。) values(值1,值2。。。);也可以直接使用insert into 表名 values(这里要包含所有字段的值);可以看到如果字段约束没有要求为非空的情况下是可以不向里面插入数据的,对于有非空要求的字段必须要有值
向表中插入日期 ,在插入日期之前要对日期进行一个转换把字符串转换成日期格式再向表中插入数据 。下图中可以看到emp表中字段hire_date是日期类型的
调用SQL脚本 插入数据,在下图中可以看到数据已经插入进去了,这里的&是之前讲过的替代变量
还有另外一种插入数据的方法 子查询插入 类似子查询建表先创建一张表emp01 只把employees的表结构拷贝过来,再利用子查询向表中插入数据
使用子查询进行插入的时候,子查询后面也可以添加where条件
2.update语法update 表名 set 字段名='',字段名=''...... where条件; 如果没有加where条件那么表中的所有数据都会被修改。
另外一种修改方式也经常使用,使用子查询进行修改
3.delete语法delete from 表名 where条件; 如果不加where条件则是把表中的所有数据都删除
二、事务 1.概念事务是为了保持数据的一致性,事务以会话为单位,当事务没有进行提交的时候,其它用户是无法看到数据更改的,直到事务进行提交,另一会话才可以看到结果。 另外当在执行过程中,还有另外一种方式可以自动 提交事务 那就是DDL 和DCL 还有另外一种方式 正常退出SQLPLUS的时候也会自动提交事务。事务提交 commit; 提交会话中所有事务。事务回滚 rollback;回滚到上交提交事务的 位置,如果上一个SQL没有提交 则也会被回滚事务保存点 savepoint 事务名;回滚事务保存点 rollback to 事务名; 可以回滚到事务保存点的位置,事务保存点以前的修改不会被回滚,保存点以后的所有数据修改操作都会被回滚。2.事务的开始与结束当对数据进行增加/修改/删除操作开始事务就自动在本会话中启用了,直接用户执行commit 的时候事务才算是结束,如果没有提交事务,那么在另一会话中是无法看到当前会话中做的修改的。丛下面两图中可以看出区别
当对事务进行提交后,第二个会话中查看的数据会与第一个会话中查看的数据一致
事务保存点 savepoint 事务名; 在下图中可以看到在插入第三条数据后 设置了一下事务保存点。
但是从数据库中可以看出 这四条数据都插入到数据库了,但如果现在要把事务回滚到事务保存点,那么第四叮码惹条数据就不会在数据库中出现颂压。
事务的自动提交当执行败案DDL DCL 和正常退出SQLPLUS这三种方式都可以让事务自动提交现在向表中插入一条数据后,退出SQLPLUS
再次登录再查询数据库表中的数据,发现数据已经存在,说明事务已经自动提交。
执行DDL DCL语句也会让事务自动 提交,看下图即可看出,并没有进行事务的提交,但数据已经插入到数据库了
再执行回滚rollback命令 也无效,因为事务已经提交了。事务一经提交是无法回撤的。
此经验由勇敢的choy原创,觉得此经验对你有帮助,请点击下面【投票】予以支持,也可以点击上面的【五角星】来收藏!