您的位置:首页 > 数据库 > Oracle

oracle中用SQL语句创建和管理表

2017-09-19 14:11 357 查看
表名和列名的命名规则:

 必须以字母开头

 必须在1-30个字符之间

 只能包含A-Z,a-z,0-9,_,$,#

 不能与用户定义的其它对象重名

 不能使用ORACLE的保留字

创建前具备的条件:

 CREATE TABLE权限

建表时必须指定:

 表名

 列名,列的数据类型,最大长度

数据类型:

 varchar2(size) 变长字符型(最大长为4000字符)

 char(size)  定长字符型(最大2000字符)

 number(p,s)  数值型

 date   日期型

 long   变长大字符型(最大2G)

 CLOG   大字符型(最大4G)

 raw    裸二进制数据(最大2000字符)

 long raw  裸二进制数据(最大2G) 

 blob   二进制数据,最大4G

 bfile   外部二进制文件,最大4G

 
类型含义存储描述备注
CHAR固定长度字符串最大长度2000bytes 
VARCHAR2可变长度的字符串,最大长度4000bytes可做索引的最大长度749
NCHAR根据字符集而定的固定长度字符串最大长度2000bytes 
NVARCHAR2根据字符集而定的可变长度字符串最大长度4000bytes 
DATE日期(日-月-年)DD-MM-YY(HH-MI-SS),经过严格测试,无千虫问题 
TIMESTAMP日期(日-月-年)DD-MM-YY(HH-MI-SS:FF3),经过严格测试,无千虫问题与DATE相比较,TIMESTAMP有小数位秒信息
LONG超长字符串最大长度2G,足够存储大部头著作 
RAW固定长度的二进制数据最大长度2000bytes可存放多媒体图象声音等
LONG RAW可变长度的二进制数据最大长度2G可存放多媒体图象声音等
BLOB二进制数据最大长度4G 
CLOB字符数据最大长度4G 
NCLOB根据字符集而定的字符数据最大长度4G 
BFILE存放在数据库外的二进制数据最大长度4G 
ROWID数据表中记录的唯一行号10bytes********.****.****格式,*为0或1
NROWID二进制数据表中记录的唯一行号最大长度4000bytes 
NUMBER(P,S)数字类型P为整数位,S为小数位 
DECIMAL(P,S)数字类型P为整数位,S为小数位 
INTEGER整数类型小的整数 
FLOAT浮点数类型NUMBER(38),双精度 
REAL实数类型NUMBER(63),精度更高
创建语法:

 create table [schema.]tablename

 (column datatype [default expr] [constaint],

 ....)

查看表结构:

 desc tablename

 
oracle表的类型

 用户自定义表

 数据字典

  oracle 自动创建的一组表

  包含了数据库的自身信息,用于管理和维护数据库用

 关于表的数据字典:

  user_catalog,all_catalog,dba_catalog,

  user_tables,all_tables,dba_tables,

 user_tables 自已建的表

 all_tables 自已可以访问的表

 dba_tables 数据库中所有的表

如何克隆一个表

 克隆整个表:

  create table emp as select * from scott.emp;

 克隆表结构:

  create table emp2 as select * from scott.emp where 1=2;

 

 
如何查看一个表占用的磁盘空间:

 dba_extents,

 dba_segments

 insert into emp select * from emp;

 select SEGMENT_NAME,SUM(BYTES)/1024/1024

 from dba_extents where SEGMENT_NAME='EMP' AND OWNER='SYS'

 GROUP BY SEGMENT_NAME;

  SELECTOWNER,SEGMENT_NAME,SEGMENT_TYPE,

 TABLESPACE_NAME,bYTES/1024/1024

   FROM DBA_SEGMENTS WHERE SEGMENT_NAME='EMP';

 

数据字典中更新表信息

 exec dbms_stats.gather_table_stats('SCOTT','TEST');

 

修改表:

 添加新列

 alter table tablename

 add (column datatype [default expr]);

 删除列:

 alter table tablename

 drop column colname

 列改名:

 alter table tablename

 rename column colname to new_colname

 表改名:

 alter table tablename rename to new_tablename

 rename test2 to test

 修改列的数据类型,尺寸和默认值

 alter table tablename

 modify (column datatype [default values])

 将列标记为不可用:

 alter table tablename

 set unused(column)

 删除表

 drop table tablename

 
 截断表(删除所有记录,保留表结构)

 truncate table tablename

 表加注释

 comment on table tablename is '...注释内容...'

 列加注释

 comment on column tablename.column is '......'

 与注释相关的数据字典

 all_col_comments

 user_col_comments

 all_tab_comments

 user_tab_comments

关于表结构的数据字典:

 dba_tab_columns

使用空值和默认值

 隐式:插入记录时,不指定字段,不指定值

 显示:插入记录时,空值字段填null,默认值字段填default
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: