- •8. Типы структур ис. Их характеристики, достоиства, недостатки.
- •2 Файл серверная архитектура.
- •3. Клиент серверная архитектура.
- •4. Многозвенная архитектура.
- •9. Определение реляционной модели данных, характеристика ее основных элементов.
- •10. Основные подходы к проектированию структур данных и проблемы определения структур данных.
- •12. Основная задача проектирования бд. Метод декомпозиции- классический метод нормализации отношений.
- •14. Формирование отношений для связи 1:м при кп обязательном для м связной сущности.
- •15. Формирование отношений для связи 1:м при кп необязательном для м-связной сущности.
- •16. Формирование отношений для связи м:м.
- •17. Этапы проектирования и назначение диаграммы er-экземпляров и er-типа.
- •18. Фильтрация записей. Фильтрация по выражению.
- •19. Фильтрация записей. Фильтрация по диапазону.
- •20. Создание приложения бд в Delphi (компоненты, обеспечивающие доступ к данным, структура и работа приложения).
- •21. Схема взаимодействия компонентов при проектировании бд в Delphi.
- •Связь этих компонентов друг с другом и с базой данных можно представить схемой приведенной ниже:
- •22. Основные этапы создания приложения бд в Delphi.
- •23. Назначение компонента tDataSource в создании бд. Основные свойства и методы компонента.
- •24. Назначение компонента тТablе в создании бд. Основные свойства и методы компонента.
- •25. Приёмы работы с набором данных(нд). Состояния набора данных. Метод State.
- •26. Основные методы модифицируемого набора данных(нд). Редактирование набора данных и проблемы редактирования.
- •27. Основные методы модифицируемого набора данных. Добавление и удаление записей и проблемы удаления.
- •28. Назначение компонента tdbGrid в создании бд. Основные свойства и методы компонента.
- •29. Навигация по набору данных. Назначение компонента tdbNavigator в создании бд. Основные свойства и методы компонента.
- •30. Методы поиска записей в наборе данных. Метод Locate.
- •31. Методы поиска записей в наборе данных. Метод Lookup.
- •32. Методы поиска записей в наборе данных. Методы FindKey и FindNearest(инкрементный поиск записей).
- •33. Отображение и редактирование данных. Классификация компонентов отображения данных.
- •34. Назначение компонента tQuery- Основные свойства и методы.
- •35. Теоретические языки запросов. Sql - структурированный язык запросов. Основные методы его использования.
- •36.Основные операторы языка sql. Оператор select: назначение, формат оператора.
- •37. Предложение where в операторе select. Формирование запроса по условию поиска и внутреннее соединение таблицы.
- •38. Использование оператора select для сортировки нд и устранения повторяющихся значений.
- •39. Использование оператора select для расчета вычисляемых столбцов и группировки записей.
- •40. Использование оператора select для задания сложных условий поиска (операторы and, or, not, between).
- •41. Использование оператора select для внешнего соединения. Формат запроса.
- •42. Операторы insert, delete, update. Форматы операторов и назначение.
- •43. Ссылочная целостность таблиц бд и механизмы ее осуществления. Понятие транзакции.
- •44. Типы полей данных, поддерживаемые в Delphi и их характеристики. Объявление полей и типов полей при создании приложения.
- •46. Использование bde Administrator при создании бд.
- •47. Роль индексов в субд. Определение индексов. Связывание таблиц бд.
- •48. Работа с визуальным компонентом tdbGrid и настройка полей таблиц.
- •49. Навигация по набору данных. Использование визуального компонента tdbNavigator.
- •50. Создание поля просмотра и вычисляемого поля. Основные проблемы и пути их решения.
- •51. Разработка отчетов с помощью средства Quick Report.
- •52. Разработка отчетов с помощью средства Rave Reports.
39. Использование оператора select для расчета вычисляемых столбцов и группировки записей.
Для расчета значений вычисляемых столбцов используют арифметические выражения. При этом в списке возвращенных столбцов после SELECT вместо имени вычисляемого столбца указывают выражение, которому можно присвоить имя через конструкцию AS <имя нового столбца>.
Группировка записей. Для получения вычисленных или агрегированных значений по группам записей, характеризующихся одинаковыми значениями какого-либо столбца используется конструкция GROUP BY, которая автоматически исключает повтор в полях данных, заданных для группирования, т.к. записи с совпадающими значениями объединяются в 1 группу. При этом необходимо следить, чтобы 1 из столбцов результирующего НД был представлен агрегатной функцией.
SELECT R.Tovar, SUM(R.Kolvo) as Otpusk
FROM Rashod R
GROUP BY R.Tovar
SELECT R.Tovar, SUM(R.Kolvo*Cena) as SUM
FROM Rashod R, Tovary T
WHERE T.Tovar=R.Tovar
GROUP BY R.Tovar
Запрос вычисления стоимости по каждому отпущенному товару на каждую дату.
SELECT R.Tovar, SUM(R.Kolvo*Cena), R.Data_Rash
FROM Rashod R, Tovar T WHERE T.Tovar=R.Tovar
GROUP BY R.Tovar, R.Data_Rash
Еще пример:
SELECT Data_Rash, COUNT(DISTINCT Pokup)
FROM Rashod
GROUP BY R.Data_Rash
Операнд HAVING используется совместно с операндом GROUP BY для отбора записей внутри групп. Правила записи условия группирования аналогичны правилам формирования условию отбора операнда WHERE.
(Она про HAVING не давала вроде).
40. Использование оператора select для задания сложных условий поиска (операторы and, or, not, between).
Усложнить оператор SELECT можно, используя логические выражения, скобки, а так же диапазоны значений. В SQL приоритет сравнения выше, чем приоритет логической операции, а скобки обычно меняют порядок следования.
Использовать логические выражения можно с помощью операторов AND, OR, NOT.
Пример. Включить в запрашиваемый набор данных все записи таблицы RASHOD и для каждого товара указать его цену из таблицы TOVARY, а для каждого покупателя город из таблицы POKUPATELI.
SELECT R.*, T.Cena, P.Adres
FROM Rashod R, Tovary T, Pokupateli P
WHERE (R.Tovar=T.Tovar) AND (R.Pokup=P.Pokup)
Пример. Получим записи из таблицы RASHOD, для которых указано имя покупателя и цена соответствующая товару, количество товаров зададим условием:
SELECT R.*, T.Cena
FROM Rashod R, Tovary T
WHERE (R.Tovar=T.Tovar) AND
(R.Kolvo<=100 OR R.Kolvo>=1000) AND
R.Pokup IS NOT NULL
ORDER BY R.Kolvo
Задав диапазон с помощью служебного слова BETWEEN можно сформировать запрос:
SELECT *
FROM Rashod
WHERE Kolvo BETWEEN 100 AND 1000
41. Использование оператора select для внешнего соединения. Формат запроса.
Внешнее соединение определяется в предложении FROM с помощью следующей конструкции:
SELECT (*/(знач.1),(знач.2)…/)
FROM <табл.1><вид соединения> JOIN <табл.2>
ON <условие поиска>
В таком соединении в результирующий набор данных включаются записи ведущей (главной) таблицы соединения и ведомой (подчиненной) таблицы. Критерий отбора после слова ON задает условие включения записей в набор данных; соединяемые (связываемые) таблицы указываются слева и справа от слова JOIN. Какая из двух таблиц будет главной (ведущей), определяет вид соединения:
LEFT — ведущая таблица слева от JOIN
RIGHT — справа (по умолчанию)
FULL – полное соединение двух таблиц.
Построим внешнее соединение таблицы RASHOD с таблицей POKUPATELI, т.е. найдем покупателя, соответствующего каждой покупке:
SELECT R.DAT_RASH, R.TOVAR, R.KOLVO, P.POKUP, P.GOROD
FROM RASHOD R LEFT JOIN POKUPATELI P
ON R.POKUP=P.POKUP