1. 程式人生 > >SQl查詢資料庫表名、表的列名、資料型別

SQl查詢資料庫表名、表的列名、資料型別

1.獲取所有資料庫名:   
Select Name FROM Master..SysDatabases order by Name 

2.獲取所有表名: 
   (1)
Select Name FROM SysObjects Where XType='U' orDER BY Name 
           XType='U':表示所有使用者表; 
           XType='S':表示所有系統表;
   (2)
SELECT name FROM sysobjects WHERE type = 'U' AND sysstat = '83'
           注意:一般情況只需要type = 'U',但有時候會有系統表混在其中(不知道什麼原因),加上後面一句後就能刪除這些系統表了

3.獲取所有欄位名: 
(1)、
Select Name FROM SysColumns Where id=Object_Id('TableName')
(2)
SELECT syscolumns.name,systypes.name,syscolumns.isnullable,syscolumns.length 
FROM syscolumns, systypes 
WHERE syscolumns.xusertype = systypes.xusertype AND "syscolumns.id = object_id('tableName')
       注意點:
     (a)這裡為了重點突出某些重要內容,選取了其中幾項資訊輸出。
     (b)syscolumns表中只含有資料型別編號,要獲取完整的名字需要從systypes表中找,一般使用者使用的資料型別用xusertype對應比較好,不會出現一對多的情況。
     (c)syscolumns.length得到的是實體記憶體的長度,所以nvarchar和varchar等型別在資料庫中的顯示是這個的一半。
 
4、得到表中主鍵所包含的列名:
SELECT syscolumns.name 
FROM syscolumns,sysobjects,sysindexes,sysindexkeys 
WHERE syscolumns.id = object_id('tablename') AND sysobjects.xtype = 'PK' AND sysobjects.parent_obj = syscolumns.id AND sysindexes.id = syscolumns.id AND sysobjects.name = sysindexes.name AND sysindexkeys.id = syscolumns.id AND sysindexkeys.indid = sysindexes.indid AND syscolumns.colid = sysindexkeys.colid
注意:這是在4張系統表中尋找的,關係比較複雜,大致可以表示為:
syscolumns中存有表中的列資訊和表id,sysobjects表中存有主鍵名字(即PK_Table類似)和表id,sysindexes中存 有主鍵名字和表id和index編號,sysindexkeys中存有表id和index編號和列編號,一項一項對應起來後就能找到列名了。


另外的SQL程式碼

select syscolumns.name, systypes.name, syscolumns.length from syscolumns

left join systypes on syscolumns. xusertype =systypes. xusertype

where id=(select id from sysobjects where name='訂貨主檔');

go;

或者用這樣的寫法,執行結果一樣:

select syscolumns.namesystypes.namesyscolumns.length from syscolumns,

systypes

where (syscolumns.id=object_id('訂貨主檔') andsyscolumns.xusertype=systypes.xusertype)

order by syscolumns.colorder;

go

執行結果:(欄位只出現一次,正常)

訂單號碼int4

客戶編號nvarchar10

員工編號int4

訂單日期datetime8

要貨日期datetime8

送貨日期datetime8

送貨方式int4

運費money8

收貨人nvarchar80

送貨地址nvarchar120

送貨城市nvarchar30

送貨行政區nvarchar30

送貨郵政編碼nvarchar20

送貨國家地區nvarchar30

select syscolumns.name, systypes.name, syscolumns.length from syscolumns

left join systypes on syscolumns.xtype=systypes.xtype

where id=(select id from sysobjects where name='訂貨主檔');

go;

執行結果:(部分欄位出現兩次,資料型別不同)

訂單號碼int4

客戶編號nvarchar10

客戶編號sysname10

員工編號int4

訂單日期datetime8

訂單日期出生日期型別8

要貨日期datetime8

要貨日期出生日期型別8

送貨日期datetime8

送貨日期出生日期型別8

送貨方式int4

運費money8

運費薪水型別8

收貨人nvarchar80

收貨人sysname80

送貨地址nvarchar120

送貨地址sysname120

送貨城市nvarchar30

送貨城市sysname30

送貨行政區nvarchar30

送貨行政區sysname30

送貨郵政編碼nvarchar20

送貨郵政編碼sysname20

送貨國家地區nvarchar30

