sql查询表名、列名、列属性SQL查询表名、列名、列属性
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='表名') 获取数据库表名和字段
oracle数据库表结构怎么看
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    System.Data.OleDb;
public    int    GetTableFields(String    tableName,out    String[]    fields,out    String[]    fieldTypes)
...{
try
...{
OleDbCommand    dc          =    m_OleDb.CreateCommand();//创建⼀个执⾏对象⽤于执⾏sql查询
dc.CommandText            =    "select    *    from    "    +    tableName;
dc.Transaction            =    m_OleTrans;
OleDbDataReader    dr    =    dc.ExecuteReader();//执⾏sql查询
/
/获取数据库的架构信息
DataTable    schemaTable    =    dr.GetSchemaTable();
int    fieldColumnCount    =    0;
fields    =    new    String[schemaTable.Rows.Count];
fieldTypes    =    new    String[schemaTable.Rows.Count];
for(int    i    =    0;i    <    schemaTable.Columns.Count;i++)
...{
if(schemaTable.Columns .ColumnName.IndexOf("ColumnName")    >=    0)
...{
//获取字段名称
for(int    k    =    0;k    <    schemaTable.Rows.Count;k++)
fields[k]    =    schemaTable.Rows[k].ItemArray.ToString();
fieldColumnCount++;
if(fieldColumnCount    >=    2)
...{
dr.Close();
dc.Dispose();
dr    =    null;
dc    =    null;
return    schemaTable.Rows.Count;
}
}
else    if(schemaTable.Columns .ColumnName.IndexOf("DataType")    >=    0)
...{
//获取字段类型
for(int    k    =    0;k    <    schemaTable.Rows.Count;k++)
fieldTypes[k]    =    schemaTable.Rows[k].ItemArray.ToString();
fieldColumnCount++;
if(fieldColumnCount    >=    2)
...{
dr.Close();
dc.Dispose();
dr    =    null;
dc    =    null;
return    schemaTable.Rows.Count;
}
}
}
dr.Close();
dc.Dispose();
dr    =    null;
dc    =    null;
return    0;
}
catch(Exception    ee)
...{
fields            =    new    String[1];
fieldTypes    =    new    String[1];
m_ErrorString    =    "Ado_Application:GetTableFields:error:"    +    ee.Message;
return    0;
}
}
查看当前库中所有表和字段信息
SELECT name FROM sysindexes WHERE indid in( SELECT indid FROM sysindexkeys WHERE id = a.id AND
lid ))) then 'yes' else 'no' end, 字段类型=b.name, 字段长度=a.length, 字段字符长度
=COLUMNPROPERTY(a.id,a.name,'PRECISION'), ⼩数位数=isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0), 是否为NULL=case when a.isnullable=1 then 'yes'else 'no' end, 缺省值=,'')  FROM syscolumns a left join systypes b pe=b.xusertype inner join sysobjects d on a.id=d.id and (d.xtype='U' pe='V') and
d.name<>'dtproperties' left join syscomments e on a.cdefault=
e.id where d.name='purchase_medicine' order by
//红⾊部分为限制条件,加上则为查询purchase_medicine这个表,不加的话,就查询所有的表。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。