每一列:select count(列名) from 表名 where 列名=值
创新互联公司坚持“要么做到,要么别承诺”的工作理念,服务领域包括:做网站、成都网站设计、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的鄂温克网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
这样就得到有多少列。
若是一次查询多个列,可以写过程。
select * from dba_users; 查看数据库里面所有用户,前提是你是有dba权限的帐号,如sys,system
select * from all_users; 查看你能管理的所有用户!
select * from user_users; 查看当前用户信息 !
-- 查询你 当前用户下,有哪些表
SELECT * FROM user_tables
-- 查询你 当前用户下, 可以访问哪些表 [也就是访问自己 和 其他用户的]
SELECT * FROM all_tables
-- 查询当前数据库所有的表, 需要你有 DBA 的权限
SELECT * FROM dba_tables
方法一:可以通过group
by
进行分组。
sql:select
username,count(username)
from
tablename
grop
by
username;
解释:以上sql就是通过分组函数读取出tablename表中username的值和每个不同值的统计个数。
方法二:可以通过distinct函数
进行去重查询。
sql:select
distinct
username
from
tablename
解释:本sql就是查询出所有的tablename表中的username值(不重复)。
1.
这里涉及到两个系统视图的应用dba_tab_cols和user_tab_cols;
2.
dba_tab_cols包含所有用户下表字段信息;user_tab_cols包含当前用户下表信息;使用tba_tab_clos查询表字段类型需要指定owner(用户)
3.
上述两个表中,table_name,column_name,data_type就可以满足需要查询表字段类型了,具体类型对应其他字段还有另外定义,比如varchar2,date,number还对应在data_length字段有值,说明类型其长度
4.
user_tab_columns和user_tab_cols都可以满足问题要求,但是两张视图还是有区别的,主要是包含字段的区别等,具体区别可以度娘哈,这里就不赘述。
1、首先在使用的电脑上,添加想要查询数据库的服务和监听,通过Oracle客户端管理工具中的Net Manager来完成。
2、创建两个数据库的连接---DBLink,可以通过指令完成,也可以通过图形界面完成。
3、在Oracle管理工具中开启一个新的SQL windows窗口,测试操作我们连接的异地Oracle数据库。
4、编写一个查询语句来测试,这里做一个select操作。
5、最后运行,如下图可以看到查询结果。
1、创建测试表,
create table test_cols(id varchar2(20),remark varchar2(20),ex_filed1 varchar2(20),ex_filed2 varchar2(20));
2、编写sql,查看系统视图,可以看到该用户下所有表的字段信息,select * from user_tab_cols;
3、编写sql,查询刚创建的表,字段信息,select * from user_tab_cols t where table_name = 'TEST_COLS';
4、编写sql,查询该表的字段数,这样对于字段较多的表,结果更明显;
select count(distinct column_name) from user_tab_cols t where table_name = 'TEST_COLS'