欢迎更多的朋友加入我的QQ群 一起交流学习
Oracle:
1.查询表名:
select table_name,tablespace_name,temporary from user_tables //在所有非管理员创建的表中查询
select table_name,tablespace_name,temporary from dba_tables //在所有管理员创建的表中查询
select table_name,tablespace_name,temporary from all_tables //在所有表中查询
select table_name,tablespace_name,temporary from all_tables where table_name='表名' //在所有表中查询指定表
select table_name,tablespace_name,temporary from all_tables where lespace_name='表空间名' //在所有表中查询属性指定表空间的表
其中:table_name:表名(varchar2(30));
tablespace_name:存储表名的表空间(varchar2(30));
temporary:能无法 为暂时表(varchar2(1))。
eg: select table_name,tablespace_name,temporary from user_tables where table_name='TEST_TEMP';
结果:
--------------------------------------------------------------------------------
table_name tablespace_name temporary
TEST_TEMP SDMP N
--------------------------------------------------------------------------------
注:表名变量值必须大写。
2.查询表列名:
复制代码 代码如下:
SELECT COLUMN_NAME FROM USER_TAB_COLUMNS WHERE TABLE_NAME = '表名' ORDER BY COLUMN_ID
SELECT COLUMN_NAME FROM DBA_TAB_COLUMNS WHERE TABLE_NAME = '表名' ORDER BY COLUMN_ID
SELECT COLUMN_NAME FROM ALL_TAB_COLUMNS WHERE TABLE_NAME = '表名' ORDER BY COLUMN_ID
select column_name,data_type ,data_length,data_precision,data_scale from user_tab_columns where table_name='表名';
其中:column_name:列名(varchar2(30));
data_type:列的数据类型(varchar2(106));
data_length:列的长度(number);
eg:select column_name,data_type ,data_length,data_precision,data_scale from user_tab_columns where table_name='TEST_TEMP';
结果:
column_name data_type data_length data_precision data_scale
ID NUMBER 22 0
NAME NVARCHAR2 20
SEX CHAR 1
GRADE NVARCHAR2 10
--------------------------------------------------------------------------------
注:表名变量值必须大写。
另外,也可以 议决 all_tab_columns来获取有关表的数据。
eg:select * from all_tab_columns where table_name='TEST_TEMP';
sqlserver:
select name from syscolumns where id=object_id('表名')
select count(*) from syscolumns where id=object_id('表名')
--读取库中的所有表名
select name from sysobjects where xtype='u'
--读取指定表的所有列名
select name from syscolumns where id=(select max(id) from sysobjects where xtype='u' and name='表名')
获取数据库表名和字段
sqlserver中各个系统表的作用
sysaltfiles
主数据库
保存数据库的文件
syscharsets
主数据库
字符集与排序顺序
sysconfigures
主数据库
配置选项
syscurconfigs
主数据库
当前配置选项
sysdatabases
主数据库
服务器中的数据库
syslanguages
主数据库
语言
syslogins
主数据库
登陆帐号信息
sysoledbusers
主数据库
链接服务器登陆信息
sysprocesses
主数据库
进程
sysremotelogins主数据库
远程登录帐号
syscolumns
每个数据库
列
sysconstrains
每个数据库
限制
sysfilegroups
每个数据库
文件组
sysfiles
每个数据库
文件
sysforeignkeys 每个数据库
外部关键字
sysindexs
每个数据库
索引
sysmenbers
每个数据库
角色成员
sysobjects
每个数据库
所有数据库对象
syspermissions 每个数据库
权限
systypes
每个数据库
用户定义数据类型
sysusers
每个数据库
用户
//
用什么方法可以得到一个表中所有的列名。SQl语句。
select
列名=name
from
syscolumns
where
id=object_id(N'要查的表名')
use gpStrudy
select
name="name"
from
syscolumns
where
id=object_id(N'bookTable')
获得字段的属性
//这是从一段代码中考出来的,使用的是using
;
public
int
GetTableFields(String
tableName,out
String[]
fields,out
String[]
fieldTypes)
...{
try
...{
OleDbCommand
dc
=
m_OleDb.CreateCommand();//创建一个执行对象用于执行sql查询
=
"select
*
from
"
+
tableName;
=
m_OleTrans;
OleDbDataReader
dr
=
();//执行sql查询
//获取数据库的架构信息
DataTable
schemaTable
=
();
int
fieldColumnCount
=
0;
fields
=
new
String[];
fieldTypes
=
new
String[];
for(int
i
=
0;i
<
;i++)
...{
if(
.("ColumnName") >= 0)
...{
//获取字段名称
for(int k = 0;k < ;k++)
fields[k] = [k].ItemArray.ToString();
fieldColumnCount++;
if(fieldColumnCount
>=
2)
...{
();
();
dr
=
null;
dc
=
null;
return
;
}
}
else
if(
.("DataType") >= 0)
...{
//获取字段类型
for(int k = 0;k < ;k++)
fieldTypes[k] = [k].ItemArray.ToString();
fieldColumnCount++;
if(fieldColumnCount
>=
2)
...{
();
();
dr
=
null;
dc
=
null;
return
;
}
}
}
();
();
dr
=
null;
dc
=
null;
return
0;
}
catch(Exception
ee)
...{
fields
=
new
String[1];
fieldTypes
=
new
String[1];
m_ErrorString
=
"Ado_Application:GetTableFields:error:"
+
;
return
0;
}
}