MariaDB - Wybierz zapytanie

W tym rozdziale nauczymy się wybierać dane z tabeli.

Instrukcje SELECT pobierają wybrane wiersze. Mogą zawierać instrukcje UNION, klauzulę porządkową, klauzulę LIMIT, klauzulę WHERE, klauzulę GROUP BY ... HAVING i podzapytania.

Przejrzyj następującą ogólną składnię -

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

Instrukcja SELECT zapewnia wiele opcji określania używanej tabeli -

  • database_name.table_name

  • table_name.column_name

  • database_name.table_name.column_name

Wszystkie instrukcje Select muszą zawierać jedną lub więcej select expressions. Wybierz wyrażenia składają się z jednej z następujących opcji -

  • Nazwa kolumny.

  • Wyrażenie zawierające operatory i funkcje.

  • Specyfikacja „nazwa_tabeli. *” W celu wybrania wszystkich kolumn w danej tabeli.

  • Znak „*”, aby zaznaczyć wszystkie kolumny ze wszystkich tabel określonych w klauzuli FROM.

Do wykonania instrukcji select można wykorzystać wiersz polecenia lub skrypt PHP.

Wiersz polecenia

W wierszu polecenia wykonaj następujące instrukcje -

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

Użyj tych samych instrukcji SELECT w funkcji PHP, aby wykonać operację. Będziesz używaćmysql_query()funkcja ponownie. Przejrzyj przykład podany poniżej -

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

Po pomyślnym pobraniu danych zobaczysz następujący wynik -

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

Najlepsze praktyki sugerują zwalnianie pamięci kursora po każdej instrukcji SELECT. PHP zapewniamysql_free_result()funkcji w tym celu. Przejrzyj jego użycie, jak pokazano poniżej -

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