修改表字段:alter table ..表名.. rename column ..当前列名.. to ..新的列名..
添加列:alter table ..表明.. add (w number(4),y number(4))
删除列:ALTER TABLE [schema_name.]table_name DROP COLUMN column_name1[|column_name2] [CASCADE CONSTRAINT]
建物化视图时,字段不能有自定义null的字段
如:
Create MATERIALIZED VIEW MV_STU as (
select id,name,null age from stu
)
由于stu表中没有age字段,而视图想要有视图,则无法生成物化视图
会报错:
ORA-01723: zero-length columns are not allowed
解决:
Create MATERIALIZED VIEW MV_STU as (
select id,name,CAST(null AS VARCHAR2(10)) as age from stu
)
修改表名:rename TB_OLDNAME to TB_NEWNAME
修改列属性: alter table ..表名.. modify ..列名.. NUMBER(10)/NULL (NULL表示可以为null)
查询日期类型:SELECT count(1) from T_USER b where to_char(b.thedate,'YYYY-MM-DD')='2006-12-11'
float类型保留两位小数:cast(purchase.quantity as numeric(10,2))
TIMESTAMP(6) 转换VarChar2 : to_char(saletracking.saledate,'yyyy-mm-dd')
Oracle数据类型:
Char 用于描述定长的字符型数据,长度<=2000字节
varchar2 用于描述变长的字符型数据,长度<=4000字节
nchar 用来存储Unicode字符集的定长字符型数据,长度<=1000字节
nvarchar2 用来存储Unicode字符集的变长字符型数据,长度<=1000字节
number 用来存储整型或者浮点型数值
Date 用来存储日期数据
Long 用来存储最大长度为2GB的变长字符数据
Raw 用来存储非结构化数据的变长字符数据,长度<=2000字节
Long raw 用来存储非结构化数据的变长字符数据,长度<=2GB
rowid 用来存储表中列的物理地址的二进制数据,占用固定的10个字节
Blob 用来存储多达4GB的非结构化的二进制数据
Clob 用来存储多达4GB的字符数据
nclob 用来存储多达4GB的Unicode字符数据
Bfile 用来把非结构化的二进制数据存储在数据库以外的操作系统文件中
urowid 用来存储表示任何类型列地址的二进制数据
float 用来存储浮点数
查表名和字段名
--其中:table_name:表名(varchar2(30));
--tablespace_name:存储表名的表空间(varchar2(30));
--temporary:是否为临时表(varchar2(1))
select table_name,tablespace_name,temporary from user_tables where table_name like 'DOS%'
--其中:column_name:列名(varchar2(30));
--data_type:列的数据类型(varchar2(106));
--data_length:列的长度(number); 变量必须大写
select column_name,data_type ,data_length,data_precision,data_scale from user_tab_columns where table_name='DOS_OWNER_ORG';