MariaDB - Selecionar consulta

Neste capítulo, aprenderemos como selecionar dados de uma tabela.

As instruções SELECT recuperam as linhas selecionadas. Eles podem incluir instruções UNION, uma cláusula de pedido, uma cláusula LIMIT, uma cláusula WHERE, uma cláusula GROUP BY ... HAVING e subconsultas.

Revise a seguinte sintaxe geral -

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

Uma instrução SELECT oferece várias opções para especificar a tabela usada -

  • database_name.table_name

  • table_name.column_name

  • database_name.table_name.column_name

Todas as declarações selecionadas devem conter um ou mais select expressions. As expressões selecionadas consistem em uma das seguintes opções -

  • Um nome de coluna.

  • Uma expressão que emprega operadores e funções.

  • A especificação “table_name. *” Para selecionar todas as colunas na tabela fornecida.

  • O caractere “*” para selecionar todas as colunas de todas as tabelas especificadas na cláusula FROM.

O prompt de comando ou um script PHP pode ser empregado na execução de uma instrução select.

O Prompt de Comando

No prompt de comando, execute as instruções da seguinte maneira -

[email protected]# 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

Empregue a (s) mesma (s) instrução (ões) SELECT em uma função PHP para realizar a operação. Você vai usar omysql_query()funcionar mais uma vez. Reveja um exemplo fornecido abaixo -

<?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);
?>

Na recuperação de dados bem-sucedida, você verá a seguinte saída -

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

As melhores práticas sugerem liberar a memória do cursor após cada instrução SELECT. PHP fornece omysql_free_result()função para este fim. Revise seu uso conforme mostrado abaixo -

<?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);
?>