
- •Методические указания к выполнению лабораторных работ Предисловие
- •Библиографический список
- •Лабораторная работа № 1 Тема №1. ИнсталляцияMySqLи создание локального сервера
- •1. Цель работы
- •2. Основные технические возможности
- •3. Описание установки
- •4. Порядок выполнения работы
- •5. Содержание отчета
- •Лабораторная работа № 1
- •6. Содержание отчета
- •Лабораторная работа № 2 Тема №1. Создание баз и таблиц данных
- •1. Цель работы
- •2. Основные сведения
- •3. Программа работы
- •4. Указания к выполнению работы
- •3. Программа работы
- •00 Проверка моего домена с именем Moy.Loc
- •4. Указания к выполнению работы
- •5. Содержание отчета
- •3. Указания к выполнению работы
- •Задание 2: Разработать html-форму с методом Post
- •Тема №2. Передача значений переменным в сценариях php. Использование возможностей метода get без html-формы для передачи значений переменных в сценариях php
- •Тема №3. Создание формы и рнр-сценария в одном файле
- •Задание 1: Получение данных из текстового поля
- •I курсив
- •Тема №4. Использование чисел. Управляющие структуры
- •Тема №5. Использование управляющей структурыswitch
- •Тема № 6. Использование регулярных выражений в сценариях рнр
- •Проверка ошибок
- •Задание 1. Вывод информации о ошибочно заполненных полях формы
- •Задание 2. Использование функций пользователя для контроля полей формы
- •Задание 3. Проверка ограничений в текстовом поле.Lab6_0_2.Php
- •Задание 4. Специфика имени пользователя. Lab6_0_3.Php
- •Задание 5. Специфика имени пользователя с помощью JavaScript. Lab6_0_4.Php
- •Тема №7. Работа с массивами
- •Задание 1. Означивание массива и вывод на экран. Lab7_0.Php.
- •Задание 4. Сортировка массива.Lab7_3.Php.
- •Тема №8. Функции в сценариях рнр
- •Задание 1. Вложенные функции.Lab8_0_0.Php
- •Задание 2. Объявление функций внутри других функций.Lab8_0.Php
- •Задание 3. Возврат значений функцией.Lab8_1.Php
- •Задание 4. Возврат нескольких значений функцией.Lab8_2.Php
- •Задание 5. Возвращение функцией нескольких величин.Lab8_3.Php
- •Задание 6. Рекурсивные функции .Lab8_4.Php
- •Задание 7. Функции-переменные.Lab8_5.Php
- •Задание 8. Построение библиотек функций.Lab8_6_0.Php.
- •Задание 9. Построение шаблона сайта.Lab8_7_0.Php.
- •Тема №9. Использование файлов для хранения данных в сценариях рнр
- •Создание сценария загрузки.
- •Задание 3. Сохранение пользовательских данных в текстовом файлеLab9_5.Php
- •Задание 4. Сохранение пользовательских данных в текстовом файлеLab9_6_0.Php
- •Тема № 10. Работа с каталогами в сценариях рнр
- •Тема №11. Создание панели управления файлами
- •Задание 1. Разработать форму и сопутствующее ей приложение для панели управления файлами.
- •Тема № 12.Работа с базой через монтторMySql и PhpMyAdmin
- •Задание 1. Создать базу данных через командную строку
- •Задание 3. Вставка данных в базу данных
- •Задание 4. Создание командных файлов и файлов сценариев для вставки данных в базу данных.
- •Тема № 13. Извлечение данных из базы данных
- •Задание 1. Оператор выборки данныхSelect
- •Задание 2. Извлечение данных по определенному критерию
- •Задание 3. Извлечение данных из нескольких таблиц
- •Задание 4. Поиск несоответствующих строк
- •Задание 5. Использование псевдонимов имен таблиц (as)
- •Задание 6. Извлечение данных в определенном порядке
- •Задание 7. Группировка и агрегирование данных
- •Задание 8. Обновление записей в базе данных (update)
- •Задание 10. Удаление записей, таблиц и базы данных (delete)
- •Тема № 14.Php и MySql. Доступ к базе данных MySql из Web с помощью рнр
- •Задание 1. Изучение работы архитектуры Web-баз данных
- •Задание 2. Проверка и фильтрация данных, исходящих от пользователя. Использование объектно-ориентированного синтаксисаPhp
- •Задание 3. Внесение новой информации в базу данных. Проверка и фильтрация данных, исходящих от администратора
- •Задание 4. Создание и удаление баз данных
- •Содержание
Тема № 13. Извлечение данных из базы данных
Цель. Практическое использование конструкций SQL.
Задание 1. Оператор выборки данныхSelect
Оператор SELECT языка SQL извлекает данные из базы данных, выбирая из таблицы строки, которые отвечают заданному критерию поиска.
Основная форма оператора SELECT следующая (полное описание и использование языка SQL приведено в [7], в этой теме будут рассматриваться наиболее употребимые):
SELECT items
FROM tables
[ WHERE condition ]
[ GROUP BY group_type ]
[ HAVING wnere_definition ]
[ ORDER BY order_type ]
[ LIMIT Iimit_criteria ] ;
Рассмотрим каждую
конструкцию, используя схему базы данных
представленную на рис. 3.214. Выполнение
данной темы предполагает, что MySQL
запущен
.
Простейшим вариантом выборки данных Вы уже неоднократно пользовались, используя конструкцию SELECT * FROM tables (см. например рис. 3.220). Символ “*” использовался для вывода всех столбцов искомой таблицы tables.
Если взамен символа “*” использовать (через запятую) имена столбцов, то в результате подобного запроса Вы получите информацию только по тем столбцам, которые указаны в качестве элементов items.
Например, запрос (поиск):
SELECT name, city FROM customers ;
запрашивает данные столбцов name (имя) и city (город) таблицы Customers:
Если воспользоваться монитором MySQL (вызов через пакетный файл CmySql.bat - рис. 3.188), то ввод необходимых команд даст следующий результат, показанный на рис. 3.227.
Если воспользоваться средствами PhpMyAdmin для реализации этого запроса, то результат будет такой же, но изображение естественно будет другим (рис. 3.229).
Можно указывать столько столбцов таблицы, сколько необходимо, главное — вписать их по порядку после ключевого слова select. Кроме того, можно указывать и другие элементы, уточняющие выборку данных.
Рис. 3.227. Результат поиска (выборки) через монитор MySQL.
Рис. 3.228. Подготовка запроса в PhpMyAdmin через кнопку SQL.
Нажатие
кнопки
даст следующий результат:
Рис. 3.229. Результат поиска через PhpMyAdmin.
В следующих заданиях по данной теме результаты использования средств PhpMyAdmin в целях экономии места приводиться не будут. Также не будут указываться команды set names cp866 и use books при использовании монитора.
Задание 2. Извлечение данных по определенному критерию
Чтобы получить доступ к подмножеству строк в таблице, следует указать критерий выбора с помощью конструкции WHERE. Например,
SELECT * FROM orders WHERE customerid = 3;
выбирает все столбцы из таблицы заказов, но только из строк с customerid, равным 3.
Рис. 3.230. Результат поиска через монитор MySQL.
Конструкция WHERE устанавливает критерий выбора определенных строк. В нашем случае выбраны строки с customerid, равным 3. Одиночный знак равенства используется для проверки на равенство — обратите внимание, что это немного отличается от РНР, и если работать и с тем, и с другим, вполне можно запутаться.
Вдобавок к равенству, MySQL поддерживает целое семейство операторов и регулярных выражений. Наиболее употребимые в конструкции WHERE перечислены в таблице приведенной на рис. 3.231.
Примечание. Обратите внимание, что список далеко не полон, и если понадобится что-нибудь, отсутствующее в нем, обратитесь к руководству по MySQL.
Знаки операции сравнения для конструкции WHERE (рис. 3.231):
Операция (терм сравнения) |
Название (если применимо) |
Пример |
Описание |
= |
равенство |
custumerid = 3 |
Проверяет, являются ли два значения равными |
> |
больше |
amount>60.00 |
Проверяет, больше ли одно значение другого |
< |
меньше |
amount<60.00 |
Проверяет, меньше ли одно значение другого |
>= |
больше или равно |
amount>=60.00 |
Проверяет, больше или равно одно значение по отношению к другому |
<= |
меньше или равно |
amount<=60.00 |
Проверяет, меньше или равно одно значение по отношению к другому |
!= или <> |
не равно |
quantity !=0 |
Проверяет, не равны ли два значения. Пробел между ! и = не допустим |
IS NOT NULL |
адрес не равен нулю |
|
Проверяет, имеет ли поле значение |
IS NULL |
адрес равен нулю |
|
Проверяет, не имеет ли поле значения |
BETWEEN |
|
величина между 0 и 60.00 |
Проверяет, значение больше или равно минимальному и меньше или равно максимальному |
IN |
|
город содержится |
Проверяет, содержится ли значение в определенном множестве |
NOT IN |
|
город не содержится |
Проверяет, не содержится ли значение в определенном множестве |
LIKE |
соответствие |
name like ("%Fred %") |
Проверяет, отвечает ли зачение образцу, используя простые механизмы соответствия SQL |
NOT LIKE |
соответствие |
name not like ("%Fred %") |
Проверяет, не соответствует ли значение образцу |
REGEXP |
регулярное |
name regexp |
Проверяет, соответствует ли выражение значение регулярному выражению |
Рис. 3.231. Операции сравнения для конструкции WHERE.
Три последних строки таблицы относятся к LIKE и REGEXP. Это формы соответствия образцу.
Операция LIKE использует простой механизм соответствия SQL. Образец может состоять из обычного текста плюс % (знак процента) для указания совпадения с любым количеством символов и _ (символ подчеркивания) для указания совпадения с одним символом. В MySQL соответствия не чувствительны к регистру. Например, 'Fred %' найдет любое значение, которое начинается с 'fred '.
Ключевое слово REGEXP используется для соответствия регулярных выражений. MySQL использует регулярные выражения в стиле POSIX. Вместо REGEXP можно применять и RLIKE, что является синонимом. Регулярные выражения POSIX также применяются и в РНР.
Можно проверять несколько критериев сразу, объединяя их операциями AND или OR. Например,
Рис. 3.232. Операции сравнения для конструкции WHERE.
Следующий запрос показывает выборку с использованием операции BETWEEN.
Рис. 3.233. Операции сравнения для конструкции WHERE.
Запрос на совпадение с операцией LIKE
Рис. 3.234. Операции сравнения для конструкции WHERE.
Обратите внимание на следующий запрос:
Рис. 3.235. Результат с пустым ответом.