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