一、oracle表空间谁创建?
先要创建实例,然后用实例的管理员用户创建表空间
二、oracle创建临时表好处?
临时表的优点:
1 、实现了与Oracle 的基于会话的临时表相同的功能。
2 、支持SDO_GEOMETRY 等lob 数据类型。
3 、支持表间的主外键连接,且主外键连接也是基于会话的。
4 、高级用户可以访问全局数据,以实现更加复杂的功能。
以上供参考,具体可详细查询资料。
三、oracle创建表的方式?
1、直接创建:
create table t(name varchar2(50 char));
2、创建与表A结构相同的空表:
create table a_tmp as select * from A where 1=0;
3、复制表A全部(或部分)数据:
create table a_tmp as select * from A (where a.xxx=xxx)
四、oracle中用户怎样创建表?
oracle建账号很简单的,使用命令,create user username identified by password default tablespace users(换成你自己的表空间) temporary tmp(缺省的临时表空间) ,建立完账号之后,要授权,grant resource,connect to username;然后就可以连上操作了。
五、oracle如何创建默认表空间?
按照你的描述可以用range分区'alter table 表名 add partition 分区名字 values less than 值 tablespace 表空间;' 例子:alter table test1 add partition P20160501 values less than (to_date('20160601','yyyymmdd')) tablespace S2;------这样就可以加入5月份的分区
六、oracle数据库如何查询表数据量?
假设你的表还有一个字段: 名称。 数据大概是:
名称 日期 金额
甲 2017.10 45
乙 2017.11 53
select * from table where 名称 in ( select 名称 from table where 日期 between '2017.11' and '2018.3' group by 名称 having min(金额)>50) and 日期 between '2017.11' and '2018.3' 上面的可以查出2017.11-2018.1这段时间内符合条件的记录.
查出2个时间段可以将上面的SQL复制一份union一下。 不union也有办法实现。
七、oracle数据量大怎么优化?
1、首先要建立适当的索引。sql在索引字段不要加函数,保证索引起效。如果是复合索引注意在sql的顺序。如果已经存在索引,建议你先重建索引先,因为大数据表的索引维护到了一个阶段就是乱的,一般建议重建。建立好的一般可以获得几十倍的速度提升。
2、最大数据量的表放在最前,最小的表放在最后面。sql是从最后面开始反向解析的。
3、其次是要把最有效缩小范围的条件放到sql末尾去。尤其是主键或者索引字段的条件。
4、保证你sql的算法合理性。保证复杂度和空间度的合理性。
5、必要时候使用存储过程。提升30%-40%的速度6、建议你分页读取不要一下读完所有的数据。(使用rownum),一下子数据太多会使得内存不够用的。如果这些都做了还不满意的话,可以考虑建立几个表空间,然后按照一个算法将各个表的数据,平均的放在各个表空间内(分表分区),在select的时候数据库就会使用多线程到各个表空间索引数据,这个一般不是上千万级的表是不用的。也不是所有人都会用。
八、oracle创建表默认的类型是?
在Oracle中,常见的数据类型有:
字符串:字符串分为定长类型char和变长类型varchar2。
数字:整数 number(整数位),小数 number(总长度,小数位),只写number,表示无限制。
日期:date类型,可以保存年月日时分秒。
另外Oracle也有integer等其它类型,但是用integer有缺点,就是不知道其长度,甚至可能在不同的操作系统上(如32位CPU和64位CPU)所分配的长度是不同的。而用number,指定多少,就永远是多少,一切掌握在自己手中。
九、oracle分区表怎么创建索引?
方法如下:
Oracle中建立索引,会提高查询速度: create index 索引名 on 表名(列名);
例如:
create index index_userid on tbl_detail(userid);
如何找数据库表的主键字段的名称?
SELECT * FROM user_constraints WHERE CONSTRAINT_TYPE='P' and table_name='AAA'; select * from dba_cons_columns where CONSTRAINT_NAME='SYS_AAA';
Oracle 在创建主键(可以不加constraint SYS_AAA),会为库表自动创建索引,
索引的列为主键列。 并且当库表某些列名或者库表名改变时候,
Oracle自动创建的索引SYS_AAA,中的索引列也会自动更新(类似于视图),并且SYS_AAA会与名字更改后的库表还是保持索引关系。 关键系统库表: desc dba_constraints desc dba_cons_columns
desc dba_indexes desc dba_ind_columns desc DBA_TAB_COLUMNS
例子1:更改库表的列名
ALTER TABLE AAA RENAME COLUMN ID TO AAA_ID; create table AAA ( ID NUMBER(8), NAME CHAR(20),
constraint SYS_AAA primary key(ID) );
//查找约束名字
select c.CONSTRAINT_NAME,c.table_name,cc.COLUMN_NAME from user_constraints c, user_cons_columns cc
where c.constraint_name=cc.constraint_name and c.table_name ='AAA' AND C.CONSTRAINT_TYPE='P';
CONSTRAINT_NAME TABLE_NAME COLUMN_NAME
SYS_AAA AAA ID
//查找索引
select index_name,index_type,uniqueness from user_indexes where table_name='AAA'; INDEX_NAME INDEX_TYPE UNIQUENES
十、oracle创建表之后需要提交吗?
如果不是事务, SQL SERVER 是默认自动 COMMIT 的 ORACLE 则默认是事务, 就是说, 如果你不去手动COMMIT, 而且也没有自动COMMIT 机制, 是不会COMMIT 的。