创建和管理表
/*************创建表*****************/
create table student
(
stu_code varchar2(10) constraint pk_stu_code primary key
using index tablespace indx,
stu_name varchar2(20),
stu_sex char(1) check(stu_sex in('f','m'))
)
tablespace users
pctfree 30
pctused 40
storage
(
initial 40k
next 80k
minextents 2
maxextents 10
pctincrease 50
)
initrans 2
maxtrans 50
logging
parallel
/*
注解:
pctfree:空闲因子
pctused:复用因子
storage参数继承和重载表空间的参数。不写默认使用表空间的参数设置。
initrans:预留可以访问事务的块数(保存事务ID号)
create table student
(
stu_code varchar2(10) constraint pk_stu_code primary key
using index tablespace indx,
stu_name varchar2(20),
stu_sex char(1) check(stu_sex in('f','m'))
)
tablespace users
pctfree 30
pctused 40
storage
(
initial 40k
next 80k
minextents 2
maxextents 10
pctincrease 50
)
initrans 2
maxtrans 50
logging
parallel
/*
注解:
pctfree:空闲因子
pctused:复用因子
storage参数继承和重载表空间的参数。不写默认使用表空间的参数设置。
initrans:预留可以访问事务的块数(保存事务ID号)
maxtrans:最大可访问事务的块数.
OLTP类型:initrans 10
maxtrans 255
DSS类型: initrans 1
maxtrans 15
最小为1,不能设置为0。
buffer_spool keep|recycle|defaull
keep:表示常驻内存区(一般不用)
recycle:表示临时或即时清除区
defaull:默认存放
*/
maxtrans 255
DSS类型: initrans 1
maxtrans 15
最小为1,不能设置为0。
buffer_spool keep|recycle|defaull
keep:表示常驻内存区(一般不用)
recycle:表示临时或即时清除区
defaull:默认存放
*/
/************插入数据******************/
insert into student values(0001,'呵呵','f');
insert into student values(0002,'细心','m');
insert into student values(0003,'邪恶','m');
insert into student values(0004,'白事实','m');
insert into student values(0005,'白代数ff ','f');
insert into student values(0006,'白但厂tsfdgdssd','f');
column stu_sex format a3;
select * from student;
insert into student values(0001,'呵呵','f');
insert into student values(0002,'细心','m');
insert into student values(0003,'邪恶','m');
insert into student values(0004,'白事实','m');
insert into student values(0005,'白代数ff ','f');
insert into student values(0006,'白但厂tsfdgdssd','f');
column stu_sex format a3;
select * from student;
STU_CODE STU_NAME STU
---------- -------------------- ---
1 呵呵 f
2 细心 m
3 邪恶 m
4 白事实 m
5 白代数ff f
6 白但厂tsfdgdssd f
---------- -------------------- ---
1 呵呵 f
2 细心 m
3 邪恶 m
4 白事实 m
5 白代数ff f
6 白但厂tsfdgdssd f
/*修改该行的占用的位置大小为7格***********/
column stu_sex format a7;
STU_CODE STU_NAME STU_SEX
---------- -------------------- -------
1 呵呵 f
2 细心 m
3 邪恶 m
4 白事实 m
5 白代数ff f
6 白但厂tsfdgdssd f
---------- -------------------- -------
1 呵呵 f
2 细心 m
3 邪恶 m
4 白事实 m
5 白代数ff f
6 白但厂tsfdgdssd f
/*************标记列为不可用状态(该行将不被显示)*****************/
alter table student set unused (stu_sex);
/************** 查询标记列****************/
select * from dba_unused_col_tabs;
/*************删除所有标记列(不能回滚)*************/
alter table student drop unused columns;
alter table student drop unused columns;
/*************删除单一标记列(不能回滚)*************/
alter table student drop unused(stu_sex);
/***********段平移(从表空间开始修改存储参数)**************/
alter table student move
tablespace tools
/*****************表的删除************************/
drop table student cascade constraints
cascade constraints :强制删除本表及其他表中的相关外部约束.(FK....)
/***************表的内容删除(保留MINEXTENTS)**************/
truncate table student drop storage
/*******表的内容删除(删除所有的区)******/
truncate table student resume storage
/***********约束的禁用*************/
alter table student disable constraint pk_stu_code;
/***********约束的激活*************/
alter table student enable constraint pk_stu_code;
/****************************查询违反约束的记录**********************************/
运行下面的SQL:
create table exceptions(row_id rowid,
owner varchar2(30),
table_name varchar2(30),
constraint varchar2(30));
owner varchar2(30),
table_name varchar2(30),
constraint varchar2(30));
/****执行约束管理语句****/
alter table student enable constraint pk_stu_code exceptions into exceptions;
/****查询约束管理的记录****/
select * from exceptions
select * from exceptions
/****执行结果****/
ROW_ID OWNER TABLE_NAME
------------------ ------------------------------ ------------------------------
CONSTRAINT
------------------------------
AAAH2XAAIAAAAASAAG SYSTEM STUDENT
PK_STU_CODE
------------------ ------------------------------ ------------------------------
CONSTRAINT
------------------------------
AAAH2XAAIAAAAASAAG SYSTEM STUDENT
PK_STU_CODE
AAAH2XAAIAAAAASAAA SYSTEM STUDENT
PK_STU_CODE
PK_STU_CODE
/************************************表分区(创建表时分区)**********************************/
分类: 范围分区:用一个具有明显特性的字段做为分区标准
列表分区:枚举(例如性别)
散列分区:不具有范围和枚举特性的分区.(系统调配)又称为哈希分区
复合分区
/*******范围分区******/
partition by range (stu_code)
(
partition pt_stu_01 values less than('100') tablespace tools pctfree 20 pctused 30,
partition pt_stu_02 values less than('200') tablespace users pctfree 20 pctused 30,
partition pt_stu_03 values less than(maxvalue) tablespace system pctfree 5
)
/*****列表分区***********/
partition by list (stu_sex)
(
partition pt_stu_03 values ('f'),
partition pt_stu_04 values ('m')
)
/*****散列分区*********/
partition by hash (stu_code)
(
partition pt_stu_05 tablespace users,
partition pt_stu_06 tablespace tools
)
/*****新建分区(只能在已有同一类型的分区上添加)*****/
alter table student add partition pt_stu_07
/*****移动分区******/
alter table student move partition pt_stu_08 tablespace users
/*****删除分区(散列不能删除)****/
alter table student drop partition pt_stu_03
/****拆分分区(散列不能拆分)****/
alter table student split partition pt_stu_01 at 300 into pt_stu_10
错误/******合并分区(散列不能合并)************/
alter table student merge partition(pt_stu_01, pt_stu_02) into pt_stu_11
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?