MariaDB - Wählen Sie Abfrage
In diesem Kapitel erfahren Sie, wie Sie Daten aus einer Tabelle auswählen.
SELECT-Anweisungen rufen ausgewählte Zeilen ab. Sie können UNION-Anweisungen, eine Bestellklausel, eine LIMIT-Klausel, eine WHERE-Klausel, eine GROUP BY ... HAVING-Klausel und Unterabfragen enthalten.
Überprüfen Sie die folgende allgemeine Syntax:
SELECT field, field2,... FROM table_name, table_name2,... WHERE...
Eine SELECT-Anweisung bietet mehrere Optionen zum Angeben der verwendeten Tabelle.
database_name.table_name
table_name.column_name
database_name.table_name.column_name
Alle select-Anweisungen müssen eine oder mehrere enthalten select expressions. Ausgewählte Ausdrücke bestehen aus einer der folgenden Optionen:
Ein Spaltenname.
Ein Ausdruck, der Operatoren und Funktionen verwendet.
Die Angabe "Tabellenname. *", Um alle Spalten in der angegebenen Tabelle auszuwählen.
Das Zeichen "*" zum Auswählen aller Spalten aus allen in der FROM-Klausel angegebenen Tabellen.
Die Eingabeaufforderung oder ein PHP-Skript können zum Ausführen einer select-Anweisung verwendet werden.
Die Eingabeaufforderung
Führen Sie an der Eingabeaufforderung die folgenden Anweisungen aus:
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
Verwenden Sie dieselben SELECT-Anweisungen in einer PHP-Funktion, um die Operation auszuführen. Sie werden die verwendenmysql_query()wieder funktionieren. Überprüfen Sie ein Beispiel unten -
<?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);
?>
Nach erfolgreichem Datenabruf wird die folgende Ausgabe angezeigt:
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
Best Practices empfehlen, den Cursorspeicher nach jeder SELECT-Anweisung freizugeben. PHP bietet diemysql_free_result()Funktion für diesen Zweck. Überprüfen Sie die Verwendung wie unten gezeigt -
<?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);
?>