数据截断
Truncate table 表明.
截断表中所有数据,不会开启事务,从结构上检查
序列
序列在创建时,没有与表关联,在操作数据时,与表关联
一个新创建的序列,第一次使用naxtval()
创建
create sequence 序列名 start with 起始值 increment by 步进
使用
在操作数据 currval(当前值) naxtval(下个值)
删除序列
Drop sequence 序列名
事务
事务是指作为单个逻辑工作单元执行的一组相关操作。这些操作要求全部完成
或者全部不完成。使用事务是为了保证数据的安全有效。
四个特点
1 原子性(atomic):事务中所有数据的修改,要么全部执行,要么全部不执行
2一致性(comsistence):事务完成时,要使所有所有的数据都保持一致的状态,
换言之:通过事务进行的所有数据修改,必须在所有相关的表中得到反映。
3隔离性(Isollation):事务应该在另一个事务对数据的修改前或者修改后进行访问
4持久性(durability)::保证事务对数据库的修改是持久有效的,即使发生系统故障,
也不应该丢失.
Oracle 默认的隔离级别是 read committed。
自动开启于 DML 之 insert delete update
事务的结束
1.成功
正常执行完成的 DDL 语句:create、alter、drop
正常执行完 DCL 语句 GRANT、REVOKE
正常退出的 SQLPlus 或者 SQL Developer 等客户端
如果人工要使用隐式事务,SET AUTOCOMMIT ON (只针对一个连接)
手动提交 :使用 commit
2.失败
rollback ,手动回滚
非法退出 意外的断电
rollback 只能对未提交的数据撤销,已经 Commit 的数据是无法撤销的,因为 commit
之后已经持久化到数据库中。
DML
DML(Data Manipulation Language 数据操控语言)用于操作数据库对象中包
含的数据,也就是说操作的单位是记录。
添加(Inset)
insert into 表名 [(字段列表)] values(值列表);
修改(Update)
update 表名 set 字段=值 [,…] where 过滤行记录;
更改数据
update 表名 set(字段列表)=(select 字段列表 from 源表 where 过滤源表记录 ) where 更新记录的条件
delete 删除数据
delete [from] 表名 where 过滤行
delete 可以删除指定部分记录,删除全部记录
记录上存在主外键关联时, 删除存在关联的主表的记录时,注意 参考外键约束, 约束强制不让删除
先删除从表 再删除主表
JDBC
Java 程序连接数据库
操作步骤
1加载驱动
2获取连接 connection
3处理块 statenent
4准备 sqly 语句
5发送执行sql语句
6获取结果集
7关闭资源
静态处理块 Statement
Statement 是 Java 执行数据库操作的一个重要接口,用于在已经建立数据库连
接的基础上,向数据库发送要执行的 SQL 语句。Statement 对象,用于执行不带参数
的简单 SQL 语句。
预处理块 PreparedStatement
PreparedStatement 接口继承了 Statement,并与之在两方面有所不同:有人主张,在 JDBC 应用中,如果你已经是稍有水平开发者,你就应该始终以PreparedStatement 代替 Statement.也就是说,在任何时候都不要使用 Statemen
执行完 SQL 语句后可能成功也可能失败,如果成功,有数据则我们很大一部分情况是
需要获取查询的结果。数据就是一切
ddl:没有异常就是成功
dml: 结果>0就是成功
select:分析结果集
对于 select 的结果集进行分析,类似于迭代器, 先判断(移动)再获取
next()
getXxx(索引|列名|别名)
释放资源
释放资源的原则是 先打开的后关闭, 则我们的顺序一般为: 结果集->处理块->连接