SQL> RENAME 表名1 TO 表名2; SQL> ALTER TABLE 表名1 RENAME TO 表名2;
在表的后面增加一个字段
SQL> ALTER TABLE 表名 ADD 字段名 字段名描述 [ DEFAULT expr ][ NOT NULL ][ ,字段名2 ……];
修改表里字段的定义描述
SQL> ALTER TABLE 表名 MODIFY 字段名1 字段名1描述 [ DEFAULT expr ][ NOT NULL ][ ,字段名2 ……]; 记录为空时,可以减少字
段长度,改变字段类型修改DEFAULT值只作用于修改后的INSERT和UPDATE的记录修改NOT NULL约束只对现存含非空记录的字段起作用
1. 改变表的几种情况(2) 运行时会加表级锁
删除表里的某个字段
SQL> ALTER TABLE 表名 DROP 字段名;
给表里的字段加上/禁止/启用约束条件
SQL> ALTER TABLE 表名 ADD | DISABLE | ENABLE CONSTRAINT 约束名 PRIMARY KEY (字段名1[,字段名2 ……]);
SQL> ALTER TABLE 表名 ADD | DISABLE | ENABLE CONSTRAINT 约束名 UNIQUE (字段名1[,字段名2 ……]);
加唯一关键字或者唯一约束条件时自动建立索引
说明:禁止唯一关键字和唯一约束时索引仍然存在,可以被使用.
1. 改变表的几种情况(3) 运行时会加表级锁
删除表里的约束条件
SQL> ALTER TABLE 表名 DROP CONSTRAINTS 约束名 [CASCADE];
会把约束相关的索引一起删除. CASCADE能同时删去外键的约束条件.
把表放在或取出的内存区
SQL> ALTER TABLE 表名 CACHE;
SQL> ALTER TABLE 表名 NOCACHE;
改变表存储的表空间
SQL> ALTER TABLE 表名 MOVE TABLESPACE 表空间名 ;
注意: 如果被转移表空间的表含有索引, 表转移后索引变得不可用.
我们要删除旧索引,建立新索引
2. 删除表及表里的数据
删除表
SQL> DROP TABLE 表名 [CASCADE CONSTRAINTS];
清空表里的记录
SQL> TRUNCATE TABLE 表名;
按时间清空日志表里的记录,使用重新命名的方法(应用程序可能有短暂出错, 可以选择在不繁忙的时间执行)
按原来表A的建表语句创建新表A1,
把表A重命名为A2(如果表A上有较频繁的DML操作,会对表加上行级锁,重命名过程用递归的方式循环做,直到DML操作结束,命名成功).
把创建新表A1重命名为A
历史记录表A2备份或删除
3. 删除表后应该注意的问题
删除表后把表里的索引一起删去.
删除表后会结束基于它的悬而未决的事物
删除表后根据表创建的views,synonym,stored procedure,stored function依然存在,但views,synonym变成非法的. 需要手工找出它们并删除
.
如果用了CASCADE CONSTRAINTS会把与它相关的约束一起删除
此操作不可回退
4. 给表加注释
加注释的语法
SQL> COMMENT ON TABLE 表名 | COLUMN表名.字段名 IS ‘text‘
加注释的例子
SQL> comment on table s_emp is ‘Enployee information‘;
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/ruanjian/article-25214-14.html
请你给我画一只绵烊吧
不喜欢舒淇