(脑图文件的分享,本意是方便大家,但是积分资源变成平台收割的途径,如有需要,可私信)
oracle
基础操作
DML
插入
-
single table insert
-
insert into… values…
- 一次不能插入多行
-
insert into … select from…
-
-
multi table insert
- insert all,分为有条件插入和无条件插入,可以有else子句,同一个when可以被多个into使用
- insert first,只要匹配when,后续判断不再执行
- 可以将每行计算的记录插入到多个表中
- 可以在相关表执行
- 只能通过子查询执行
- 不能在remote 表执行
- 不能在视图执行
- 不能用SQL*Loader执行
更新
-
update
-
更新单行
-
单行单列
- update table set column = … where…
-
单行多列
-
update table set col1=…,col2=…, where…
-
可以对被更新的每一列单独使用不同子查询
-
update set can modify multiple rows based on multiple conditions on a table
-
update table set (select … from …)
-
-
-
-
更新多行
- update table set col1=…(即没有where条件)
- select * from table for update
-
删
-
delete
- dml,可使用rollback撤销回滚
- 可以使用where指定要删除的行
- 清空表数据
-
cascade:级联删除时使用
DDL
改
-
alter table
-
重命名一张表/列名/列字段类型;新加列
-
alter table add/drop/modify column 列名 (字符类型)(单列,需要加上column)
-
alter table add/drop/modify (列名1,列名2…) (多列)
-
为表中一组数据行加锁
-
启用或禁用表上的约束
-
drop column
- 不能将所有列同时drop掉,会报错
-
set unused(列名)
- unused:由于对大表drop column很耗时,可以先用 set unused逻辑删除,等找到时间窗口再做物理删除;set unused的列仍被计算在每张表的前1000列
- 被set unused的列名可以被新列复用
- 被set unused的列中数据不再可以更新
- 清除掉字典信息(撤消存储空间),不可恢复
- 不会释放数据行的该列数据占用空间,即使commit
-
-
增
- create table
-
外表
- create table cost ( cost_id number(2), credit_limit number(10) ) organization external (type **** default directory *** location(‘***.csv’))
- type: 数据转换驱动器,默认为oracle_loader/oracle_driver
- location: 指定外部表所在文件夹以及指定文件
- create table as select语句可以从外表中upload数据到数据库里的regular table
- data,metadata存储位置,都在数据库外❌
- 默认的reject limit对于外表来说是unlimited❌
- oracle_loader/datapump在外表里有相同的功效❌
-
临时表
- global temporary table,分为事务级、会话级;事务级只对当前事务有效,on commit delete rows;会话级只对当前会话有效,on commit preserve rows
- 可以有多个索引;
- 可以被定义视图的语句引用
- 可以创建触发器
- 可以被定义为多个session访问
- 可以只授予一部分列的权限:insert,update,references
-
删
-
truncate
- 不可以通过rollrack撤销
- 不可以使用where指定要删除的行
- ddl语句,隐式提交
- 只删除表中数据,保留表结构及其列、约束、索引等,新行计数值重置
-
drop
- drop index/table/database (表上定义的所有索引/约束被drop)
- ddl,无法回滚
- 表被移到 recycle bin
-
purge
- 对回收站中的表执行清除
- 可使用drop table…purge,表示将表彻底清除,并且可以释放表所占用的空间
函数
聚合函数
-
group by。。。having 聚合函数 条件
-
count
- count(*,1,常