Oracle04数据更新
序列(Sequence)基本语法:
create sequence S_AB01 创建序列
------
minvalue 1
maxvalue10000
start with 1
increament by 1 每次增加1
cache 20;
默认值
------
序列的两个属性:
NEXTVAL:获取序列的下一个值,每执行一次,产生一个新值
CURRVAL:获取序列的当前值,执行多少次,都不变
NEXTVAL和CURRVAL只要出现在同一条SQL语句中,无论顺序如何,得到的都是NEXTVAL之后的值。
如果语句中多句NEXTVAL那么只执行一次,只执行一个单位
DUAL是Oracle中的一个表,打酱油的一个表
COMMIT:提交命令;
ROLLBACK:回滚命令;
1.数据删除语句
1.删除全部数据(无条件删除)
DELETE FROM 表名;
2.删除指定的数据(有条件删除)
DELETE FROM 表名 WHERE 条件列表;
2.创建及删除序列语法
创建语法: CREATE SEQUENCE 序列名;
删除语法: DROP SEQUENCE 序列名;
3.序列的不连续性
序列只保证递增,不保证连续.
4.修改语句
UPDATE PERSON A
--在原来的工资上面增加500,在SQL语句中是可以直接进行数学运算的。
SET A.PMONEY=A.MONEY+500
WHERE PID = 3;
COMMIT;
在更新语句中,列之间是可以进行引用的
5.数据删除与数据截断
DELETE ----数据删除
TRUNCATE -- 数据截断
区别:
1.数据可恢复性
DELETE只是将数据打上作废标记,让查询不可见,数据并没有被真正的物理删除,同时,DELETE操作是会被Oracle记录的,因此,可以恢复。
TRUNCATE指令是将数据从磁盘上直接物理擦除,执行后,数据已经不存在;并且不记录到归档日志,因此不可恢复.
2.事务应用
DELETE需要显示提交或回滚,因此应用事务
TRUNCATE 绕过事务,直接删除数据,这也是不可以恢复的原因之一
3.DELETE由于进行的是模拟删除,因此无法回收表空间
TRUNCATE可以回收表空间,提高表空间的利用效率
6.表空间与分用户管理
分用户管理在实现上有两种方式
方式1:物理隔离
每个用户的所有数据都存储到独立的表空间中,该表空间只装载该用户的所有表,这样一个用户的表空间发生问题,对其他用户没有影响
方式2:逻辑隔离
表归属用户所有,但是所有用户的表共用一个表空间
7.表空间(TABLESPACE)
就是表的容器,实际上就是一堆数据文件的集合,用户表中的数据,实际上存储到表空间的指定文件中.
表空间的分类:
1.临时表空间-----做交换分区
2.永久表空间------用以存储数据
如果创建用户时候,没有为用户明确指定表空间,此时用户的所有数据,存储到Oracle默认表空间中,默认表空间名字是 USERS
8.创建用户root,密码为root1234
1.为root用户创建临时表空间
2.为root用户创建永久表空间
3.创建root,并为其指定临时表空间和永久表空间
9.创建及删除表
创建表:CREATE TABLE 表名(...)
删除表:DROP TABLE 表名