重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

oracle如何查多表,Oracle 多表查询

oracle多表查询

我对你的表进行了整理下,没有使用中文,都是英文编写,严格按照企业的要求,这也是比较好的习惯。

成都创新互联是一家集网站建设,连平企业网站建设,连平品牌网站建设,网站定制,连平网站建设报价,网络营销,网络优化,连平网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

以下是建表语句:

create table T_USER_INFO

(USERID number(5) primary key,

USERNAME varchar2(10),

CREDENTIALS varchar2(20));

create table T_CHARGING

(CHARGINGID number(5) primary key,

USERID number(5),

MONEY number(5),

CHARGINGDATE date);

insert into T_USER_INFO values(1, '张三', '222222');

insert into T_USER_INFO values(2, '李四', '333333');

insert into T_CHARGING values(1, 1, 300, to_date('2008-9-1', 'yyyy-mm-dd'));

insert into T_CHARGING values(2, 1, 300, to_date('2009-9-1', 'yyyy-mm-dd'));

insert into T_CHARGING values(3, 1, 300, to_date('2010-9-1', 'yyyy-mm-dd'));

insert into T_CHARGING values(4, 2, 400, to_date('2014-9-1', 'yyyy-mm-dd'));

用户信息表:

计费表:

接下来是查询语句,分了几步,注意理解。

1、查询每个人的最后缴费时间

select USERID, max(CHARGINGDATE) LASTDATE 

from  T_CHARGING 

group by USERID

执行 结果:

2、将第一步得到的结果与用户信息关联查询

select u.USERID, u.USERNAME, u.CREDENTIALS, t.LASTDATE 

from T_USER_INFO u, (select USERID, max(CHARGINGDATE) LASTDATE 

from  T_CHARGING group by USERID) t 

where t.USERID = u.USERID

执行结果:

3、将第二步得到的结果与计费表进行关联查询。

select t0.USERID, t0.USERNAME, t0.CREDENTIALS, t0.LASTDATE, tc.MONEY

from (select u.USERID, u.USERNAME, u.CREDENTIALS, t.LASTDATE 

from T_USER_INFO u, (select USERID, max(CHARGINGDATE) LASTDATE 

from  T_CHARGING 

group by USERID) t 

where t.USERID = u.USERID) t0, T_CHARGING tc 

where tc.USERID = t0.USERID and t0.LASTDATE = tc.CHARGINGDATE;

执行结果:

如何查看oracle数据库中的所有表

觉得你应该先弄清楚oracle的常规数据字典的结构,像9i里的常规数据字典中对象名称就有以USER,ALL,DBA为前缀的对象。

以USER为例,我们查该对象下有些什么表,就应该执行下列的语句:

SQLselect table_name from user_tables;

类似的,你可以进行替换。:)

如果你想查数据库中所有的表的话,可以查询

SELECT * FROM dba_tables

如果你想查询数据库中某个用户下的表的话,也可以登录这个用户,再查询:

SELECT * FROM USER_TABLES

要想导入外部sql语句可以用命令

sql @e:\文件名.sql

如你想保存 select * from tablename;语句的结果,可以在sql*plus 里面这样:

SPOOL c:\test.sql //这是保存文件的位置

select * from tablename;

SPOOL OFF

在oracle数据库中如果查询一个数据库中有哪几张表?

1、本文以plsql图形化管理工具为例,使用它连接oracle数据库。当点开plsql的时候,就需要输入用户名、密码、数据库然后连接。如果连接成功,就能查看里面的表等等操作,如果连接不成功,就输入正确的信息再次尝试。

2、连接上数据库之后,默认会看到这个主界面。顶部是各种操作菜单,左侧第一个框是最近打开的一些信息,第二个框里面的才是数据库的所有信息。

3、如果不想看到这么多的框,只想专注于数据库的相关信息,就可以将其他框关闭或者隐藏,这两种方式只是点击不同的按钮而已,具体参见截图。

4、在oracle数据库中,用户是属于表空间的,因此,当使用某一个用户登录之后,看到的其实就是这个用户默认的表空间中的信息。这个时候,可以展开【Tables】菜单,就能看到当前表空间下的所有表,如果表的数量不多,就可以直接一个一个的数出数量。

5、如果当前用户具有管理员权限,还可以在【Tablespaces】菜单下面,找到所有的表空间名称,在每个表空间名称下面还有【Tables】菜单,这里面会显示这个表空间下面的所有用户和表。

注意,对于同一个表空间下的相同数据库,在这里会显示每个用户都拥有一套表结构

6、如果想直接获得表空间中的表数量,可以点击左上角的新建图标,选择【SQLWindow】,右侧就会出现一个空白的SQL语句书写窗口

7、获取指定表空间下表数量(这是包含了此表空间下的所有用户的表)

selectcount(1)fromall_tableswheretablespace_name='表空间名称';获取指定表空间下,指定用户的表数量。

selectcount(1)fromall_tableswheretablespace_name='表空间名称'andowner='用户名称';如果将count(1)换成星号,就可以查询表空间下的所有表名信息等。

oracle中怎么实现多表查询

查询,首先你得清楚你需要什么数据,以及你所需要的数据,存在于哪些表中,或者说与哪些表有关联。

SQL 语句基本查询语法: 不加条件查询,select * from 表名 ; 加条件查询:select * from 表名 where 满足的条件;

多表查询 :select a.* ,b.* from 表1 a,表2 b where a.字段=b.字段;

oracle中如何查询多张表的数据!

弄个字符串变量,设个游标,用括号里那一串;

然后遍历表名,每找到一个表名,就在字符串变量里拼上一段:=

'select

*

from

'||table_name||';',

然后用EXECUTE

IMMEDIATE执行;

然后读下一个表名,直至遍历完毕。

大致就是这么个意思。


文章名称:oracle如何查多表,Oracle 多表查询
当前网址:http://cqcxhl.cn/article/hshchh.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP