MariaDB - Sélectionner une requête
Dans ce chapitre, nous allons apprendre à sélectionner des données dans une table.
Les instructions SELECT récupèrent les lignes sélectionnées. Ils peuvent inclure des instructions UNION, une clause de tri, une clause LIMIT, une clause WHERE, une clause GROUP BY ... HAVING et des sous-requêtes.
Passez en revue la syntaxe générale suivante -
SELECT field, field2,... FROM table_name, table_name2,... WHERE...
Une instruction SELECT fournit plusieurs options pour spécifier la table utilisée -
database_name.table_name
table_name.column_name
database_name.table_name.column_name
Toutes les instructions SELECT doivent contenir une ou plusieurs select expressions. Les expressions Select se composent de l'une des options suivantes -
Un nom de colonne.
Une expression employant des opérateurs et des fonctions.
La spécification «nom_table. *» Pour sélectionner toutes les colonnes de la table donnée.
Le caractère «*» pour sélectionner toutes les colonnes de toutes les tables spécifiées dans la clause FROM.
L'invite de commande ou un script PHP peut être utilisé pour exécuter une instruction select.
L'invite de commandes
À l'invite de commande, exécutez les instructions comme suit -
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 |
+-------------+---------------+
Script de sélection PHP
Employez la ou les mêmes instructions SELECT dans une fonction PHP pour effectuer l'opération. Vous utiliserez lemysql_query()fonctionner à nouveau. Passez en revue un exemple donné ci-dessous -
<?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);
?>
Lors de la récupération des données réussie, vous verrez la sortie suivante -
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
Les meilleures pratiques suggèrent de libérer la mémoire du curseur après chaque instruction SELECT. PHP fournit lemysql_free_result()fonction à cet effet. Vérifiez son utilisation comme indiqué ci-dessous -
<?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);
?>