MySQL - Thông tin cơ sở dữ liệu
Lấy và sử dụng siêu dữ liệu MySQL
Có ba loại thông tin mà bạn muốn có từ MySQL.
Information about the result of queries - Điều này bao gồm số lượng bản ghi bị ảnh hưởng bởi bất kỳ câu lệnh SELECT, UPDATE hoặc DELETE nào.
Information about the tables and databases - Điều này bao gồm thông tin liên quan đến cấu trúc của bảng và cơ sở dữ liệu.
Information about the MySQL server - Điều này bao gồm trạng thái của máy chủ cơ sở dữ liệu, số phiên bản, v.v.
Rất dễ dàng nhận được tất cả thông tin này tại dấu nhắc MySQL, nhưng trong khi sử dụng API PERL hoặc PHP, chúng ta cần gọi các API khác nhau một cách rõ ràng để có được tất cả thông tin này.
Lấy số lượng hàng bị ảnh hưởng bởi một truy vấn
Bây giờ chúng ta hãy xem cách lấy thông tin này.
Ví dụ về PERL
Trong tập lệnh DBI, số hàng bị ảnh hưởng được trả về bởi do( ) hoặc bởi execute( ) , tùy thuộc vào cách bạn thực hiện truy vấn.
# 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);
Ví dụ PHP
Trong PHP, gọi mysql_affected_rows( ) để tìm ra bao nhiêu hàng mà một truy vấn đã thay đổi.
$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");
Bảng liệt kê và Cơ sở dữ liệu
Rất dễ dàng liệt kê tất cả các cơ sở dữ liệu và các bảng có sẵn với một máy chủ cơ sở dữ liệu. Kết quả của bạn có thể lànull nếu bạn không có đủ đặc quyền.
Ngoài phương pháp được hiển thị trong khối mã sau, bạn có thể sử dụng SHOW TABLES hoặc là SHOW DATABASES truy vấn để lấy danh sách các bảng hoặc cơ sở dữ liệu bằng PHP hoặc trong PERL.
Ví dụ về PERL
# Get all the tables available in current database.
my @tables = $dbh->tables ( );
foreach $table (@tables ){
print "Table Name $table\n";
}
Ví dụ 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);
?>
Nhận siêu dữ liệu máy chủ
Có một số lệnh quan trọng trong MySQL có thể được thực thi tại dấu nhắc MySQL hoặc bằng cách sử dụng bất kỳ tập lệnh nào như PHP để nhận các thông tin quan trọng khác nhau về máy chủ cơ sở dữ liệu.
Sr.No. | Lệnh & Mô tả |
---|---|
1 | SELECT VERSION( ) Chuỗi phiên bản máy chủ |
2 | SELECT DATABASE( ) Tên cơ sở dữ liệu hiện tại (trống nếu không có) |
3 | SELECT USER( ) Tên người dùng hiện tại |
4 | SHOW STATUS Chỉ báo trạng thái máy chủ |
5 | SHOW VARIABLES Biến cấu hình máy chủ |