Учебники

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

database_name.table_name

table_name.column_name

database_name.table_name.column_name

Все операторы выбора должны содержать одно или несколько выражений выбора . Выражения выбора состоят из одного из следующих параметров —

  • Имя столбца.

  • Выражение с использованием операторов и функций.

  • Спецификация table_name. *, Чтобы выбрать все столбцы в данной таблице.

  • Символ «*» для выбора всех столбцов из всех таблиц, указанных в предложении FROM.

Имя столбца.

Выражение с использованием операторов и функций.

Спецификация 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 Script

Для выполнения операции используйте те же операторы 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 () для этой цели. Проверьте его использование, как показано ниже —