Oracle 数据库(下)

4 篇文章 0 订阅

表连接

当我们获取的数据不是来自于同一张表而是来自于多张表时就需要使用到表连接

表连接(92)

select * from emp , dept;
select ename , dname from emp , dept;
select ename, dname, e.deptno from emp e, dept d;

表连接(99)

  • 交叉连接 cross join --->笛卡尔积
  • 自然连接(主外键、同名列) natural join -->等值连接
  • oin using连接(同名列) -->等值连接
  • [inner]join on 连接 -->等值连接 非等值 自连接 (解决一切) 关系列必须区分
  • left|right [outer] join on|using -->外连接
  • full join on|using -->全连接 满足直接匹配,不满足 相互补充null ,确保 所有表的记录 都至少出 现一次

DML

insert 添加

insert into 表名 [(字段列表)] values(值列表); 添加记录
insert into 表名(指定列名) values(和指定的列个数、顺序、类型一致的列数据)

update 修改

update 表名 set 字段=值 [,....] where 过滤行记录

select * from tb_user;
--重置所有人员的密码 8888
update tb_user set userpwd=8888 where 1=1;
--修改 yjxxt 的密码 和年龄
update tb_user set userpwd='good',age=29 where username='yjxxt' and
userpwd='verygood';

delete 删除

delete [from] 表名 where 过滤行记录

--删除全部数据
delete from tb_user where 1=1;
--删除指定数据
delete from tb_user where userid<10;
--主外键关联时,注意 参考约束, 约束强制不让删除
--默认先删除从表 再删除主表
delete from tb_txt where 1=1;
delete from tb_user where 1=1;
commit;
--删除主表数据,并设置从表数据为null
--删除主表数据,级联删除从表数据

事务

事务是指作为单个逻辑工作单元执行的一组相关操作。这些操作要求全部完成或者全部不完成。使用事 务是为了保证数据的安全有效。

事务的特点:

  1. 原子性(Atomic):事务中所有数据的修改,要么全部执行,要么全部不执行。
  2.  一致性(Consistence):事务完成时,要使所有所有的数据都保持一致的状态,换言之:通过事 务进行的所有数据修改,必须在所有相关的表中得到反映。 
  3.  隔离性(Isolation):事务应该在另一个事务对数据的修改前或者修改后进行访问。
  4.  持久性(Durability):保证事务对数据库的修改是持久有效的,即使发生系统故障,也不应该丢 失。

事物的隔离级别:

 

 DDL

三范式

1NF-->列不可再分最小原子 (避免重复);

2NF-->主键依赖(确 定唯一);

3NF-->消除传递依赖(建立主外键关联 拆分表);

创建表

表名 tb_user
主键 userid
字段名 中文 类型 为空 默认值 其他说明
userid 流水号 number(5) 否 主键
username 用户名 varchar2(30) 否 长度在4-20
userpwd 密码 varchar2(20) 否 长度在4-18
age 年龄 number(3) 18 大于>=18
gender 性别 char(2) 男 男or 女
email 邮箱 varchar2(30) 唯一
regtime 注册日期 date sysdate

删除表

drop table 表名 (cascade constraints)
--删除表
drop table emp_his;
--主从表关系下删除表
--先删除从表 再删除主表 ;同时删除约束
drop table tb_txt cascade constraints;
drop table tb_user cascade constraints;
--删除主表的同时级联删除约束
drop table emp_his cascade constraints

修改表

1. 修改表名 :rename to

2. 修改列名: alter table 表名 rename column to

3. 修改类型: alter table 表名 modify(字段 类型)

4. 修改约束: 先删除 后添加

5. 添加列: alter table 表名 add 字段 类型

6. 删除列:alter table 表名 drop column 字段

--修改表名
rename tb_txt to tb_txt_new;
--修改列名
alter table tb_txt_new rename column txtid to tid;
--修改类型
alter table tb_txt_new modify(tid varchar2(20));
--添加列
alter table tb_txt_new add col varchar2(30);
--删除列
alter table tb_txt_new drop column col;
select * from tb_txt_new;

约束

在 oracle中所有的一切都是对象, 约束也是一个个的对象,除了能创建约束我们还能对约束进行一些其 他的操作

视图与索引

视图 view

视图:建立在表|结果集|视图上的虚拟表,有以下作用

1. 简化:select 查询语句

2. 重用:封装select语句 命名

3. 隐藏:内部细节

4. 区分:相同数据不同查询

create or replace view 视图名 as select语句 [with read only];

索引

索引: 提高查询速度的一种手段 -->目录

1、唯一性较好字段适合建立索引

2、大数据量才有效果

3、主键|唯一: 唯一索引

create index 索引名 on表名 (字段列表...)
drop index 索引名
create index idx_emp on emp(sal,ename);
drop index idx_emp;
select * from emp order by sal,ename;

序列

1.创建

create sequence 序列名 start with 起始值 increment by 步进;
create sequence seq_tb_user start with 2 increment by 2;

2.使用

在操作数据 添加 更新 -->主键
1)、currval :当前值
2)、nextval:下个值
select seq_tb_user.nextval from dual;
select seq_tb_user.currval from dual

3.删除

drop sequence 序列名;
drop sequence seq_tb_user;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值