MySQL 메타데이터
MySQL 메타데이터
MySQL에 대한 다음 세 가지 유형의 정보를 알고 싶을 수도 있습니다.
쿼리 결과 정보: SELECT, UPDATE, DELETE 문의 영향을 받은 레코드 수.
데이터베이스 및 데이터 테이블 정보: 에는 데이터베이스 및 데이터 테이블의 구조 정보가 포함되어 있습니다.
MySQL 서버 정보: 에는 데이터베이스 서버의 현재 상태, 버전 번호 등이 포함됩니다.
MySQL 명령 프롬프트에서 위의 서버 정보를 쉽게 얻을 수 있습니다. 하지만 Perl이나 PHP와 같은 스크립트 언어를 사용하는 경우 이를 얻으려면 특정 인터페이스 함수를 호출해야 합니다. 다음에 자세히 소개하겠습니다.
쿼리문의 영향을 받는 레코드 수 가져오기
PERL 인스턴스
DBI 스크립트에서, 명령문의 영향을 받은 레코드 수는 do() 또는 excute() 함수에 의해 반환됩니다.
# 方法 1 # 使用do( ) 执行 $query my $count = $dbh->do ($query); # 如果发生错误会输出 0 printf "%d rows were affected\n", (defined ($count) ? $count : 0); # 方法 2 # 使用prepare( ) 及 execute( ) 执行 $query 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); # 如果查询失败返回 $count = ($result_id ? mysql_affected_rows ($conn_id) : 0); print ("$count rows were affected\n")
데이터베이스 및 데이터 테이블 목록
MySQL 서버에서 데이터베이스 및 데이터 테이블 목록을 쉽게 얻을 수 있습니다. 충분한 권한이 없으면 결과는 null이 됩니다.
SHOW TABLES 또는 SHOW DATABASES 문을 사용하여 데이터베이스 및 데이터 테이블 목록을 가져올 수도 있습니다.
PERL 인스턴스
# 获取当前数据库中所有可用的表。 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 명령 프롬프트 또는 스크립트에서 사용할 수 있습니다. 예를 들어 PHP 스크립트를 사용하십시오.
命令 | 描述 |
---|---|
SELECT VERSION( ) | 服务器版本信息 |
SELECT DATABASE( ) | 当前数据库名 (或者返回空) |
SELECT USER( ) | 当前用户名 |
SHOW STATUS | 服务器状态 |
SHOW VARIABLES | 服务器配置变量 |