English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

MySQL 메타데이터

MySQL에서 다음 세 가지 정보를 알고 싶을 수 있습니다:

  • 조회 결과 정보:SELECT, UPDATE 또는 DELETE 문이 영향을 미친 레코드 수.

  • 데이터베이스 및 데이터테이블 정보:데이터베이스 및 데이터테이블 구조 정보를 포함하고 있습니다.

  • MySQL 서버 정보:데이터베이스 서버의 현재 상태, 버전 번호 등이 포함되어 있습니다。

MySQL 명령 프롬프트에서는 이러한 서버 정보를 쉽게 가져올 수 있습니다。 하지만 Perl이나 PHP와 같은 스크립트 언어를 사용하면 특정 인터페이스 함수를 호출하여 가져오는 것이 필요합니다。 그다음에 자세히 설명하겠습니다。

쿼리가 영향을 미친 레코드 수를 가져옵니다

PERL 예제

DBI 스크립트에서 문장이 영향을 미친 레코드 수는 함수 do( ) 또는 execute( )를 통해 반환됩니다:

# 메서드 1
# do( )를 사용하여 $query 실행 
my $count = $dbh->do ($query);
# 오류가 발생하면 0을 출력
printf "%d 条数据被影响\n", (defined($count) ? $count : 0);
# 메서드 2
# prepare( ) 및 execute( )를 사용하여 $query 실행 
my $sth = $dbh->prepare ($query);
my $count = $sth->execute ( );
printf "%d 条数据被影响\n", (defined($count) ? $count : 0);

PHP 예제

PHP에서는 mysqli_affected_rows() 함수를 사용하여 쿼리가 영향을 미친 레코드 수를 가져올 수 있습니다。

$result_id = mysqli_query($conn_id, $query);
# 쿼리 실패 시 반환 
$count = ($result_id ? mysqli_affected_rows($conn_id) : 0);
print "$count 条数据被影响\n";

데이터베이스와 테이블 목록

MySQL 서버에서 데이터베이스와 테이블 목록을 쉽게 가져올 수 있습니다。 충분한 권한이 없으면 결과가 null로 반환됩니다。

SHOW TABLES 또는 SHOW DATABASES 문을 사용하여 데이터베이스와 테이블 목록을 가져올 수도 있습니다。

PERL 예제

# 현재 데이터베이스에서 모든 사용 가능한 테이블을 가져옵니다。
my @tables = $dbh->tables ( );
foreach ($table as @tables) {
   print "테이블 이름 $table\n";
}

PHP 예제

아래 예제는 MySQL 서버 상의 모든 데이터베이스를 출력하는 예제입니다:

<?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서버 구성 변수