SQL查询表名、列名、列属性


欢迎更多的朋友加入我的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        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                    0;i              schemaTable.Columns.Count;i++) 
        ...{ 
        if(schemaTable.Columns .ColumnName.IndexOf("ColumnName")    >=    0) 
    ...{ 
    //获取字段名称 
   
    for(int          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          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; 
       
        }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值