Читайте также: |
|
SELECT [ ALL | DISTINCT ]
{ * | list_comma_column [AS new_name_column ]}
FROM { table_name [ alias ] [,…]
[ WHERE condition ]
[ GROUPBY column_list ]
[ HAVING condition ]
[ ORDER BY column_list ]}
Пример 1. Выборка всех столбцов и всех строк.
SELECT staffNo, fName, lName, position, sex, DOB, salary, branchNo
FROM Персонал;
Таблица 1. Результат выполнения запроса из примера 1
staffNo | fName | lName | position | sex | DOB | salary | branchNo |
SKh1 | Иван | Перов | руководитель | м | 10.03.1980 | B001 | |
SK2 | Сергей | Чижов | пом. руководителя | м | 05.07.1977 | B005 | |
SS1 | Петр | Сидоренко | руководитель | м | 17.10.1965 | B003 | |
SKh2 | Анна | Петренко | консультант | ж | 11.05.1982 | B001 | |
SKh3 | Ольга | Петренко | консультант | ж | 11.05.1982 | B001 | |
SK1 | Вера | Овчаренко | руководитель | ж | 19.03.1979 | B005 | |
SK3 | Семен | Соколов | руководитель | м | 12.08.1981 | B007 | |
SS2 | Сергей | Ветров | пом. руководителя | м | 10.10.1978 | B003 |
Пример 2. Выборка конкретных столбцов и всех строк.
SELECT staffNo, fName, lName, salary
FROM Персонал;
Таблица 2. Результат выполнения запроса из примера 2
staffNo | fName | lName | salary |
SKh1 | Иван | Перов | |
SK2 | Сергей | Чижов | |
SS1 | Петр | Сидоренко | |
SKh2 | Анна | Петренко | |
SKh3 | Ольга | Петренко | |
SK1 | Вера | Овчаренко | |
SK3 | Семен | Соколов | |
SS2 | Сергей | Ветров |
Пример 3. Использование ключевого слова DISTINCT.
SELECT propertyNo
FROM Осмотр;
Таблица 3. Результат выполнения запроса с сохранением повторяющихся значений
propertyNo |
PG80 |
PG16 |
PG16 |
CA09 |
PG80 |
SELECT DISTINCT propertyNo
FROM Осмотр;
Таблица 4. Результат выполнения запроса с исключением повторяющихся значений
propertyNo |
PG80 |
PG16 |
CA09 |
Пример 4. Вычисляемые поля
SELECT staffNo, fName, lName, salary*12 AS salary_year
FROM Персонал;
Таблица 5. Результат выполнения запроса
staffNo | fName | lName | salary_year |
SKh1 | Иван | Перов | 34 800 |
SK2 | Сергей | Чижов | 26 400 |
SS1 | Петр | Сидоренко | 33 600 |
SKh2 | Анна | Петренко | 21 000 |
SKh3 | Ольга | Петренко | 21 000 |
SK1 | Вера | Овчаренко | 36 000 |
SK3 | Семен | Соколов | 36 000 |
SS2 | Сергей | Ветров | 24 000 |
Пример 5. Условие поиска путем сравнения.
SELECT staffNo, fName, lName, position, salary
FROM Персонал
WHERE salary > 2000;
Таблица 6. Результат выполнения запроса
staffNo | fName | lName | position | salary |
SKh1 | Иван | Перов | руководитель | |
SK2 | Сергей | Чижов | пом.руководителя | |
SS1 | Петр | Сидоренко | руководитель | |
SK1 | Вера | Овчаренко | руководитель | |
SK3 | Семен | Соколов | руководитель |
Пример 6. Сложные условия поиска.
SELECT *
FROM Отделение
WHERE city = 'Киев' OR city = 'Харьков';
Таблица 8. Результат выполнения запроса
branchNo | street | city | postcode |
B001 | пр.Гагарина, 35 | Харьков | |
B005 | ул.Мира, 8 | Киев | |
B007 | пл.Контрактовая, 7 | Киев |
Пример 7. Использование диапазонов (BETWEEN/NOT BETWEEN) в условиях поиска.
SELECT staffNo, fName, lName, position, salary
FROM Персонал
WHERE salary BETWEEN 2000AND3000;
Таблица 9. Результат выполнения запроса
staffNo | fName | lName | position | salary |
SKh1 | Иван | Перов | руководитель | |
SK2 | Сергей | Чижов | пом.руководителя | |
SS1 | Петр | Сидоренко | руководитель | |
SK1 | Вера | Овчаренко | руководитель | |
SK3 | Семен | Соколов | руководитель | |
SS2 | Сергей | Ветров | пом. руководителя |
Пример 8. Условия поиска с проверкой принадлежности к множеству (IN/NOT IN).
SELECT staffNo, fName, lName, posicion
FROM Персонал
WHERE position IN(' руководитель ', ' пом.руководителя ');
Таблица 10. Результат выполнения запроса
staffNo | fName | lName | position |
SKh1 | Иван | Перов | руководитель |
SK2 | Сергей | Чижов | пом.руководителя |
SS1 | Петр | Сидоренко | руководитель |
SK1 | Вера | Овчаренко | руководитель |
SK3 | Семен | Соколов | руководитель |
SS2 | Сергей | Ветров | пом. руководителя |
Пример 9. Условия поиска с указанием шаблонов (LIKE/NOT LIKE).
SELECT ownerNo, oName, address
FROM Владелец_Собственности
WHERE paddress LIKE '%Харьков%';
Таблица 11. Результат выполнения запроса
ownerNo | oName | pAddress |
С040 | Вера Долгова | Харьков, пр.Правды, 3, кв.17 |
С093 | Иван Семенов | Харьков, ул.Зерновая, 4, кв.7 |
Пример 10. Использование значения NULL в условиях поиска (IS NULL/IS NOT NULL).
SELECT clientNo, viewDate
FROM Осмотр
WHERE propertyNo = 'PG4' AND comment IS NULL;
Таблица 12. Результат выполнения запроса
clientNo | date |
CR76 | 12-mar-2009 |
Пример 11. Сортировка по значениям одного столбца.
SELECT staffNo, fName, lName, salary
FROM Персонал
ORDER BY salary DESC;
Таблица 13. Результат выполнения запроса из примера 2
staffNo | fName | lName | salary |
SK3 | Семен | Соколов | |
SK1 | Вера | Овчаренко | |
SKh1 | Иван | Перов | |
SS1 | Петр | Сидоренко | |
SK2 | Сергей | Чижов | |
SS2 | Сергей | Ветров | |
SKh3 | Ольга | Петренко | |
SKh2 | Анна | Петренко |
Пример 12. Сортировка по нескольким столбцам.
SELECT propertyNo, type, rooms, rent
FROM Объекты_Недвижимости
ORDER BY type;
Таблица 14. Результат выполнения запроса с сортировкой по одному столбцу
propertyNo | type | rooms | rent |
КA34 | дом | ||
CA15 | дом | ||
CA19 | дом | ||
PG4 | квартира | ||
PG16 | квартира | ||
PG36 | квартира | ||
CA09 | квартира | ||
PG80 | квартира |
SELECT propertyNo, type, rooms, rent
FROM Объекты_Недвижимости
ORDER BY type, rent DESC;
Таблица 15. Результат выполнения запроса с сортировкой по двум столбцам
propertyNo | type | rooms | rent |
CA19 | дом | ||
КA34 | дом | ||
CA15 | дом | ||
PG16 | квартира | ||
CA09 | квартира | ||
PG4 | квартира | ||
PG36 | квартира | ||
PG80 | квартира |
Пример 13. Использование функции COUNT(*).
SELECT COUNT(*)AS count
FROM Объекты_Недвижимости
WHERE rent > 350;
Таблица 16. Результат выполнения запроса
count |
Пример 14. Использование функции COUNT(DISTINCT).
SELECT COUNT (DISTINCT propertyNo)AS count
FROM Осмотр
WHERE date BETWEEN'l-Apr-08'AND'30-Apr-08';
Таблица 17. Результат выполнения запроса
count |
Пример 15. Использование функций COUNT и SUM.
SELECT COUNT(staffNo ) AS count,SUM(salary)AS sum
FROM Персонал
WHERE position = ' руководитель ';
Таблица 18. Результат выполнения запроса
count | sum |
11 700 |
Пример 16. Использование функций MIN, MAX и AVG.
SELECT MIN(salary)AS min, MAX(salary) AS max, AVG(salary)AS avg
FROM Персонал;
Таблица 19. Результат выполнения запроса
min | max | avg |
Пример 17. Использование конструкции GROUP BY.
SELECT branchNo,COUNT(staffNo)AS count,SUM(salary) AS sum
FROM Персонал
GROUP BY branchNo
ORDER BY branchNo;
Таблица 20. Результат выполнения запроса
branchNo | count | sum |
B001 | ||
B003 | ||
B005 | ||
B007 |
Рис. 1. Группы записей, создаваемые при выполнении запроса
SELECT branchNo,
(SELECT COUNT(staffNo) ASc ount
FROM Персонал s
WHERE s.branchNo = b.branchNo),
(SELECT SUM(salary) AS sum
FROM Персонал s
WHERE s.branchNo = b.branchNo)
FROM Отделение b
ORDER BY branchNo;
Пример 18. Использование конструкции HAVING.
SELECT branchNo, COUNT(staffNo) AS count, SUM(salary) AS sum
FROM Персонал
GROUP BY branchNo
HAVING COUNT(staffNo) > 1
ORDER BY branchNo;
Таблица 21. Результат выполнения запроса
branchNo | count | sum |
B001 | ||
B003 | ||
B005 |
Пример 19. Использование подзапроса с проверкой на равенство.
SELECT staffNo, fName, lName, position
FROM Персонал
WHERE branchNo =
(SELECT branchNo
FROM Отделение
WHERE street = ' Харьков, пр.Гагарина, 35 ');
Таблица 22. Результат выполнения запроса
staffNo | fName | lName | position |
SKh1 | Иван | Перов | руководитель |
SKh2 | Анна | Петренко | консультант |
SKh3 | Ольга | Петренко | консультант |
Пример 20. Использование подзапросов с агрегирующими функциями.
SELECT staffNo, fName, lName, position,
salary - (SELECT AVG(salary) FROM Персонал) AS salDiff
FROM Персонал
WHERE salary > (SELECT AVG(salary) FROM Персонал);
Таблица 23. Результат выполнения запроса
staffNo | fName | lName | position | salDiff |
SKh1 | Иван | Перов | руководитель |
Пример 21. Вложенные подзапросы и использование предиката IN.
SELECT propertyNo, street, city, postcode, type, rooms, rent
FROM Объекты_Недвижимости
WHERE staffNo IN (SELECT staffNo
FROM Персонал
WHERE branchNo = (SELECT branchNo
FROM Отделение
WHERE city= ' Харьков ' AND
street =' пр.Гагарина, 35 '));
Таблица 24. Результат выполнения запроса
propertyNo | street | city | postcode | type | rooms | rent |
PG4 | пр.Ленина, 9, кв.11 | Харьков | квартира | |||
PG16 | ул.Есенина, 3, кв.7 | Харьков | квартира | |||
PG36 | ул.23 Августа, 3, кв.27 | Харьков | квартира |
Дата добавления: 2015-07-20; просмотров: 36 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
ПОДАЧА ШТАНГОВОГО СКВАЖИННОГО НАСОСА И КОЭФФИЦИЕНТ ПОДАЧИ | | | Многотабличные запросы |