暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MySQL 元数据信息介绍与示例

跟谁学编程 2021-10-22
542
你可能想知道MySQL以下三种信息:
  • 查询结果信息: SELECT, UPDATE 或 DELETE语句影响的记录数。
  • 数据库和数据表的信息: 包含了数据库及数据表的结构信息。
  • MySQL服务器信息: 包含了数据库服务器的当前状态,版本号等。
在MySQL的命令提示符中,我们可以很容易的获取以上服务器信息。 但如果使用Perl或PHP等脚本语言,你就需要调用特定的接口函数来获取。 接下来我们会详细介绍。

用SHOW语句获取元数据

MySQL用show语句获取元数据是最常用的方法,下面提供了几种典型用法:
show databases; –列出所有数据库
show create database db_name; –查看数据库的DDL
show tables; –列出默认数据库的所有表
show tables from db_name; –列出指定数据库的所有表
show table status; –查看表的描述性信息
show table status from db_name;
show create table tbl_name; –查看表的DDL
show columns from tbl_name; –查看列信息
show index from tbl_name; –查看索引信息


从INFORMATION_SCHEMA数据库里查询相关表

INFORMATION_SCHEMA是MySQL自带的一个系统数据库,它里面存储了所有的元数据,通过select里面的相关表就可以获取你想要的元数据。和show语句相比,它比较麻烦,但它的好处是标准的SQL语句,更具有可移植性,且更灵活,可以通过各种表达式获取你真正需要的信息。

从命令行获取元数据

前面两种方法都必须得在MySQL命令行里执行,而mysqlshow和mysqldump提供了从OS命令行获取元数据库的方法,如:
mysqlshow –列出所有数据库
mysqlshow db_name –列出给定数据库的所有表
mysqlshow db_name tbl_name –列出给定数据库表的所有列
mysqlshow –keys db_name tbl_name –列出索引信息
mysqlshow –status db_name –列出数据库的描述性信息


示例代码

获取查询语句影响的记录数

在PHP中,你可以使用 mysqli_affected_rows( ) 函数来获取查询语句影响的记录数。
$result_id = mysqli_query ($conn_id, $query);
# 如果查询失败返回
$count = ($result_id ? mysqli_affected_rows ($conn_id) : 0);
print ("$count 条数据被影响\n");

查看所有数据库

<?php
$dbhost = 'localhost'; // mysql服务器主机地址
$dbuser = 'root'; // mysql用户名
$dbpass = '123456'; // mysql用户名密码
$conn = mysqli_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
die('连接失败: ' . mysqli_error($conn));
}
// 设置编码,防止中文乱码
$db_list = mysqli_query($conn, 'SHOW DATABASES');
while ($db = mysqli_fetch_object($db_list))
{
echo $db->Database . "<br >";
}
mysqli_close($conn);
?>


获取服务器元数据

以下命令语句可以在 MySQL 的命令提示符使用,也可以在脚本中使用,如PHP脚本。
命令描述
SELECT VERSION( )服务器版本信息
SELECT DATABASE( )当前数据库名 (或者返回空)
SELECT USER( )当前用户名
SHOW STATUS服务器状态
SHOW VARIABLES服务器配置变量

长按二维码关注公众号,查阅更多教程

文章转载自跟谁学编程,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论