ฐานข้อมูล MySQL สืบค้นข้อมูลในตารางอย่างไรคำสั่งแบบสอบถาม/คำสั่ง/ไวยากรณ์

วิธีการเรียกดูข้อมูลจากตารางใน ฐานข้อมูล MySQL ? คำสั่ง/ไวยากรณ์การเรียกดูข้อมูล

MySQL สอบถามข้อมูล

ฐานข้อมูล MySQL ใช้คำสั่ง SQL SELECT เพื่อสืบค้นข้อมูล

คุณสามารถสืบค้นข้อมูลในฐานข้อมูลผ่านหน้าต่างพรอมต์คำสั่ง mysql> หรือผ่านสคริปต์ PHP

ไวยากรณ์

ต่อไปนี้เป็นไวยากรณ์ SELECT ทั่วไปสำหรับการสืบค้นข้อมูลในฐานข้อมูล MySQL:

SELECT column_name,column_name
FROM table_name
[WHERE Clause]
[OFFSET M ][LIMIT N]
  • ในคำสั่งแบบสอบถาม คุณสามารถใช้อย่างน้อยหนึ่งตาราง แยกตารางด้วยเครื่องหมายจุลภาค (,) และใช้คำสั่ง WHERE เพื่อตั้งค่าเงื่อนไขคิวรี
  • คำสั่ง SELECT สามารถอ่านระเบียนได้ตั้งแต่หนึ่งรายการขึ้นไป
  • คุณสามารถใช้เครื่องหมายดอกจัน (*) เพื่อแทนที่ฟิลด์อื่น คำสั่ง SELECT จะส่งคืนข้อมูลฟิลด์ทั้งหมดของตาราง
  • คุณสามารถใช้คำสั่ง WHERE เพื่อรวมเงื่อนไขใดก็ได้
  • คุณสามารถระบุออฟเซ็ตข้อมูลที่คำสั่ง SELECT เริ่มการสืบค้นด้วย OFFSETโดยค่าเริ่มต้น ออฟเซ็ตคือ 0
  • คุณสามารถใช้คุณสมบัติ LIMIT เพื่อกำหนดจำนวนเร็กคอร์ดที่ส่งคืน

รับข้อมูลผ่านพรอมต์คำสั่ง

ในตัวอย่างต่อไปนี้ เราจะใช้คำสั่ง SQL SELECT เพื่อรับข้อมูลของตารางข้อมูล MySQL chenweiliang_tbl:

ตัวอย่าง

ตัวอย่างต่อไปนี้จะคืนค่าระเบียนทั้งหมดของตารางข้อมูล chenweiliang_tbl:

อ่านแผ่นข้อมูล:

select * from chenweiliang_tbl;

ใช้สคริปต์ PHP เพื่อรับข้อมูล

ใช้ฟังก์ชันmysqli_query() ของ PHP และ คำสั่ง SELECT ของ SQLเพื่อดึงข้อมูล

ฟังก์ชันนี้ใช้สำหรับเรียกใช้คำสั่ง 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);
?>
 

หวังว่า บทความ "วิธีการสืบค้นข้อมูลจากตารางในฐานข้อมูล MySQL: คำสั่ง/ไวยากรณ์การสืบค้น" ที่แชร์บนบล็อกของ Chen Weiliang ( https://www.chenweiliang.com/ ) จะเป็นประโยชน์กับคุณ

โปรดแชร์ลิงก์บทความนี้ได้ตามสบาย: https://www.chenweiliang.com/cwl-461.html

หากต้องการปลดล็อคเคล็ดลับที่ซ่อนอยู่เพิ่มเติม ยินดีต้อนรับเข้าร่วมช่อง Telegram ของเรา!

แชร์และกดไลค์ถ้าคุณชอบ! การแชร์และการถูกใจของคุณคือแรงบันดาลใจอย่างต่อเนื่องของเรา!

 

发表评论

您的邮箱地址不会被公ปริญญา。必填项已用*标注

เลื่อนไปที่ด้านบน