Mariadb-select-query

提供:Dev Guides
移動先:案内検索

MariaDB-選択クエリ

この章では、テーブルからデータを選択する方法を学びます。

SELECTステートメントは、選択された行を取得します。 UNIONステートメント、順序句、LIMIT句、WHERE句、GROUP BY …​ HAVING句、およびサブクエリを含めることができます。

次の一般的な構文を確認します-

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

SELECTステートメントは、使用するテーブルを指定するための複数のオプションを提供します-

  • database_name.table_name
  • table_name.column_name
  • database_name.table_name.column_name

すべての選択ステートメントには、1つ以上の*選択式*が含まれている必要があります。 選択式は、次のオプションのいずれかで構成されています-

  • 列名
  • 演算子と関数を使用する式。
  • 指定されたテーブル内のすべての列を選択するための指定「table_name。*」。
  • FROM句で指定されたすべてのテーブルからすべての列を選択する文字「*」。

selectステートメントの実行には、コマンドプロンプトまたはPHPスクリプトを使用できます。

コマンドプロンプト

コマンドプロンプトで、次のようにステートメントを実行します-

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関数内で同じSELECTステートメントを使用して、操作を実行します。 もう一度* 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);
?>