MariaDB - เลือกแบบสอบถาม

ในบทนี้เราจะเรียนรู้วิธีการเลือกข้อมูลจากตาราง

คำสั่ง SELECT ดึงข้อมูลแถวที่เลือก ซึ่งสามารถรวมคำสั่ง UNION, ประโยคสั่งซื้อ, LIMIT clause, WHERE clause, GROUP BY ... HAVING clause และ subqueries

ตรวจสอบไวยากรณ์ทั่วไปต่อไปนี้ -

SELECT field, field2,... FROM table_name, table_name2,... WHERE...

คำสั่ง SELECT มีหลายตัวเลือกสำหรับการระบุตารางที่ใช้ -

  • database_name.table_name

  • table_name.column_name

  • database_name.table_name.column_name

ข้อความที่เลือกทั้งหมดต้องมีอย่างน้อยหนึ่งรายการ select expressions. เลือกนิพจน์ประกอบด้วยหนึ่งในตัวเลือกต่อไปนี้ -

  • ชื่อคอลัมน์

  • นิพจน์ที่ใช้ตัวดำเนินการและฟังก์ชัน

  • ข้อกำหนด“ table_name. *” เพื่อเลือกคอลัมน์ทั้งหมดภายในตารางที่กำหนด

  • อักขระ“ *” เพื่อเลือกคอลัมน์ทั้งหมดจากตารางทั้งหมดที่ระบุในส่วนคำสั่ง FROM

สามารถใช้พรอมต์คำสั่งหรือสคริปต์ PHP ในการเรียกใช้คำสั่ง select

พร้อมรับคำสั่ง

ที่พรอมต์คำสั่งดำเนินการคำสั่งดังต่อไปนี้ -

root@host# mysql -u root -p password;
Enter password:*******
mysql> use PRODUCTS;
Database changed
mysql> SELECT * from products_tbl
+-------------+---------------+
| ID_number   | Nomenclature  |
+-------------+---------------+
| 12345       | Orbitron 4000 |
+-------------+---------------+

PHP เลือกสคริปต์

ใช้คำสั่ง SELECT เดียวกันภายในฟังก์ชัน PHP เพื่อดำเนินการ คุณจะใช้ไฟล์mysql_query()ฟังก์ชั่นอีกครั้ง ตรวจสอบตัวอย่างด้านล่าง -

<?php
   $dbhost = 'localhost:3036';
   $dbuser = 'root';
   $dbpass = 'rootpassword';
   $conn = mysql_connect($dbhost, $dbuser, $dbpass);
   
   if(! $conn ) {
      die('Could not connect: ' . mysql_error());
   }

   $sql = 'SELECT product_id, product_name,product_manufacturer, ship_date FROM products_tbl';
   mysql_select_db('PRODUCTS');
   $retval = mysql_query( $sql, $conn );
   
   if(! $retval ) {
      die('Could not get data: ' . mysql_error());
   }

   while($row = mysql_fetch_array($retval, MYSQL_ASSOC)) {
      echo "Product ID :{$row['product_id']} <br> ".
         "Name: {$row['product_name']} <br> ".
         "Manufacturer: {$row['product_manufacturer']} <br> ".
         "Ship Date : {$row['ship_date']} <br>".
         "--------------------------------<br>";
   }

   echo "Fetched data successfully\n";
   mysql_close($conn);
?>

เมื่อดึงข้อมูลสำเร็จคุณจะเห็นผลลัพธ์ต่อไปนี้ -

Product ID: 12345
Nomenclature: Orbitron 4000
Manufacturer: XYZ Corp
Ship Date: 01/01/17
----------------------------------------------
Product ID: 12346
Nomenclature: Orbitron 3000
Manufacturer: XYZ Corp
Ship Date: 01/02/17
----------------------------------------------
mysql> Fetched data successfully

แนวทางปฏิบัติที่ดีที่สุดแนะนำให้ปล่อยหน่วยความจำเคอร์เซอร์หลังจากทุกคำสั่ง SELECT PHP ให้ไฟล์mysql_free_result()เพื่อวัตถุประสงค์นี้ ตรวจสอบการใช้งานตามที่แสดงด้านล่าง -

<?php
   $dbhost = 'localhost:3036';
   $dbuser = 'root';
   $dbpass = 'rootpassword';
   $conn = mysql_connect($dbhost, $dbuser, $dbpass);
   
   if(! $conn ) {
      die('Could not connect: ' . mysql_error());
   }

   $sql = 'SELECT product_id, product_name, product_manufacturer, ship_date FROM products_tbl';
   mysql_select_db('PRODUCTS');
   $retval = mysql_query( $sql, $conn );

   if(! $retval ) {
      die('Could not get data: ' . mysql_error());
   }

   while($row = mysql_fetch_array($retval, MYSQL_NUM)) {
      echo "Product ID :{$row[0]} <br> ".
         "Name: {$row[1]} <br> ".
         "Manufacturer: {$row[2]} <br> ".
         "Ship Date : {$row[3]} <br> ".
         "--------------------------------<br>";
   }

   mysql_free_result($retval);
   echo "Fetched data successfully\n";
   mysql_close($conn);
?>