ฐานข้อมูล 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 เพื่อรับข้อมูล

การใช้ฟังก์ชัน PHP mysqli_query() และ SQL เลือก คำสั่งในการรับข้อมูล

ฟังก์ชันนี้ใช้เพื่อรันคำสั่ง SQL แล้วส่งผ่านฟังก์ชัน PHP mysqli_fetch_array() เพื่อใช้หรือส่งออกข้อมูลสำหรับแบบสอบถามทั้งหมด

mysqli_fetch_array() ฟังก์ชันดึงแถวจากชุดผลลัพธ์เป็นอาร์เรย์ที่เชื่อมโยง หรืออาร์เรย์ของตัวเลข หรือทั้งสองอย่าง ส่งกลับอาร์เรย์ที่สร้างจากแถวที่ดึงมาจากชุดผลลัพธ์ หรือเป็นเท็จ หากไม่มีแถวอีก

ตัวอย่างต่อไปนี้จะอ่านระเบียนทั้งหมดจากตารางข้อมูล 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()ฟังก์ชันใช้แถวจากชุดผลลัพธ์เป็นอาร์เรย์ที่เชื่อมโยงคืนค่า associative array ที่สร้างจากแถวที่นำมาจากชุดผลลัพธ์ หรือ 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);
?>
 

หวัง Chen Weiliang บล็อก ( https://www.chenweiliang.com/ ) แชร์ "ฐานข้อมูล MySQL ทำการสืบค้นข้อมูลในตารางอย่างไร?Query Statement/Command/Syntax" เพื่อช่วยคุณ

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

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

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

 

发表评论

ที่อยู่อีเมลของคุณจะไม่ถูกเผยแพร่ 必填项已用 * 标注

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