Работа с субд mysql Учебное пособие по выполнению лабораторных работ


Скачать 1.11 Mb.
Название Работа с субд mysql Учебное пособие по выполнению лабораторных работ
страница 7/16
Тип Учебное пособие
rykovodstvo.ru > Руководство эксплуатация > Учебное пособие
1   2   3   4   5   6   7   8   9   10   ...   16

Лабораторная работа № 4
Создание простых запросов на выборку



Теоретические сведения

Рассмотрим следующие вопросы:

  • выборка данных из одной таблицы с помощью оператора SELECT;

  • использование в запросах операторов и встроенных функций MySQL.

Для выполнения запросов (извлечения строк из одной или нескольких таблиц БД) используется оператор SELECT. Результатом запроса всегда является таблица. Результаты запроса могут быть использованы для создания новой таблицы. Таблица, полученная в результате запроса, может стать предметом дальнейших за­просов.

Общая форма оператора SELECT:

SELECT столбцы FROM таблицы

[WHERE условия]

[GROUP BY группа [HAVING групповые_условия] ]

[ORDER BY имя_поля]

[LIMIT пределы];

Оператор SELECT имеет много опций. Их можно использовать или не исполь­зовать, но они должны указываться в том порядке, в каком они приведены. Если требуется вывести все столбцы таблицы, необязательно перечислять их после ключевого слова select, достаточно заменить этот список символом *.



Список столбцов в операторе select используют, если нужно изменить порядок следования столбцов в результирующей таблице или выбрать часть столбцов.



Условия выборки. Гораздо чаще встречается ситуация, когда необходимо изменить количество выводимых строк. Для выбора записей, удовлетворяющих определен­ным критериям поиска, можно использовать конструкцию WHERE.



В запросе можно использовать ключевое слово DISTINCT, чтобы результат не содержал повторений уже имеющихся значений, например:



Сортировка. Результат выборки – записи, расположенные в том порядке, в котором они хранятся в БД. Чтобы отсортировать значения по одному из столбцов, необходимо после конструкции order by указать этот столбец, например:



Сортировку записей можно производить по нескольким столбцам (их следует указать после слов order by через запятую). Число столбцов, указываемых в конструкции order by, не ограничено.

По умолчанию сортировка производится в прямом порядке (записи располагаются от наименьшего значения поля сортировки до наибольшего). Обратный порядок сортировки реализуется с помощью ключевого слова desc:



Для прямой сортировки существует ключевое слово asc, но так как записи сортируются в прямом порядке по умолчанию, данное ключевое слово опускают.

Ограничение выборки. Результат выборки может содержать тысячи записей, вывод и обработка которых занимают значительное время. Поэтому информацию часто разбивают на страницы и предоставляют ее пользователю частями. Постраничная навигация используется при помощи ключевого слова limit, за которым следует число выводимых записей. Следующий запрос извлекает первые 5 записей, при этом осуществляется обратная сортировка по полю b_count:



Для извлечения следующих пяти записей используется ключевое слово limit с двумя цифрами. Первая указывает позицию, начиная с которой необходимо вернуть результат, вторая цифра – число извлекаемых записей, например:



При определении смещения нумерация строк начинается с нуля (по­этому в последнем примере для шестой строки указано смещение 5).

Группировка записей. Конструкция GROUP ВУ позволяет группировать извлекаемые строки. Она полезна в комбинации с функциями, применяемыми к группам строк. Эти функции (табл. 6) называются агрегатами (суммирующими функциями) и вычисляют одно значение для каждой группы, создаваемой конструкцией group by. Функции позволяют узнать число строк в группе, подсчитать среднее значение, получить сумму значений столбцов. Результирующее значение рассчитывается для значений, не равных null (исключение – функция count(*)). Допустимо использование этих функций в запросах без группировки (вся выборка – одна группа).

Пример использования функции count( ), которая возвращает число строк в таблице, значения указанного столбца для которых отличны от NULL:



Таблица 6

Обозначение

Описание

AVG ( [DISTINCT]
expr)



Возвращает среднее значение аргумента expr. В качестве аргумента обычно выступает имя столбца. Необязательное слово distinct позволяет обрабатывать только уникальные значения столбца expr

COUNT ( )

Подсчитывает число записей и имеет несколько форм. Форма COUNT (выражение) возвращает число записей в таблице, поле выражение для которых не равно null. Форма count(*) возвращает общее число строк в таблице независимо от того, принимает какое-либо поле значение null или нет. Форма COUNT (DISTINCT выражение1, выражение2, ... ) позволяет использовать ключевое слово distinct, которое позволяет подсчитать только уникальные значения столбца