送貨國家地區sysname30

查詢儲存過程DepartmentSalaryInfo所有的資訊,資訊包含在系統檢視syscolumnssystypes

select syscolumns.*, systypes.* from syscolumns

left join systypes on syscolumns.xusertype=systypes.xusertype

where id=(select id from sysobjects where name='DepartmentSalaryInfo');

go

execsp_procedure_params_rowset@procedure_name='DepartmentSalaryInfo';

go

執行結果:

北風貿易

dboDepartmentSalaryInfo;[email protected]_VALUE040NULL03NULLNULL10NULLNULLintint

北風貿易

dboDepartmentSalaryInfo;[email protected]

北風貿易

dboDepartmentSalaryInfo;[email protected]

北風貿易

dboDepartmentSalaryInfo;[email protected]

北風貿易

dboDepartmentSalaryInfo;[email protected]

--儲存過程中的引數名,引數型別,引數長度

select syscolumns.name, systypes.name, syscolumns.length from syscolumns   

  left join systypes on syscolumns.xusertype=systypes.xusertype 

  where id=(select id from sysobjects where name='DepartmentSalaryInfo');

1:獲取當前資料庫中的所有使用者表 
select Name from sysobjects where xtype='u' and status>=0 
2:獲取某一個表的所有欄位 
select name from syscolumns where id=object_id('表名') 
3:查詢使用者建立的所有資料庫 
select * from master..sysdatabases D where sid not in(select sid from 
master..syslogins where name='sa') 
或者 
select dbid, name AS DB_NAME from master..sysdatabases where sid <> 0x01 
4:查詢某一個表的欄位和資料型別 
select column_name,data_type from information_schema.columns 
where table_name = '表名' 
[n].[標題]: 
Select * From TableName Order By CustomerName 
[n].[標題]: 
8.如何修改資料庫的名稱: 
sp_renamedb 'old_name', 'new_name' 
9.只複製一個表結構,不復制資料 
select top 0 * into [t1] from [t2] 
10.連線遠端資料庫 
select * from OPENDATASOURCE('SQLOLEDB','Data Source=遠端ip;User 
ID=sa;Password=密碼').庫名.dbo.表名
11.獲取當前oracle資料庫中的所有表 
select table_name from user_tables
12 .獲取當前oracle表中所有欄位的型別
SELECT 
      COLUMN_NAME,DATA_TYPE,DATA_LENGTH,NULLABLE
FROM 
         USER_TAB_COLS where TABLE_NAME='teacher';
 
 
 
查詢資料庫儲存量大小 (Master)
DECLARE @tablespaceinfo TABLE (   
    nameinfo varchar(50),   
    rowsinfo int,   
    reserved varchar(20),   
    datainfo varchar(20),   
    index_size varchar(20),   
    unused varchar(20)   
)   
  
DECLARE @tablename varchar(255);   
  
DECLARE Info_cursor CURSOR FOR  
    SELECT [name] FROM sys.tables WHERE type='U';   
  
OPEN Info_cursor   
FETCH NEXT FROM Info_cursor INTO @tablename   
  
WHILE @@FETCH_STATUS = 0   
BEGIN  
    insert into @tablespaceinfo exec sp_spaceused @tablename   
    FETCH NEXT FROM Info_cursor   
    INTO @tablename   
END  
  
CLOSE Info_cursor   
DEALLOCATE Info_cursor   
  
SELECT * FROM @tablespaceinfo   
    ORDER BY Cast(Replace(reserved,'KB','') as INT) DESC 


原文連結:http://www.cnblogs.com/singlex/archive/2011/12/03/2274440.html

相關推薦

SQl查詢資料庫列名資料型別

1.獲取所有資料庫名: Select Name FROM Master..SysDatabases order by Name 2.獲取所有表名: (1) Select Name FROM SysObjects Where XType='U' orDER

SQL查詢資料庫中所有表字段資料型別

select b.name,a.colid,a.name,(select systypes.name+'('+cast(a.length/2  as varchar(10))+')' from syst

Sql Server資料庫中的更新列名列值

更新表名: execsp_rename'舊錶名','新表名' 更新列名: exec sp_rename '表名.[欄位原名]','欄位新名','column'                

sql查詢某個資料庫裡所有資訊

sql server 數表: select count(1) from sysobjects where xtype=’U’ 數檢視: select count(1) from sysobject

sql查詢資料庫中所有

查詢資料庫裡所有表名和欄位名的語句 SQL 查詢所有表名: SELECT NAME FROM SYSOBJECTS WHERE TYPE='U' SELECT * FROM INFORMATION_S

sql獲取資料庫中所有的的方法:

1、oracle下:select table_name from all_tables; 2、MySQL下:select table_name from information_schema.tables where table_schema='csdb' and table_type='base

如何使用sql查詢資料庫結構的設計(sqlserver,oracle)

1、sqlserver(注:表名必須大寫) select a.name 表名,b.name 欄位名,c.name 欄位型別,c.length 欄位長度 from sysobjects a,

獲取通過sql查詢資料庫,欄位,主鍵,自增,欄位型別等資訊

                1.查詢所有表,以及表的備註資訊。 Oracle資料庫   select t

spring-data-JPA使用JpaRepository註解自定義SQL查詢資料庫查詢

一. 首先在@Entity註解的類裡面要寫好外來鍵關係.  這個 @ManyToOne 註解可以建立外來鍵關係, 不要在自己傻傻的寫一個 private int grades_id;  寫了這個註解以後它會自動的把 Classes 這張表加上 grades_id 欄位.

通過sql語句快速查詢資料庫共有多少張

一、無條件查詢:select * from tab  order by tname 二、過濾查詢:select * from tab where tname not like '%$%' or

sql 查詢所有數據庫--結構

ase clas ble 長度 sql 查詢 index case ner 如果 1 --查詢數據庫中的所有數據庫名: 2 SELECT * FROM Master..SysDatabases ORDER BY Name 3 --查詢某個數據庫中所有的表名:

spring boot 學習心得 使用JpaRepository註解自定義SQL查詢數據庫多查詢

自定義 net http entity onetomany tom pri 查詢語句 重點 一. 首先在@Entity註解的類裏面要寫好外鍵關系. 這個 @ManyToOne 註解可以建立外鍵關系, 不要在自己傻傻的寫一個 private int grades_id;

SQL查詢結果為二維

mon 結果 else AS table case when create lse nio 1 ---測試數據--- 2 if object_id(‘[tb]‘) is not null drop table [tb] 3 go 4 create tabl

c#語言和SQL Server資料庫技術_用組織資料

一.四種完整性約束1.實體完整性約束:不允許出現相同記錄的資料2.域完整性約束:對欄位進行限定,不得插入不符合限定的資料3.引用完整性:表與表之間的關係4.自定義完整性約束:開發人員自己設定對欄位的約束,不允許出現不符合約束的資料二.資料型別 二進位制資料型別 儲存非字元和文字的資料 image 可用來

資料庫工作筆記007---mysql查詢資料庫中共有多少

SELECT COUNT(*) TABLES, table_schema FROM information_schema.TABLES WHERE table_schema = ‘tableName’ GROUP BY table_schema; tableName 這

Oracle 匯出結構(含列名資料型別欄位備註註釋)匯出成Excel

oracle表結構涉及到幾個關鍵的系統表: cols –系統表  user_col_comments –表名、列名、說明  user_tab_comments –表名、型別、說明  user_objects – 字典表檢視  真正

oracle獲取某個資料庫的所有以及的列屬性

select table_name from user_tables; //當前使用者的表        select table_name from all_tables; //所有使用者的表    select table_name from dba_tables; //

SQL Server——資料管理(欄位的資料型別臨時設定標識欄位使用預設值建立約束修改

目錄   一、欄位的資料型別——例項: 二、臨時表 三、設定標識欄位  四、使用預設值 五、建立約束 六、修改表 一、欄位的資料型別——例項: 建立一個新表(如圖)  當然我們也可以就所設計的表進行修改:

mysql 獲取已知資料庫結構

1、獲取資料庫test中的表名 select table_name from information_schema.tables where table_schema='test' and table_type='base table'; 2、獲取資料庫test中表misc

sql查詢語句(將一個的列變成行顯示)

CREATE TABLE tb(name VARCHAR(10) , course VARCHAR(10) , score INT) INSERT INTO tb(name,course,score) VALUES ('張三' , '語文' , 74), ('張三' ,