一、事务控制和锁
当有用户修改数据时,Oracle 先把那部分原始数据备份到回滚段,在Commit 之前,其他Session 用户读到的这
部分数据是回滚段上的; 在提交之后,回滚段被释放。关键字:commit、Rollback
锁是用来防止并发事务对相同的资源(所谓资源是指 表、行、共享的数据结构、数据字典行等)进行更改的时候,相互破坏锁有既有隐式的,也有显式的; 但某用户对某一批数据进行更改,而未提交之前,Oracle 会隐式的进行加锁
二、数据库对象——表
表
命名要求
1 、必须以字母开头
2 、长度不能超过30 个字符
3 、只能包含 A–Z, a–z, 0–9, _, $, and #
4 、不能与数据库中的已有对象重名
5 、不能使用Oracle 数据库的保留字
--语法:
CREATE TABLE [schema.]table
(column datatype [DEFAULT expr][, ...]);
复制表
create table testtab
as select * from table_name;
create table testtab1
as select * from table_name where 1 = 2; --复制表结构没有数据
添加列、更改列属性、更改列名、删除列、删除表、更改表名
alter table table_name
add (column1 varchar(20)); --添加列
alter table table_name
modify column column1 varchar(30); -- 更改列属性
alter table table_name
rename old_name to new_name; --更改列名
alter table table_name
drop column column_name; --删除列
drop table table_name; --删除表
alter table table_old_name
rename table_new_name; --更改表名
TRUNCATE table table_name; 一次性清空表的内容保留表结构,没有Rollback的机会,HWM标记复位
三、约束
使用“约束”来阻止对数据库表中数据的不合法的“增删改”动作
1.not null 非空约束
2.UNIQUE 唯一性约束
3.primary key 主键约束
4.FOREIGN KEY 外键约束
5.CHECK 自定义约束
在创建表的时候同时创建约束
另外单独创建约束
外键约束:参考的字段在另一个表里必须是唯一的
• REFERENCES: 表示列中的值必须在父表中存在
• ON DELETE CASCADE: 当父表记录删除的时候自动删除子表中的相应记录.
• ON DELETE SET NULL: 当父表记录删除的时候自动把子表中相应记录的值设为NULL
四、视图
View
简单视图、复杂视图
CREATE VIEW emp_v
as select id, lastname, department
FROM testtab
where firstname = 'deqing';
select * from emp_v; --查看视图
create VIEW def_v
(name, max_id, min_id, avg_id)
as select CONCAT(firstname,lastname), max(id), min(id), avg(id)
FROM testtab ;