oracle 数据库查询语句

oracle 数据库查询语句,第1张

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语句怎样获取表下所有主键字段名等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9498401.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存