MIN ( [DISTINCT]
expr)



Возвращает минимальное значение среди всех непустых значений выбранных строк в столбце expr. Необязательное слово distinct позволяет обрабатывать только уникальные значения столбца expr

MAX ( [DISTINCT]
expr)



Возвращает максимальное значение среди всех непустых значений выбранных строк в столбце expr. Необязательное слово distinct позволяет обрабатывать только уникальные значения столбца expr

STD (expr)


Возвращает стандартное среднеквадратичное отклонение в аргументе expr

STDDEV_SAMP (expr)


Возвращает выборочное среднеквадратичное отклонение в аргументе expr

SUM ( [DISTINCT]
expr)



Возвращает сумму величин в столбце expr. Необязательное слово distinct позволяет обрабатывать только уникальные значения столбца expr


Использование ключевого слова distinct с функцией count( ) позволяет вернуть число уникальных значений b_cat_ID в таблице books, например:



В SELECT-запросе столбцу можно назначить новое имя с помощью оператора as. Например, результату функции count( ) присваивается псевдоним total:



Использование функций в конструкции where приведет к ошибке. В следующем примере показана попытка извлечения из таблицы catalogs записи с максимальным значением поля cat_ID:



Решение задачи следует искать в использовании конструкции order by:



Для извлечения уникальных записей используют конструкцию group by с именем столбца, по которому группируется результат:



При использовании group by возможно использование условия where:



Часто при задании условий требуется ограничить выборку по результату функ­ции (например, выбрать каталоги, где число товарных позиций больше 5). Использование для этих целей конструкции where приводит к ошибке. Для решения этой проблемы вместо ключевого слова where используется ключевое слово having, располагающееся за конструкцией group by:



Запрос, извлекающий уникальные значения столбца b_cat_ID, большие двух:



При этом в случае использования ключевого слова where сначала производится выборка из таблицы с применением условия и лишь затем группировка результата, а в случае использования ключевого слова having сначала происходит группировка таблицы и лишь затем выборка с применением условия. Допускается использование условия having без группировки group by.

Использование функций. Для решения специфических задач при выборке удобны встроенные функции MySQL. Большинство функций предназначено для использования в выражениях SELECT и WHERE. Существуют также специальные функции группировки для использования в выражении GROUP BY (см. выше).

Каждая функция имеет уникальное имя и может иметь несколько аргументов (перечисляются через запятую в круглых скобках). Если аргументы отсутствуют, круглые скобки все равно следует указывать. Пробелы между именем функции и круглыми скобками недопустимы.

Число доступных для использования функций велико, в приложениях приведены наиболее полезные из них.

Пример использования функции, возвращающей версию сервера MySQL:



Отметим также возможность использования оператора SELECT без таблиц вообще. В такой форме SELECT можно использовать как калькулятор:



Можно вычислить любое выражение без указания таблиц, получив доступ ко всему разнообразию математических и других операторов и функций. Возможность выполнять математические расчеты на уровне SELECT позволяет проводить финансовый анализ значений таблиц и отображать полученные результаты в отчетах. Во всех выражениях MySQL (как в любом языке программирования) можно использовать скобки, чтобы контролировать порядок вычислений.

Операторы. Под операторами подразумеваются конструкции языка, которые производят преобразование данных. Данные, над которыми совершается операция, называются операндами.

В MySQL используются три типа операторов:

  • арифметические операторы;

  • операторы сравнения;

  • логические операторы.

Арифметические операции. В MySQL используются обычные арифметические операции: сложение (+), вычитание (–), умножение (*), деление (/) и целочисленное деление DIV (деление и отсечение дробной части). Деление на 0 дает безопасный результат NULL.

Операторы сравнения. При работе с операторами сравнения необходимо помнить о том, что, за ис­ключением нескольких особо оговариваемых случаев, сравнение чего-либо со зна­чением NULL дает в результате NULL. Это касается и сравнения значения NULL со значением NULL:



Корректнее использовать следующий запрос:



Поэтому следует быть предельно внимательными при работе с операторами сравнения, если операнды могут принимать значения NULL.

Наиболее часто используемые операторы сравнения приведены в табл. 7.

