- •Запросы к таблицам
- •Цели занятия
- •SELECT
- •Написание простейших запросов
- •Примеры написания простейших
- •Предложение WHERE
- •Использование предложения
- •Пример использования
- •Сортировка
- •Сортировка
- •Примеры сортировок
- •Агрегатные функции
- •Пример использования агрегатных
- •Предложение GROUP BY
- •Использование предложения GROUP
- •Пример использования GROUP BY
- •Предложение HAVING
- •Пример использования предложения
- •Объединение таблиц
- •Объединение таблиц
- •Пример объединения таблиц
- •Вложенные запросы
- •Вложенные запросы
- •Пример использования вложенных
Запросы к таблицам
Все права защищены. www.haulmont.ru info@haulmont.com |
© HAULMONT, 2012 |
Цели занятия
2Научиться:
•Писать простейшие запросы
•Писать запросы, задавая условия выборки данных
•Использовать встроенные функции, в том числе агрегатные
•Уметь использовать предложения ORDER BY, GROUP BY, HAVING
•Писать запросы, используя данные из двух и более таблиц
•Писать вложенные запросы
Все права защищены. www.haulmont.ru info@haulmont.com |
© HAULMONT, 2011 |
SELECT
3
•Для написания запросов к таблицам используется оператор SELECT
•Он подразделяется на список выбора, список таблиц и необязательную часть отбора
SELECT список_выбора FROM список_таблиц условия_отбора;
•Для выбора всех столбцов используется символ
*
•Для исключения дублирующих строк используется ключевое слово DISTINCT
•Столбцам в списке выбора можно задавать имена, указывая их после имен столбцов, или через ключевое слово AS, или заключая в двойные кавычки (во избежание совпадений с ключевыми словами)
Все права защищены. www.haulmont.ru info@haulmont.com |
© HAULMONT, 2012 |
Написание простейших запросов
4
SELECT * FROM имя_таблицы;
SELECT имя_столбца1, имя_столбца2 FROM имя_таблицы;
SELECT имя_столбца1, имя_столбца2 , имя_столбца1 - имя_столбца2 FROM имя_таблицы;
SELECT DISTINCT имя_столбца1 FROM имя_таблицы;
SELECT имя_столбца1, имя_столбца2, имя_столбца1 - имя_столбца2 AS новое_имя_столбца FROM имя_таблицы;
SELECT имя_столбца1, имя_столбца2, имя_столбца1 - имя_столбца2 "новое_имя_столбца " FROM имя_таблицы;
SELECT имя_столбца1, имя_столбца2, имя_столбца1 - имя_столбца2 новое_имя_столбца FROM имя_таблицы;
Все права защищены. www.haulmont.ru info@haulmont.com |
© HAULMONT, 2012 |
Примеры написания простейших
запросов
5
SELECT * FROM books;
SELECT name, author, price FROM books;
SELECT name, author, price- discounted_price FROM books;
SELECT DISTINCT author FROM books;
SELECT name, author, price- discounted_price AS discount FROM books;
SELECT name, author, price – discounted_price "discount" FROM books;
SELECT name, author, price- discounted_price discount FROM books;
Все права защищены. www.haulmont.ru info@haulmont.com |
© HAULMONT, 2012 |
Предложение WHERE
6
•Позволяет задать условия, по которым будут выбираться данные
•Условий может быть несколько, они указываются с помощью логических операторов AND, OR, NOT
•Внутри условий можно использовать операторы
•При использовании операторов помните про приоритеты или расставляйте скобки ()
Все права защищены. www.haulmont.ru info@haulmont.com |
© HAULMONT, 2012 |
|
|
Операторы |
7 = |
Равно |
Неравно |
<> |
|
|
< |
|
Меньше |
> |
|
Больше |
<= |
|
Меньше или равно |
>= |
AND |
Больше или равно |
BEETWEEN |
Входит в отрезок (включая) |
|
IN (список) |
Совпадает со значением списка |
|
LIKE |
|
Подходит под заданный |
шаблон |
|
(_ обозначает один |
символ, % |
|
|
|
обозначает ноль или более |
|
cимволов) |
Имеет значение null |
|
IS NULL |
|
|
(пустое) |
|
|
Все права защищены. www.haulmont.ru info@haulmont.com |
© HAULMONT, 2012 |
Использование предложения
WHERE
8 SELECT имя_столбца1, имя_столбца2, имя_столбца3 FROM имя_таблицы WHERE условие;
SELECT имя_столбца1, имя_столбца2, имя_столбца3 FROM имя_таблицы WHERE условие1 AND условие2;
SELECT имя_столбца1, имя_столбца2, имя_столбца3 FROM имя_таблицы WHERE условие1 OR NOT (условие2);
SELECT имя_столбца1, имя_столбца2, имя_столбца3 FROM имя_таблицы WHERE имя_столбца1 BETWEEN значение1 AND значение2;
SELECT имя_столбца1, имя_столбца2, имя_столбца3 FROM имя_таблицы WHERE имя_столбца2 IN (значение1 , значение2);
SELECT имя_столбца1, имя_столбца2, имя_столбца3 FROM имя_таблицы WHERE имя_столбца3 LIKE '_символ%';
SELECT имя_столбца1, имя_столбца2, имя_столбца3 FROM имя_таблицы WHERE имя_столбца2 IS NOT NULL;
Все права защищены. www.haulmont.ru info@haulmont.com |
© HAULMONT, 2012 |
Пример использования
предложения WHERE
9
SELECT name, author, price FROM books WHERE price<=500;
SELECT name, author, price FROM books WHERE price<=500 AND name='Hamlet';
SELECT name, author, price FROM books WHERE price<=500 OR NOT (name ='Hamlet');
SELECT name, author, price FROM books WHERE price BETWEEN 400 AND 550;
SELECT name, author, price FROM books WHERE price IN (300,600);
SELECT name, author, price FROM books WHERE name LIKE '_a%';
SELECT name, author, price, discounted_price FROM books WHERE discounted_price IS NOT NULL;
Все права защищены. www.haulmont.ru info@haulmont.com |
© HAULMONT, 2012 |
Сортировка
10
•Данные, полученные в результате запроса, можно отсортировать
•Для этого используется предложение ORDER BY
•По умолчанию данные сортируются по возрастанию
•Чтобы отсортировать по убыванию, используется ключевое слово DESC предложения ORDER BY
•Возможна сортировка по нескольким столбцам
Все права защищены. www.haulmont.ru info@haulmont.com |
© HAULMONT, 2012 |