📜  MySQL-数据库信息

📅  最后修改于: 2020-11-27 06:41:15             🧑  作者: Mango


获取和使用MySQL元数据

您希望从MySQL获得三种信息。

  • 有关查询结果的信息-这包括受任何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 TABLESSHOW 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示例

Database . "
"; } mysql_close($con); ?>

获取服务器元数据

MySQL中有一些重要的命令,可以在MySQL提示符下执行,也可以使用任何脚本(如PHP)执行以获取有关数据库服务器的各种重要信息。

Sr.No. Command & Description
1

SELECT VERSION( )

Server version string

2

SELECT DATABASE( )

Current database name (empty if none)

3

SELECT USER( )

Current username

4

SHOW STATUS

Server status indicators

5

SHOW VARIABLES

Server configuration variables