پایگاه داده MySQL چگونه داده ها را در جدول پرس و جو می کند؟بیانیه پرس و جو / فرمان / نحو

پایگاه داده MySQLچگونه داده های جدول را پرس و جو کنیم؟بیانیه پرس و جو / فرمان / نحو

خروجی داده های پرس و جو

پایگاه های داده MySQL از دستورات SQL SELECT برای پرس و جوی داده ها استفاده می کنند.

می توانید از طریق پنجره خط فرمان mysql> یا از طریق یک اسکریپت PHP، داده های موجود در پایگاه داده را پرس و جو کنید.

دستور زبان

در زیر دستور کلی SELECT برای جستجوی داده ها در پایگاه داده MySQL آمده است:

SELECT column_name,column_name
FROM table_name
[WHERE Clause]
[OFFSET M ][LIMIT N]
  • در دستور query می توانید از یک یا چند جدول استفاده کنید، جداول را با کاما (،) جدا کنید و از دستور WHERE برای تنظیم شرایط پرس و جو استفاده کنید.
  • دستور SELECT می تواند یک یا چند رکورد را بخواند.
  • می توانید از یک ستاره (*) برای جایگزینی فیلدهای دیگر استفاده کنید، دستور SELECT تمام داده های فیلد جدول را برمی گرداند.
  • می توانید از عبارت WHERE برای درج هر شرطی استفاده کنید.
  • می توانید افست داده ای را مشخص کنید که در آن عبارت SELECT پرس و جو را با OFFSET شروع می کند.به طور پیش فرض افست 0 است.
  • می توانید از ویژگی LIMIT برای تنظیم تعداد رکوردهای برگشتی استفاده کنید.

دریافت اطلاعات از طریق خط فرمان

در مثال زیر، از دستور SQL SELECT برای به دست آوردن داده های جدول داده MySQL chenweiliang_tbl استفاده می کنیم:

نمونه، مثال

مثال زیر تمام رکوردهای جدول داده chenweiliang_tbl را برمی گرداند:

دیتاشیت را بخوانید:

select * from chenweiliang_tbl;

برای دریافت اطلاعات از اسکریپت PHP استفاده کنید

با استفاده از توابع PHP mysqli_query() 及 SQL SELECT دستور دریافت داده ها

این تابع برای اجرای دستورات SQL و سپس ارسال توابع PHP استفاده می شود mysqli_fetch_array() برای استفاده یا خروجی داده برای همه پرس و جوها.

mysqli_fetch_array() این تابع یک ردیف را از مجموعه نتیجه به عنوان یک آرایه انجمنی، یا آرایه ای از اعداد یا هر دو واکشی می کند. آرایه ای را که از ردیف های واکشی شده از مجموعه نتایج واکشی شده است، برمی گرداند، یا اگر ردیف دیگری وجود نداشته باشد، false است.

مثال زیر همه رکوردها را از جدول داده chenweiliang_tbl می خواند.

نمونه، مثال

مثال زیر را برای نمایش تمام رکوردهای جدول داده chenweiliang_tbl امتحان کنید.

از پارامتر mysqli_fetch_array MYSQL_ASSOC برای واکشی داده ها استفاده کنید:

<?
php
$dbhost = 'localhost:3306'; // mysql服务器主机地址
$dbuser = 'root'; // mysql用户名
$dbpass = '123456'; // mysql用户名密码
$conn = mysqli_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
 die('连接失败: ' . mysqli_error($conn));
}
// 设置编码,防止中文乱码
mysqli_query($conn , "set names utf8");
 
$sql = 'SELECT chenweiliang_id, chenweiliang_title, 
 chenweiliang_author, submission_date
 FROM chenweiliang_tbl';
 