Логические операторы. MySQL поддерживает все обычные логические операции, которые можно использовать в выражениях. Логические выражения в MySQL могут принимать значения 1 (истина), 0 (ложь) или NULL.

Кроме того, следует учитывать, что MySQL интерпретирует любое ненулевое значение, отличное от NULL, как значение «истина». Основные логические операторы приведены в табл. 8.
Практическая работа

При выполнении лабораторной работы необходимо:

  • для заданной предметной области построить два простых запроса на выборку с использованием операторов и функций MySQL;

  • составить отчет по лабораторной работе.

Таблица 7

Оператор

Значение

=

Оператор равенства. Возвращает 1 (истина), если операнды равны, и 0 (ложь), если не равны

<=>


Оператор эквивалентности. Аналогичен обычному равенству, но возвращает только два значения: 1 (истина) и 0 (ложь). NULL не возвращает

<>

Оператор неравенства. Возвращает 1 (истина), если операнды не равны, и 0 (ложь), если равны

<


Оператор «меньше». Возвращает 1 (истина), если левый операнд меньше правого, и 0 (ложь) – в противном случае

<=


Оператор «меньше или равно». Возвращает 1 (истина), если левый операнд меньше правого или они равны, и 0 (ложь) – в противном случае

>


Оператор «больше». Возвращает 1 (истина), если левый операнд больше правого, и 0 (ложь) – в противном случае

>=


Оператор «больше или равно». Возвращает 1 (истина), если левый операнд больше правого или они равны, и 0 (ложь) – в противном случае

n BETWEEN min
AND max


Проверка диапазона. Возвращает 1 (истина), если проверяемое значение n находится между min и max, и 0 (ложь) – в противном случае

IS NULL и
IS NOT NULL

Позволяют прове­рить, является ли значение значением NULL или нет

n IN (множество)


Принадлежность к множеству. Возвращает 1 (истина), если проверяемое значение n входит в список, и 0 (ложь) – в противном случае. В качестве множества может использоваться список литеральных значений или выражений или подзапрос


Таблица 8

Оператор

Пример

Значение


AND

n AND m

Логическое И: истина AND истина = истина,

ложь AND любое = ложь. Все остальные выражения оцениваются как NULL

OR

n OR m

Логическое ИЛИ: истина OR любое = истина,

NULL OR ложь = NULL,

NULL OR NULL = NULL, ложь OR ложь = ложь

NOT

NOT n


Логическое НЕТ: NOT истина = ложь, NOT ложь = истина.

NOT NULL = NULL

XOR

n XOR m

Логическое исключающее ИЛИ: истина XOR истина = ложь,

истина XOR ложь = истина, ложь XOR истина = истина,

ложь XOR ложь = ложь,

NULL XOR любое = NULL, любое XOR NULL = NULL


Переменные SQL и временные таблицы. Часто результаты запроса необходимо использовать в последующих запросах. Для этого полученные данные необходимо сохранить во временных структурах. Эту задачу решают переменные SQL и временные таблицы. Объявление переменной начинается с символа @, за которым следует имя переменной. Значения переменным присваиваются посредством оператора select с использованием оператора присваивания := . Например:



Объявляется переменная @total, которой присваивается число записей в таблице books. Затем в рамках текущего сеанса в последующих запросах появляется возможность использования данной переменной. Переменная действует только в рамках одного сеанса соединения с сервером MySQL и прекращает свое существование после разрыва соединения.

Переменные также могут объявляться при помощи оператора set:



При использовании оператора set в качестве оператора присваивания может выступать обычный знак равенства =. Оператор set удобен тем, что он не возвращает результирующую таблицу. Не рекомендуется одновременно присваивать переменной некоторое значение и использовать эту переменную в одном запросе.

Переменная SQL позволяет сохранить одно промежуточное значение. Когда необходимо сохранить результирующую таблицу, прибегают к временным таблицам. Создание временных таблиц осуществляется при помощи оператора CREATE temporary table, синтаксис которого ничем не отличается от синтаксиса оператора CREATE table.

Временная таблица автоматически удаляется по завершении соединения с сервером, а ее имя действительно только в течение данного соединения. Это означает, что два разных клиента могут использовать временные таблицы с одинаковыми именами без конфликта друг с другом или с существующей таблицей с тем же именем.
Пример выполнения работы

1. Создадим простой запрос на выборку к таблице books, который выводит максимальную и минимальную цены товарных позиций, присваивая им соответственно псевдонимы maximum и minimum:



