獲取資料庫資訊

2021-04-15 23:24:09 字數 2538 閱讀 2502

資料庫資訊包括資料庫詳細資訊、資料庫基本資訊、基本表資訊、列資訊等內容

1、獲取資料庫詳細資訊

databasemetadata物件代表了乙個資料庫的詳細資訊,它的方法所獲取的資料庫系統的資訊通常用resultset物件的開工返回,可以用resultset物件的方法取得資料資訊,如getstring, getint等。當返回的資料不可用時,呼叫resultset物件的方法通常會丟擲sqlexception例外。

//建立databasemetadata

//con為乙個connection物件

databasemetadata dbmd

=con.getmetadata();

2、獲取資料庫基本資訊

資料庫的基本資訊包括jdbc驅動程式名字、資料庫表的最大列數、列名的最大字元數等資訊。

1)getbestrowidentifier   :獲取乙個資料庫中用來唯一標識乙個表的列的最佳集合的描述 

//語法

resultset getbestrowidentifier (string catalog, string schema, string table, 

intscope, boolean nullable) 

throws

sqlexception

引數說明:

catalog: 乙個代表目錄名的字串,「」代表程式要獲取沒有catalog的資料庫的資訊, null則代表了把catalog從選項中除去

schema:乙個代表模式名的字串

table: 代表了乙個表名的字串

scope: 有三種範圍,分別是bestrowtemporary, bestrowtransaction, bestrowsession

nullable:如果這個引數為true, 那麼就表示結果中要包含那些列為空的值,否則就除去這些列

該函式的返回值是乙個resultset物件,每一行都是對乙個列的描述,對返回值中的每乙個列的描述包括下述幾種:

a) scope的作用是指出結果集生效的範圍,有以下幾種選擇:

bestrowtemporary: 只有在使用這個行的時候才生效,有限期非常短

bestrowtransaction:在整個事務中都有效

bestrowsession: 在整個會話中都有效

b) column_name作用 給出列的名稱

c) data_type的功能是指出可用的資料型別

d) type_name將給出資料來源所使用的型別名

e) column_size將給出列的精度

f) buffer_length這是乙個暫未使用的值

g) pseudo_column指出該列是否是資料庫系統產生的列

bestrowunknow: 可能是pseudo列

bestrownotpseudo: 不是資料庫系統產生的列

bestrowpseudo: 是資料庫系統產生的列 //例

resultset rs

=dbmd.getbestrowidentifier(

null, "

system", 

"new", 

1, true);

2) gettypeinfo: 獲取乙個資料庫系統支援的所有資料型別,每一行都是對乙個資料型別的描述

返回的每行包括如下的列:

//語法

resultset gettypeinfo() 

throws

sqlexception

a) type_name: 資料型別名

b) data_type: 短整型的數,指出在jdbc中對映到本地dbms資料型別最為合適的資料型別

c) precision: 整型數,指出最大的精度

d) literal_prefix: 可能引用的文字字首,可能為null

e) literal_suffix: 可能用來引用乙個文字的字尾, 可以為null

f) create_params: 建立這種資料型別所用的引數, 可以為空

g) nullable: 指出乙個列是否可以為空, 可能值為:

typenonulls 不允許為空

typenullable可以為空

typenullableunknown不知道是否可以為空

h) case_sensitive: 如果為真, 則說明這種型別是大小寫敏感的

i) searchable: 指出是否可以在where條件語句中使用這種型別,有以下值:

typeprenone: 不可以在where中

typepredchar: 只可以用於where...like語句中

typepredbasic: 除了where....like語句外所有where語句中都可以使用這種資料型別

typesearchable: 所有where語句都可以使用這種資料型別

j) unsigned_attribute: 如果為true,則這種資料型別是無符號的

k) fixed_prec_scale: 如果為true, 則這種資料型別可以為貨幣型別

l) auto_increment: 為true則說明這是乙個可以自動增加值的型別

m)

python獲取資料庫資訊

親測可用 import pymysql import sys 匯入pymysql模組 import pymysql 獲取連線 coon pymysql.connect host localhost db test user root password root port 3306,charset u...

獲取資料庫表的有關資訊

1.獲取所有資料庫名 1 select name from master.dbo.sysdatabases order by name 2.獲取所有表名 1 select name from sysobjects where xtype u order by name xtype u 表示所有使用者...

mysql獲取資料庫容量及資料庫相關資訊

use information schema 選擇資料庫 select concat round sum data length 1024 1024 2 mb as data from tables 查詢所有資料庫占用容量 mysql總占用 select concat round sum data ...