- •Запросы к таблицам
- •Цели занятия
- •SELECT
- •Написание простейших запросов
- •Примеры написания простейших
- •Предложение WHERE
- •Использование предложения
- •Пример использования
- •Сортировка
- •Сортировка
- •Примеры сортировок
- •Агрегатные функции
- •Пример использования агрегатных
- •Предложение GROUP BY
- •Использование предложения GROUP
- •Пример использования GROUP BY
- •Предложение HAVING
- •Пример использования предложения
- •Объединение таблиц
- •Объединение таблиц
- •Пример объединения таблиц
- •Вложенные запросы
- •Вложенные запросы
- •Пример использования вложенных
Объединение таблиц
21 SELECT имя_таблицы1.имя_столбца1, имя_таблицы2.имя_столбца1, имя_столбца3 FROM имя_таблицы1, имя_таблицы2 WHERE имя_таблицы1.имя_столбца4 = имя_таблицы2.имя_столбца4;
SELECT имя_таблицы1.имя_столбца1, имя_таблицы2.имя_столбца1, имя_столбца3 FROM имя_таблицы1
INNER JOIN имя_таблицы2 ON (имя_таблицы1.имя_столбца4 = имя_таблицы2.имя_столбца4);
SELECT имя_таблицы1.имя_столбца1, имя_таблицы2.имя_столбца1, имя_столбца3 FROM имя_таблицы1
RIGHT JOIN имя_таблицы2 ON (имя_таблицы1.имя_столбца4 = имя_таблицы2.имя_столбца4;
SELECT a.имя_столбца1, a.имя_столбца2, a.имя_столбца3 FROM имя_таблицы1 a, имя_таблицы1 b WHERE (a.имя_столбца2 = b.имя_столбца1 AND a.имя_столбца3 > b.имя_столбца3)
Все права защищены. www.haulmont.ru info@haulmont.com |
© HAULMONT, 2012 |
Пример объединения таблиц
22
SELECT books.name, shops.name, author, price FROM books, shops WHERE books.shop_id = shops.shop_id;
SELECT books.name, shops.name, author, price FROM books
INNER JOIN shop ON (books.shop_id = shops.shop_id);
SELECT books.name, shops.name, author, price FROM books
RIGHT JOIN shop ON (books.shop_id = shops.shop_id);
SELECT a.name, a.author, a.price FROM books a, books b WHERE (a.price > b.price)
Все права защищены. www.haulmont.ru info@haulmont.com |
© HAULMONT, 2012 |
Вложенные запросы
23• Выполняются перед выполнением основного запроса
•Результат выполнения вложенного запроса используется в основном (внешнем) запросе
•Вложенный запрос заключается в ()
•Во вложенном запросе можно использовать агрегатные функции
•Вложенный запрос может использоваться в предложениях WHERE, HAVING
Все права защищены. www.haulmont.ru info@haulmont.com |
© HAULMONT, 2012 |
Вложенные запросы
24• Бывают однострочные и многострочные
•Для многострочных подзапросов следует использовать многострочные операторы:
1)IN – совпадает с любым из списка,
2)ANY – сравнивает значение со всеми в смысле «хотя бы для одного»,
3)ALL – сравнивает значение со всеми в смысле «для всех».
Все права защищены. www.haulmont.ru info@haulmont.com |
© HAULMONT, 2012 |
Пример использования вложенных
запросов
25 SELECT name, author, price FROM books WHERE price = (SELECT price FROM books WHERE books_id = 1);
SELECT name, author, price FROM books WHERE price = (SELECT MIN(price) FROM books);
SELECT name, AVG(price) FROM books GROUP BY shop_id, name HAVING AVG(price) > (SELECT AVG(price) FROM books WHERE shop_id = 3);
SELECT name, author, price FROM books WHERE price > ANY (SELECT price FROM books);
Все права защищены. www.haulmont.ru info@haulmont.com |
© HAULMONT, 2012 |