2. Создадим простой запрос на выборку к таблице books, который выводит количество записей, соответствующих каждому из уникальных значений b_cat_ID. Для этого используем функцию count( ) вместе с выражением group by:


1   2   3   4   5   6   7   8   9   10   ...   16

Похожие:

Работа с субд mysql Учебное пособие по выполнению лабораторных работ icon Описание субд mysql
Субд mysql является программным обеспечением с открытым исходным кодом, распространяемым по лицензии gnu (gpl) и коммерческой лицензии...
Работа с субд mysql Учебное пособие по выполнению лабораторных работ icon Учебное пособие по выполнению лабораторных работ разработано в соответствии...
Механизация и электрификация сельскохозяйственного производства: учебное пособие по выполнению лабораторных работ / И. П. Машкарева,...
Работа с субд mysql Учебное пособие по выполнению лабораторных работ icon Учебное пособие к выполнению лабораторных работ по дисциплине «Микропроцессорная техника»
Разработка прикладного программного обеспечения для микропроцессорных систем на основе микроконтроллера
Работа с субд mysql Учебное пособие по выполнению лабораторных работ icon Учебное пособие к выполнению лабораторных работ по дисциплине «Микропроцессорная техника»
Разработка прикладного программного обеспечения для микропроцессорных систем на основе микроконтроллера
Работа с субд mysql Учебное пособие по выполнению лабораторных работ icon C одержание
Целью данной работы является описание конфигурирования, администрирования и программирования субд mysql и создание программы иллюстрирующей...
Работа с субд mysql Учебное пособие по выполнению лабораторных работ icon Стандартное задание 7 Расширенное задание 8 Рекомендации по выполнению...
Данное методическое пособие представляет собой руководство по установке и настройке необходимого программного обеспечения и выполнению...
Работа с субд mysql Учебное пособие по выполнению лабораторных работ icon Методические указания по выполнению практических и лабораторных работ...
Учебно-методическое пособие предназначенодля студентов 3 курса, обучающихся по профессии 23. 01. 03 Автомеханик. Пособие содержит...
Работа с субд mysql Учебное пособие по выполнению лабораторных работ icon Методическое пособие по выполнению лабораторных работ по дисциплине...
Изыскания и основы проектирования, автомобильных дорог. Методическое пособие по выполнению лабораторных работ по дисциплине «Основы...
Работа с субд mysql Учебное пособие по выполнению лабораторных работ icon Коновалов В. М. К64 Пособие к выполнению лабораторных работ по дисциплине...
К64 Пособие к выполнению лабораторных работ по дисциплине «Прикладное программное обеспечение». Выпуск М.: Мгту га, 2002 г. 36 с
Работа с субд mysql Учебное пособие по выполнению лабораторных работ icon Методические указания для выполнения лабораторных работ и «Базы данных»
Лабораторная работа №1 «Организация хранения данных в субд ms access»
Работа с субд mysql Учебное пособие по выполнению лабораторных работ icon Методические указания к лабораторным работам по курсу Сети ЭВМ и...
Вы познакомились с принципами установки и настройки Web-сервера с поддержкой языка серверных сценариев php. В этой работе мы продолжим...
Работа с субд mysql Учебное пособие по выполнению лабораторных работ icon Методические указания по выполнению лабораторных работ Издательство
Инженерная геодезия. Методические указания по выполнению лабораторных работ. Составители: Шешукова Л. В., Тютина Н. М., Клевцов Е....
Работа с субд mysql Учебное пособие по выполнению лабораторных работ icon Методические указания по выполнению лабораторных работ по дисциплине...
Методические указания по выполнению лабораторных работ рассмотрены и утверждены на заседании кафедры «Безопасность труда и инженерная...
Работа с субд mysql Учебное пособие по выполнению лабораторных работ icon Учебно-методическое пособие по выполнению лабораторных работ для...
Учебно-методическое пособие по выполнению лабораторных работ для студентов по специальности 13. 02. 11 «Техническая эксплуатация...
Работа с субд mysql Учебное пособие по выполнению лабораторных работ icon Методическое пособие по выполнению лабораторных работ Томск, 2014
Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования
Работа с субд mysql Учебное пособие по выполнению лабораторных работ icon Федеральное агентство воздушного транспорта московский государственный
В 14 Авиационные приборы и информационно-измерительные системы, пособие по выполнению лабораторных работ

Руководство, инструкция по применению




При копировании материала укажите ссылку © 2024
контакты
rykovodstvo.ru
Поиск