
select s
from (select sum(bal) bal, cifno
from (select bal, cifno
from a
union all
select bal, cifno from b) t
group by cifno) s
order by bal desc
记录数
共三个表 T T T
T 的ID是RAW( )
T 的ID是char( )
T 的ID是Number
其它字段一样(连ID共 个字段)
X NUMBER
X NUMBER
X VARCHAR ( BYTE)
X VARCHAR ( BYTE)
X VARCHAR ( BYTE)
X NUMBER
X DATE
X VARCHAR ( BYTE)
X NUMBER
X NUMBER( )
X NUMBER
X NUMBER
X VARCHAR ( BYTE)
X VARCHAR ( BYTE)
X VARCHAR ( BYTE)
X VARCHAR ( BYTE)
X NUMBER( )
X VARCHAR ( BYTE)
X VARCHAR ( BYTE)
X NUMBER
X NUMBER
测试一
select from T ;
select from T ;
select from T ;
结果(单位 秒)
平均
t
t
t
测试二
select count() from T ;
select count() from T ;
select count() from T ;
结果(单位 秒)
平均
t
t
t
结论
select全表 select count
RAW( ) 性能最差
CHAR( )中
NUMBER 最好
不过 与 与 也差不了多少
UUID我是一定要用的 所以只能RAW( )或CHAR( ) 看起来select性能还能接受
insert慢一点无所谓 也不delete
CHAR( )么 可读性好一点 编程稍微方便一点点
lishixinzhi/Article/program/Oracle/201311/17099
1、查表的时候需要用到user_tables、all_tables,user_tables查出来的是该用户拥有的表,all_tables查出来的是所有用户的表。
2、用sql查表的字段
查表的字段需要用到user_tab_columns、all_tab_columns,一样的前者只能查到该用户拥有的表,后者可以查询所有用户的表。
SQL> CREATE SEQUENCE test_sequence2
2 increment by 1 -- 每次递增1
3 start with 1 -- 从1开始
4 nomaxvalue -- 没有最大值
5 minvalue 1 -- 最小值=1
6 NOCYCLE; -- 不循环
Sequence created
SQL> CREATE TABLE test_create_tab2 (
2 id INT,
3 val VARCHAR(10),
4 PRIMARY KEY (id)
5 );
Table created
SQL> CREATE OR REPLACE TRIGGER BeforeTestCreate2Insert
2 BEFORE INSERT ON test_create_tab2
3 FOR EACH ROW
4 BEGIN
5 SELECT test_sequence2nextval INTO :newid FROM dual;
6 END;
7 /
Trigger created
SQL> INSERT INTO test_create_tab2(val) VALUES ('NO id');
1 row created
SQL> INSERT INTO test_create_tab2(id, val) VALUES (1, 'id no use');
1 row created
SQL> SELECT FROM test_create_tab2;
ID VAL
---------- --------------------
1 NO id
2 id no use
今天打算将一个数据库的索引在另一个测试库上重新创建一遍,研究了一下。\x0d\set pagesize 0\x0d\set long 90000\x0d\set feedback off\x0d\set echo off\x0d\spool all_indexsql\x0d\SELECT DBMS_METADATAGET_DDL('INDEX',uindex_name)\x0d\FROM USER_INDEXES u;spool off;最后找个编辑器替换一下表空间名,在表空间名后面加上个;\x0d\然后让ORACLE慢慢执行吧\x0d\其实是调用DBMS_METADATAGET_DDL这个外部过程来获得创建DLL语句,还能获得很多东西\x0d\这个是所有用户的创建DLL\x0d\SELECT DBMS_METADATAGET_DDL('USER',Uusername)\x0d\FROM DBA_USERS U;\x0d\这个是所有表的DLL\x0d\SELECT DBMS_METADATAGET_DDL('TABLE',utable_name)\x0d\FROM USER_TABLES u;\x0d\所有表空间的DLL\x0d\SELECT DBMS_METADATAGET_DDL('TABLESPACE', TStablespace_name)\x0d\FROM DBA_TABLESPACES TS;\x0d\组合一下,所有表,索引存储过程\x0d\SELECT DBMS_METADATAGET_DDL(UOBJECT_TYPE, uobject_name)\x0d\FROM USER_OBJECTS u\x0d\where UOBJECT_TYPE IN ('TABLE','INDEX','PROCEDURE');另外一个相关的语句生成删除某个用户全部索引的语句
oracle中列传行可用wm_concat来实现。
如test表中数据如下:
现要将name列一列显示成行,可用如下语句:
select wm_concat(name) from test;结果:
以上就是关于oracle 数据库查询语句全部的内容,包括:oracle 数据库查询语句、oracleuuid/GUID主键与number主键比较、Oracle用sql语句怎样获取表下所有主键字段名等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)