
- •1 Операции Реляционной Алгебры.
- •2 Structured Query Language
- •3 Правила записи оператора select.
- •4 Предложение Select
- •5,6 Предложение where
- •7 Составные условия поиска. Таблицы истинности.
- •8 Order by
- •9 Union
- •10 Многотабличные запросы на чтение.
- •11 Псевдонимы таблиц, самосоединение таблиц.
- •12 Агрегатные функции языка sql.
- •13. Запросы с группировкой и ограничения на них.
- •Примеры.
- •Ограничение на запросы с группировкой.
- •Ограничение на список возвращаемых столбцов.
- •16. Внешние ссылки и связанные подзапросы. Пример.
- •Процедура выполнения запроса, в составе которого имеется связанный подзапрос.
- •18. Внесение изменений в бд: добавление, удаление и обновление данных. Добавление новых элементов.
- •2) Многострочный оператор
- •Удаление существующих данных
- •Обновление существующих данных
- •19. Задание и изменение структуры бд: операторы create table, drop table, alter table.
- •2. Удаление таблицы. Ненужные таблицы можно удалить из бд посредством оператора drop table.
- •3. Изменение определения таблицы.
- •20. Создание и удаление индексов операторами create/drop index.
- •21. Создание представлений оператором create view.
7 Составные условия поиска. Таблицы истинности.
AND |
true |
false |
null |
OR |
true |
false |
null |
True |
true |
false |
null |
true |
true |
true |
|
False |
false |
false |
false |
true |
false |
null |
|
Null |
null |
false |
null |
true |
null |
null |
NOT |
True |
False |
Null |
|
False |
True |
Null |
8 Order by
ASC — сортировка по возрастанию (по-умолчанию), DESC — по убыванию. Первый столбец — главный ключ в сортировке, а следующие за ним являются всё более второстепенными ключами сортировки.
9 Union
Для объединения результатов нескольких запросов. Используется для таблиц, удовлетворяющих условиям:
1. Кол-во столбцов в объединяемых ТРЗ должно быть одинаковым.
2. Типы данных соответствующих столбцов из 1-й и 2-й таблиц должны совпадать.
3. Ни одна из объединяемых таблиц не должна быть отсортирована с помощью ORDER BY.
Выполняется так, что объединенной таблице повторяющихся строк не будет. Другая форма оператора — UNION ALL — позволяет получить таблицу со всеми строками, включая повторяющиеся.
С помощью оператора UNION можно объединить несколько таблиц.
10 Многотабличные запросы на чтение.
Например: вывести список жителей, имеющих телефоны, с указанием ФИО и номера телефона.
Операция ПРОЕКЦИИ. PERSON [ADR = ADR] TPHONE.
SELECT FIO, NTEL FROM PERSON, TPHONE
WHERE PERSON.ADR = TPHONE.ADR.
11 Псевдонимы таблиц, самосоединение таблиц.
Формат: ИМЯ_ТАБЛИЦЫ ПСЕВДОНИМ. Например:
SELECT NOM, FIO, SOURSE, MONEY
FROM PERSON A, PROFIT B, HAVE_D C
WHERE A.NOM = C.NOM AND C.ID = B.ID AND NOM = 13.
Можно соединить таблицу саму с собой. Например, для поиска однофамильцев:
SELECT A.ADR, B.ADR
FROM PERSON A, PERSON B
WHERE A.FIO = B.FIO AND A.ADR = B.ADR.
12 Агрегатные функции языка sql.
Итоговые запросы можно составить из различных операторов и агрегатных функций языка. Все функции принимают в качестве аргумента какой-либо столбец данных целиком, а возвращает одно, подытоженное значение.
SUM() — сумма в столбце.
SUM(DISTINCT <имя столбца>) — сумма неповторяющихся значений в столбце.
SELECT SUM(SUMD) FROM PERSON
AVG() — среднее значение в столбце.
AVG(DISTINCT <имя столбца>) — среднее значение для неповторяющихся значений в столбце.
MIN(), MAX() — минимум и максимум.
COUNT() — количество значений в столбце.
COUNT(DISTINCT <имя столбца>) — количество неповторяющихся значений в столбце.
COUNT(*) — количество строк в ТРЗ.
ПРИМЕРЫ:
1. SELECT ‘СРЕДНЕДУШИВОЙ ДОХОД =’, AVG (SUMD) FROM PERSON.
2. SELECT AVG(SUMD*0.13) FROM PERSON
3. SELECT SUM(SUMD) FROM PERSON
4. SELECT SUM(DISTINCT SUMD) FROM PERSON
5. SELECT ‘ПОЛУЧЕННО СТЕПЕНДИЙ НА СУММУ’, SUM(MONEYS) FROM HAVE_D, PROFIT WHERE PROFIT.ID = HAVE_D.ID AND SOURSE = ‘СТИПЕНДИЯ’
6. SELECT MIN(R_DATE), MAX (R_DATE) FROM PERSON
7. SELECT MIN(FIO), MAX (FIO) FROM PERSON
8. SELECT COUNT(ADR) FROM PERSON WHERE ADR = ’Зеленоград, 1__-%’
Правила:
1. Если какие-либо значения в столбце имеют значение NULL, то они исключаются из столбцов.
2. Если все значения в столбце имеют значение NULL, то все функции, кроме COUNT вернут NULL. COUNT вернет 0.
3. COUNT(*) подсчитывает количество строк в ТРЗ, и возвращаемое значение не зависит от наличия NULL. Если строк нет, то вернется 0.