mysqli_select_db( $conn, 'chenweiliang' );
$retval = mysqli_query( $conn, $sql );
if(! $retval )
{
 die('无法读取数据: ' . mysqli_error($conn));
}
echo '<h2>陈沩亮博客 mysqli_fetch_array 测试<h2>';
echo '<table border="1"><tr><td>教程 ID</td><td>标题</td><td>作者</td><td>提交日期</td></tr>';
while($row = mysqli_fetch_array($retval, MYSQL_ASSOC))
{
 echo "<tr><td> {$row['chenweiliang_id']}</td> ".
 "<td>{$row['chenweiliang_title']} </td> ".
 "<td>{$row['chenweiliang_author']} </td> ".
 "<td>{$row['submission_date']} </td> ".
 "</tr>";
}
echo '</table>';
mysqli_close($conn);
?>

 

در مثال بالا، هر ردیف از رکوردهای خوانده شده به متغیر $ row اختصاص داده می شود و سپس هر مقدار چاپ می شود.

توجه داشته باشید:به یاد داشته باشید که اگر نیاز به استفاده از یک متغیر در یک رشته دارید، متغیر را در پرانتزهای فرفری قرار دهید.

در مثال بالا، دومین پارامتر تابع PHP mysqli_fetch_array() MYSQL_ASSOC، این پارامتر را تنظیم کنید تا نتیجه را پرس و جو کند تا یک آرایه انجمنی برگرداند، می توانید از نام فیلد به عنوان شاخص آرایه استفاده کنید.

PHP عملکرد دیگری را ارائه می دهد mysqli_fetch_assoc()، تابع یک ردیف از مجموعه نتایج به عنوان یک آرایه انجمنی می گیرد.یک آرایه انجمنی ایجاد شده از ردیف های گرفته شده از مجموعه نتیجه را برمی گرداند، یا اگر ردیف دیگری وجود نداشته باشد، false است.

نمونه، مثال

مثال زیر را امتحان کنید که از آن استفاده می کند mysqli_fetch_assoc() تابعی برای خروجی تمام رکوردهای جدول داده chenweiliang_tbl:

از mysqli_fetch_assoc برای واکشی داده ها استفاده کنید:

<?
php
$dbhost = 'localhost:3306'; // mysql服务器主机地址
$dbuser = 'root'; // mysql用户名
$dbpass = '123456'; // mysql用户名密码
$conn = mysqli_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
 die('连接失败: ' . mysqli_error($conn));
}
// 设置编码,防止中文乱码
mysqli_query($conn , "set names utf8");
 
$sql = 'SELECT chenweiliang_id, chenweiliang_title, 
 chenweiliang_author, submission_date
 FROM chenweiliang_tbl';
 
mysqli_select_db( $conn, 'chenweiliang' );
$retval = mysqli_query( $conn, $sql );
if(! $retval )
{
 die('无法读取数据: ' . mysqli_error($conn));
}
echo '<h2>陈沩亮博客 mysqli_fetch_assoc 测试<h2>';
echo '<table border="1"><tr><td>教程 ID</td><td>标题</td><td>作者</td><td>提交日期</td></tr>';
while($row = mysqli_fetch_assoc($retval))
{
 echo "<tr><td> {$row['chenweiliang_id']}</td> ".
 "<td>{$row['chenweiliang_title']} </td> ".
 "<td>{$row['chenweiliang_author']} </td> ".
 "<td>{$row['submission_date']} </td> ".
 "</tr>";
}
echo '</table>';
mysqli_close($conn);
?>

همچنین می توانید از ثابت MYSQL_NUM به عنوان دومین پارامتر تابع PHP mysqli_fetch_array() استفاده کنید که آرایه ای از اعداد را برمی گرداند.

نمونه، مثال

نمونه های زیر استفاده می کنند MYSQL_NUM پارامتر تمام رکوردهای جدول داده chenweiliang_tbl را نمایش می دهد:

از پارامتر mysqli_fetch_array MYSQL_NUM برای واکشی داده ها استفاده کنید:

<?
php
$dbhost = 'localhost:3306'; // mysql服务器主机地址
$dbuser = 'root'; // mysql用户名
$dbpass = '123456'; // mysql用户名密码
$conn = mysqli_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
 die('连接失败: ' . mysqli_error($conn));
}
// 设置编码,防止中文乱码
mysqli_query($conn , "set names utf8");
 
