【oracle资料整理】--【2】如何建表

本文详细介绍了使用SQL进行表创建、修改、删除等基本操作的方法,包括创建学生表和班级表的具体语法,以及如何添加、修改、删除字段等内容。
如何建表
   学生表student
        create table student( --学生表
           xh number(4), --学号
           xm varchar2(10), --姓名
           sex char(2), --性别
           birthday date, --日期
           sal number(7,2) --奖学金
        );
   班级class
       create table class( --班级表
          classid number(2), --班级编号
          cname varchar2(20) --班级名字
       );
  添加字段(学生所在班级classid)
      alter table student add (classid number(2));
  修改字段的长度
      alter table student modify (xm varchar2(12)) ;
  修改字段的类型(不能有记录的)
      alter table student modify (xh varchar2(5));
  删除一个字段
      alter table student drop column sal;
  删除表
      drop table student;
  表的名字修改
      rename student to stu;
  字段如何改名字
      --先删除
      a)alter table student drop column sal;        
      --再添加
      b)alter table student add (salary number(7,2)); 
<think>我们被要求整理和优化Oracle创建多个表空间的SQL语句,使其格式清晰、结构规范,并确保语法正确。 根据引用[2]和引用[3]中的信息,我们可以知道创建表空间的基本语法,并且引用[4]提供了查看表空间的语句,但这里我们主要关注创建。 创建表空间的基本语法如下: CREATE TABLESPACE tablespace_name DATAFILE 'path_to_datafile.dbf' SIZE size [AUTOEXTEND ON [NEXT next_size] [MAXSIZE max_size]] [EXTENT MANAGEMENT LOCAL] [SEGMENT SPACE MANAGEMENT AUTO]; 其中: - tablespace_name:表空间名称。 - 'path_to_datafile.dbf':数据文件的路径和文件名。 - SIZE:指定数据文件的初始大小。 - AUTOEXTEND ON:允许自动扩展。 - NEXT:指定自动扩展时每次增加的大小。 - MAXSIZE:指定数据文件的最大大小。 - EXTENT MANAGEMENT LOCAL:使用本地管理表空间(现代Oracle的默认方式,推荐)。 - SEGMENT SPACE MANAGEMENT AUTO:使用自动段空间管理(推荐)。 为了格式清晰、结构规范,我们将每个表空间的创建语句单独写,并适当使用换行和缩进。 同时,我们可以添加注释说明每个参数的作用。 假设我们需要创建两个表空间:NNC_DATA01 和 NNC_INDEX01,路径分别为 '/u01/oradata/orcl/nnc_data01.dbf' 和 '/u01/oradata/orcl/nnc_index01.dbf',初始大小均为100M,自动扩展每次10M,最大大小无限制(UNLIMITED)。 整理后的SQL语句如下:</think>以下是根据Oracle官方文档整理的创建多个表空间的SQL语句模板,已优化格式、规范结构并确保语法正确: ### 规范化表空间创建语句模板 ```sql -- 创建数据表空间 (永久性表空间) CREATE TABLESPACE nnc_data01 DATAFILE '/u01/oradata/ORCL/nnc_data01.dbf' -- 数据文件路径 SIZE 500M -- 初始大小 AUTOEXTEND ON NEXT 100M -- 自动扩展增量 MAXSIZE UNLIMITED -- 最大空间限制 EXTENT MANAGEMENT LOCAL -- 本地管理区 SEGMENT SPACE MANAGEMENT AUTO; -- 自动段空间管理[^3] -- 创建索引表空间 CREATE TABLESPACE nnc_index01 DATAFILE '/u01/oradata/ORCL/nnc_index01.dbf' SIZE 300M AUTOEXTEND ON NEXT 50M MAXSIZE 10G EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO; -- 创建临时表空间 (排序操作专用) CREATE TEMPORARY TABLESPACE nnc_temp TEMPFILE '/u01/oradata/ORCL/nnc_temp.dbf' SIZE 200M AUTOEXTEND ON NEXT 50M MAXSIZE 2G; ``` ### 关键优化点说明 1. **路径规范** - 使用绝对路径 `'/u01/oradata/ORCL/...'` 确保文件位置可管理 - 文件名与表空间名保持一致(如 `nnc_data01.dbf`)提高可读性[^2] 2. **空间管理策略** - `EXTENT MANAGEMENT LOCAL`:使用本地管理区提升性能 - `SEGMENT SPACE MANAGEMENT AUTO`:自动段空间管理减少碎片[^3] 3. **扩展配置** - `AUTOEXTEND ON NEXT`:设置合理增长步长(如100M) - `MAXSIZE`:生产环境建议设置上限(如 `MAXSIZE 10G`) 4. **表空间类型区分** - 永久表空间(`CREATE TABLESPACE`) - 临时表空间(`CREATE TEMPORARY TABLESPACE`) - 撤销表空间(需使用 `UNDO` 关键字) ### 表空间管理最佳实践 1. **空间监控** 使用此SQL监控使用率: ```sql SELECT tablespace_name "表空间", ROUND((used_space/file_size)*100,2) "使用率(%)" FROM dba_tablespace_usage_metrics; -- 实时使用率查询[^4] ``` 2. **文件分布** 多数据文件示例(分散I/O负载): ```sql ALTER TABLESPACE nnc_data01 ADD DATAFILE '/u02/oradata/ORCL/nnc_data02.dbf' SIZE 500M; ``` 3. **参数说明表** | 参数 | 说明 | 推荐值 | |------|------|--------| | `SIZE` | 初始大小 | ≥500M | | `NEXT` | 扩展增量 | 初始大小的10%-20% | | `MAXSIZE` | 最大限制 | 根据磁盘容量设置 | | `AUTOEXTEND` | 自动扩展 | ON(生产环境必需) | > **注意**:路径 `/u01/oradata/ORCL/` 需替换为实际环境中的Oracle数据目录,可通过以下查询获取: > ```sql > SELECT file_name FROM dba_data_files; -- 查看现有数据文件位置[^4] > ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值