Отбор данных из одной таблицы
Пример 6. Выбрать все данные из таблицы поставщиков (ключевые слова SELECT… FROM…):
SELECT * FROM P;
Замечание. В результате получим новую таблицу, содержащую полную копию данных из исходной таблицы P.
Пример 7. Выбрать все строки из таблицы поставщиков, удовлетворяющих некоторому условию (ключевое слово WHERE…):
SELECT * FROM P WHERE P.PNUM > 2;
Замечание. В качестве условия в разделе WHERE можно использовать сложные логические выражения, использующие поля таблиц, константы, сравнения (>, <, = и т.д.), скобки, союзы AND и OR, отрицание NOT.
Пример 8. Выбрать некоторые колонки из исходной таблицы (указание списка отбираемых колонок):
SELECT P.NAME FROM P;
Замечание. В результате получим таблицу с одной колонкой, содержащую все наименования поставщиков.
Замечание. Если в исходной таблице присутствовало несколько поставщиков с разными номерами, но одинаковыми наименованиями, то в результатирующей таблице будут строки с повторениями - дубликаты строк автоматически не отбрасываются.
Пример 9. Выбрать некоторые колонки из исходной таблицы, удалив из результата повторяющиеся строки (ключевое слово DISTINCT):
SELECT DISTINCT P.NAME FROM P;
Замечание. Использование ключевого слова DISTINCT приводит к тому, что в результатирующей таблице будут удалены все повторяющиеся строки.
Пример 10. Использование скалярных выражений и переименований колонок в запросах (ключевое слово AS…):
SELECT TOVAR.TNAME, TOVAR.KOL, TOVAR.PRICE, "=" AS EQU, TOVAR.KOL*TOVAR.PRICE AS SUMMA FROM TOVAR;
В результате получим таблицу с колонками, которых не было в исходной таблице TOVAR:
Болт | 10 | 100 | = | 1000 |
Гайка | 20 | 200 | = | 4000 |
Винт | 30 | 300 | = | 9000 |
Пример 11.Упорядочение результатов запроса (ключевое слово ORDER BY…):
SELECT PD.PNUM, PD.DNUM, PD.VOLUME FROM PD ORDER BY DNUM;
В результате получим следующую таблицу, упорядоченную по полю DNUM:
1 | 1 | 100 |
2 | 1 | 150 |
3 | 1 | 1000 |
1 | 2 | 200 |
2 | 2 | 250 |
1 | 3 | 300 |
Пример 12. Упорядочение результатов запроса по нескольким полям с возрастанием или убыванием (ключевые слова ASC, DESC):
SELECT PD.PNUM, PD.DNUM, PD.VOLUME FROM PD ORDER BY DNUM ASC, VOLUME DESC;
В результате получим таблицу, в которой строки идут в порядке возрастания значения поля DNUM, а строки, с одинаковым значением DNUM идут в порядке убывания значения поля VOLUME:
3 | 1 | 1000 |
2 | 1 | 150 |
1 | 1 | 100 |
2 | 2 | 250 |
1 | 2 | 200 |
1 | 3 | 300 |