$sql = 'SELECT chenweiliang_id, chenweiliang_title, 
 chenweiliang_author, submission_date
 FROM chenweiliang_tbl';
 
mysqli_select_db( $conn, 'chenweiliang' );
$retval = mysqli_query( $conn, $sql );
if(! $retval )
{
 die('无法读取数据: ' . mysqli_error($conn));
}
echo '<h2>陈沩亮博客 mysqli_fetch_array 测试<h2>';
echo '<table border="1"><tr><td>教程 ID</td><td>标题</td><td>作者</td><td>提交日期</td></tr>';
while($row = mysqli_fetch_array($retval, MYSQL_NUM))
{
 echo "<tr><td> {$row[0]}</td> ".
 "<td>{$row[1]} </td> ".
 "<td>{$row[2]} </td> ".
 "<td>{$row[3]} </td> ".
 "</tr>";
}
echo '</table>';
mysqli_close($conn);
?>

نتایج خروجی سه مثال بالا یکسان است.


انتشار حافظه

این تمرین خوبی است که پس از اجرای دستور SELECT، حافظه مکان نما را آزاد کنیم.

حافظه را می توان از طریق تابع PHP ()mysqli_free_result آزاد کرد.

مثال زیر کاربرد این تابع را نشان می دهد.

نمونه، مثال

نمونه های زیر را امتحان کنید:

حافظه رایگان با mysqli_free_result:

<?
php
$dbhost = 'localhost:3306'; // mysql服务器主机地址
$dbuser = 'root'; // mysql用户名
$dbpass = '123456'; // mysql用户名密码
$conn = mysqli_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
 die('连接失败: ' . mysqli_error($conn));
}
// 设置编码,防止中文乱码
mysqli_query($conn , "set names utf8");
 
$sql = 'SELECT chenweiliang_id, chenweiliang_title, 
 chenweiliang_author, submission_date
 FROM chenweiliang_tbl';
 
mysqli_select_db( $conn, 'chenweiliang' );
$retval = mysqli_query( $conn, $sql );
if(! $retval )
{
 die('无法读取数据: ' . mysqli_error($conn));
}
echo '<h2>陈沩亮博客 mysqli_fetch_array 测试<h2>';
echo '<table border="1"><tr><td>教程 ID</td><td>标题</td><td>作者</td><td>提交日期</td></tr>';
while($row = mysqli_fetch_array($retval, MYSQL_NUM))
{
 echo "<tr><td> {$row[0]}</td> ".
 "<td>{$row[1]} </td> ".
 "<td>{$row[2]} </td> ".
 "<td>{$row[3]} </td> ".
 "</tr>";
}
echo '</table>';
// 释放内存
mysqli_free_result($retval);
mysqli_close($conn);
?>
 

وبلاگ امید چن ویلیانگ ( https://www.chenweiliang.com/ ) shared " پایگاه داده MySQL چگونه داده های جدول را پرس و جو می کند؟عبارت Query/Command/Syntax" برای کمک به شما.

به اشتراک گذاری لینک این مقاله خوش آمدید:https://www.chenweiliang.com/cwl-461.html

به کانال تلگرام وبلاگ چن ویلیانگ خوش آمدید تا از آخرین به روز رسانی ها مطلع شوید!

🔔 اولین نفری باشید که "راهنمای استفاده از ابزار هوش مصنوعی بازاریابی محتوایی ChatGPT" را در فهرست بالای کانال دریافت می کنید! 🌟
📚 این راهنما حاوی ارزش بسیار زیادی است، 🌟این یک فرصت نادر است، آن را از دست ندهید! ⏰⌛💨
اگر دوست داشتید به اشتراک بگذارید و لایک کنید
اشتراک گذاری و لایک های شما انگیزه مستمر ما هستند!

 

发表 评论

آدرس ایمیل شما منتشر نخواهد شد. از زمینه های مورد نیاز استفاده می شود * 标注

به بالا بروید