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.name, systypes.name, syscolumns.length from syscolumns,
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所有的資訊,資訊包含在系統檢視syscolumns,systypes中
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), ('張三' ,