ORACLE

本文详细介绍了数据库事务的四种隔离级别及其特性,包括读未提交、读已提交、可重复读和串行化。同时,讲解了如何开启和结束事务,以及事务的回滚操作。此外,还探讨了数据库表的设计原则,如列不可再分、主键设定、数据冗余消除等。并展示了创建、修改、删除表结构的DDL语句,以及约束的添加、启用和禁用。最后,提到了DML语句,如INSERT、UPDATE和DELETE的操作方式。
摘要由CSDN通过智能技术生成

--事务的隔离级别
--read uncommitted--读未提交--事务未提交的数据也可以查询到
--read committed--Oracle默认隔离级别--读已提交 只能查询到已经提交的事务的结果【不可重复读】【幻读】
--repeatable read--可重复读--事务可以同时进行
--serializable--串行读--一个事务进行时其他事务都不能进行
--事务的开启:默认做增删改操作时自动开启事务。
--事务的结束:提交-【手动提交 commit】-【执行DDL操作】--【执行DCL操作】--正常关闭客户端--自动提交 auto commit
--回滚--意外退出--手动回滚 rollback
--表设计:1.列不可再分2.定义主键区分唯一3.拆分表,消除传递依赖,避免数据的重复冗余
--表名 字段 字段名 字段类型 字段的约束
--DDL 数据定义语句:create drop alter
/*创建表结构【无约束】
create table 表名(
字段名 字段类型,
字段名 字段类型,
...
字段名 字段类型

*/

create table tb_user(
       userid number(5),
       username varchar2(5 char),--varchar2(30)默认都是字节数, varchar2(5 char)5个字符
       userpwd varchar2(20),
       age number(3),
       gender char(3),
       email varchar2(30),
       regtime date
);
--加入注释
comment on table tb_user is '用户表';
comment on table tb_user.userid is '流水号,主键';
--约束
create table 表名
(
  字段名  字段类型(字节数) 约束,
  ...

);
约束: 主键约束 primary key, 
       外键约束 references 外键表(外键字段) , 
       唯一约束 unique, 
       非空约束 not null, 
       检查约束 check(字段>=8...), 
       默认约束 default(sysdate/...)。

---创建表结构的同时在字段后添加约束+约束名
create clazz

       cid number(5) constraint pk_clazz primary key,
       cname varchar2(3) constraint cnamt_notnull  not null
       
 )
--创建表结构的同时在表结构结束之前添加约束+约束名
creat table clazz(
      cid number(5),
      cname varchar2(30),
      constraint pk_clazz primary key(cid),
      constraint cname_notnull check( cname not null) 
)
--创建表结构之后为字段追加约束+约束名
alter table student add constraint fk_student_ref_clazz_cid foreign key(cid) references clazz(cid)

--拷贝已有表的数据
--只拷贝结构不拷贝数据
create table 表名 as select 字段列表 from 已有表 where1!=1;
--拷贝结构+数据
create table 表名 as select ...from ...where...
--删除表结构
drop table 表名;
--删除主外键存在的主表和从表
从表可以直接删除
主表的删除时1.先删除从表2.  drop table 表名 cascade constraints;
--修改表结构
1.修改表名 
rename 表名 to 新名;
2.修改列名
alter table 表名 rename column 列名 to 新列名;
3.修改类型
alter table 表名 modify(列名 字段类型);
4.添加列
alter table 表名 add 列名 类型;
5.删除列
alter table 表名 drop column 列名;
--约束的禁用和启用
alter table 表名 disable constraint pk_clazz;--禁用
alter table 表名 enable constraint pk_clazz;--启用
--禁用不必要的约束可以提升数据的插入速度
--DML 数据操控语言 用于操作数据库对象中包含的数据,操作的单位是记录。
--主要语句:insert delete update
--insert
insert into 表 values();--按原表结构插入
insert into 表()values();--向表中指定字段插入数据
insert into 表() select ...from...where...;--将查询结果插入表中 
--update
update 表 set ()=(),()=() where;
update 表 set(...,...)=(select ...,...from xx where... ) where ;--同时更改多个字段要使用子查询
--delete
delete from 表名 where...;
delete from 表名;--删除全部数据
--!删除主表中有被从表引用的数据时1.先删除从表中引用的数据,再删除主表的数据。
--2.删除主表数据的同时级联删除从表中引用了主表数据的数据 on delete cascade --创建表时 写到字段字节数后
--3.删除主表数据的同时从表中引用主表数据的数据设置为null  --on delete  set null
--数据截断
truncate table  表名;--不会开启事务,只能删除全部数据。会根据表结构判断主表是否存在从表引用,存在则不能删除。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值