oracle 表结构的修改
更改表的结构
1.编辑表的字段
修改一个列的数据类型(一般限于修改长度,修改为一个不同类型时有诸多限制):
语法:
ALTER TABLE 表名 MODIFY(列名 数据类型);
eg1:
alter table skate_test modify (author number(10,0) )
在修改列的长度时候,只能编辑比现有字段实际存的长度还要大,否则提示下面的错误:
ORA-01441: 无法减小列长度, 因为一些值过大
eg2:
alter table skate_test modify (author varchar2(10) )
在修改列的数据类型的时候,所修改的列必须为空,否则提示下面的错误:
ORA-01439: 要更改数据类型, 则要修改的列必须为空
2.增加一个列
语法:
ALTER TABLE 表名 ADD(列名 数据类型);
eg1:
ALTER TABLE skate_test ADD(author NUMBER(38,0) not null);
3.给列改名:
语法:
ALTER TABLE 表名 RENAME COLUMN 当前列名 TO 新列名;
eg1:
ALTER TABLE skate_test RENAME COLUMN author TO authorer_new
4.删除一个列
语法:
ALTER TABLE 表名 DROP COLUMN 列名;
eg1:
alter table skate_test drop column author
5.将一个表改名
语法:
ALTER TABLE 当前表名 RENAME TO 新表名;
eg1:
alter table skate_test rename to test_sakte
5.给表加注释
comment column on 表名.列名 is '注释内容'; //修改表的列的注释
COMMENT ON TABLE MOVO_NEW.TEST_SAKTE IS '注释内容'; //修改表的注释
--- 待续---
相关文档:
Oracle删除重复记录的最好的方法:
DELETE from EMP E WHERE E.ROWID > (SELECT MIN(y.ROWID)
from EMP y
WHERE y.EMPNO = E.EMPNO )
1、子查询找出某员工最低的ROWID(肯定只有一个),其它大于这条记录ROWID的,全部删除。
2、Oracle中使用ROWID删除重复记录最快,因为Rowid对应这条记录在磁盘上的位置
面试: ......
1.客户端连接至oralce:
首先客户端连接至oracle的监听器,然后监听器分配一个数据库实例(这里的是实例)给客户端,然后客户端以后就直接与这个数据库实例进行连接,直至断开与oracle的连接.
2.提交sql:
(1)客户端用户提交一个sql ......
最近始终被数据库问题困扰,出于项目应用原因,定义了一些oracle自定义函数(User Defined function),用于在实际查询SQL语句中调用,目的是为了简化SQL语句的复杂度。实际使用中发现,这些函数会出现一个莫名奇妙的问题,先上实例:
CREATE OR REPLACE FUNCTION "GETSINGLEUSER" --返回第一个字符串
(sStr in nvarchar2)
r ......
1 查看某张表的index的详细信息。(column_position代表选择顺序)
select table_name, index_name, column_name, column_position
from user_ind_columns
where table_name = 'T_BASE_DATA_DICTIONARY'
order by table_name, index_name, column_position;
2 在创建表时对列指定NOT NULL后会禁用N ......
关键词:
绑定变量(binding variable),共享池(shared buffer pool), SGA(system global area);
在开发一个数据库
系统前,有谁对Oracle 系统了解很多,尤其是它的特性,好象很少吧;对初学者来讲,这更是不可能的事情;仅仅简单掌握了SQL
的写法,就开始了数据库的开发,其结果只能是开发一个没有效率,也没有可扩展的系统;
j8m ......