Mysql-database-info
提供:Dev Guides
MySQL-データベース情報
MySQLメタデータの取得と使用
MySQLから取得したい3種類の情報があります。
- クエリの結果に関する情報-これには、SELECT、UPDATE、またはDELETEステートメントの影響を受けるレコードの数が含まれます。
- テーブルとデータベースに関する情報-これには、テーブルとデータベースの構造に関する情報が含まれます。
- * MySQLサーバーに関する情報*-これには、データベースサーバーのステータス、バージョン番号などが含まれます。
MySQLプロンプトでこれらの情報をすべて取得するのは非常に簡単ですが、PERLまたはPHP APIを使用しているときに、さまざまなAPIを明示的に呼び出してこの情報をすべて取得する必要があります。
クエリの影響を受ける行数の取得
この情報を取得する方法を見てみましょう。
PERLの例
DBIスクリプトでは、クエリの実行方法に応じて、* do()コマンドまたは execute()*コマンドによって、影響を受ける行カウントが返されます。
# Method 1
# execute $query using do( )
my $count = $dbh->do ($query);
# report 0 rows if an error occurred
printf "%d rows were affected\n", (defined ($count) ? $count : 0);
# Method 2
# execute query using prepare( ) plus execute( )
my $sth = $dbh->prepare ($query);
my $count = $sth->execute ( );
printf "%d rows were affected\n", (defined ($count) ? $count : 0);
PHPの例
PHPでは、* mysql_affected_rows()*関数を呼び出して、クエリが変更された行数を調べます。
$result_id = mysql_query ($query, $conn_id);
# report 0 rows if the query failed
$count = ($result_id ? mysql_affected_rows ($conn_id) : 0);
print ("$count rows were affected\n");
テーブルとデータベースのリスト
データベースサーバーで使用可能なすべてのデータベースとテーブルをリストするのは非常に簡単です。 十分な権限がない場合、結果は null になる可能性があります。
次のコードブロックに示されているメソッドとは別に、 SHOW TABLES または SHOW DATABASES クエリを使用して、PHPまたはPERLでテーブルまたはデータベースのリストを取得できます。
PERLの例
# Get all the tables available in current database.
my @tables = $dbh->tables ( );
foreach $table (@tables ){
print "Table Name $table\n";
}
PHPの例
<?php
$con = mysql_connect("localhost", "userid", "password");
if (!$con) {
die('Could not connect: ' . mysql_error());
}
$db_list = mysql_list_dbs($con);
while ($db = mysql_fetch_object($db_list)) {
echo $db->Database . "<br/>";
}
mysql_close($con);
?>
サーバーメタデータの取得
MySQLにはいくつかの重要なコマンドがあり、MySQLプロンプトで実行するか、PHPなどのスクリプトを使用してデータベースサーバーに関するさまざまな重要な情報を取得できます。
Sr.No. | Command & Description |
---|---|
1 |
SELECT VERSION( ) サーバーのバージョン文字列 |
2 |
SELECT DATABASE( ) 現在のデータベース名(ない場合は空) |
3 |
SELECT USER( ) 現在のユーザー名 |
4 |
SHOW STATUS サーバーステータスインジケータ |
5 |
SHOW VARIABLES サーバー構成変数 |