数据库事务:
它是数据库中执行一个逻辑单元的多个操作,在同一个逻辑单元中,这些操作要么全部执行成功,要么全部执行失败。
事务的四个特性:原子性、一致性、隔离性、持久性
commit:提交事务
rollback:回滚事务
通常可以用GUID或UUID 做主键
序列:序列常用来生成主键
create sequence 序列名
minvalue 最小值
maxvalue 最大值
start with 起始位置
increment by 每次增长多长
cache 缓存
序列中的下一个值:序列名.nextval
序列的当前值:序列名.currval
序列的应用:
约束:主键约束、外键约束、非空约束、唯一约束、检查约束
主键约束:主键唯一并且不能为空
外键约束:保证多表数据的完整性
非空约束:约束某个字段不能为空,在创建表的时候,可以在数据类型后加“not null”来规定该字段不能为空,创建表之后还可以通过修改表结构来加入唯一约束。
唯一约束:
alter table 表名add constraint 约束名 unique(列名)
检查约束:
alter table 表名add constraint 约束名check(条件)
视图:视图是多张表的逻辑表,它实际上就是一条select语句。视图可以看成是表结构上的数据的集合或组合。
create [or replace] view 视图名
as
select语句。。。。
[with read only | with check option]
or replace:如果正在创建的视图名在当前数据库中已存在,那么替换。
with read only: 如果视图是由一张表创建的,可以对其进行DML操作,如果在单表的视图中加入with read only,那么该视图就不可以进行DML操作,如果执行,会报如下错误
with check option:如果可以对单表的视图进行DML操作,那可以加入with check option,用来根据创建视图的条件来限制DML操作的数据。
merge into语句:
通常用在,当某某情况时更新数据,否则插入数据。
merge into 表名 别名 --目标表
using(sql语句|表|视图) 别名
on (条件)
when matched then
update set
when not matched then
insert values()