Содержание
-
Базы данных
-
Основные понятия
База данных - совокупность данных структурированных определенным образом хранимых в памяти вычислительной системы и отображающая состояние объектов и их взаимосвязей в рассматриваемой предметной области. Система управления базами данных (СУБД) - совокупность программных и лингвистических средств общего или специального назначения, обеспечивающих управление созданием и использованием баз данных
-
В состав языковых средств современных СУБД входят
Язык описания данных - предназначенный для описания логической структуры данных. Язык манипулирования данных – обеспечивающий выполнение основных операций над данными – ввод, модификацию выборку Язык структурированных запросов SQL (Structured Query Language) – обеспечивает управление структурой БД и манипулирование данными, а также является стандартным средством доступа к удаленным БД Язык запросов по образцу (QBE – Query by Example) – обеспечивает визуальное конструирование запросов к БД
-
Требования к информации в БД
Непротиворечивость Неизбыточность Целостность
-
Типы СУБД
Локальные – все части СУБД располагаются на одном компьютере пользователя БД (Paradox, dBase, Microsoft Access). Сетевые – существует сервер на котором хранится БД. Пользователь с клиентского компьютера посылает запрос по сети на данные и сервер возвращает запрашиваемые данные (MySQL, MS SQL, Firebird, Oracle).
-
Архитектура СУБД
-
Модель данных (МД)
Это формальная теория представления и обработки данных. Иерархическая МД представляет собой дерево, состоящее из объектов различных уровней. Сетевая МД представляет собой граф вершинами которого являются хранимые объекты предметной области. Реляционная МД представляет собой набор связанных таблиц. Объектная ориентированная МД представляет собой набор взаимосвязанных объектов.
-
Иерархическая МД
-
Сетевая МД
-
Основные понятия
Таблица – состоит из строк и столбцов. На пересечении строки и столбца хранится одно значение. Данные в столбцах имеют только один тип. Первичный ключ – одно поле (простой) или несколько полей (сложный) однозначно идентифицирующих каждую запись в таблице Внешний ключ – поле в таблице, берущее значение из первичного ключа другой таблицы. Индекс – структура обеспечивающая ускорение поиска по полям и сортировки данных
-
Реляционная МД
-
Таблица БД
-
Объектно-ориентированная МД
-
Модель сущность-связь (Entity-relationship model, ER-модель)
ER-модель представляет собой высокоуровневую концептуальную модель данных, которая была разработана Ченом (Chen) в 1976 году с целью упрощения задачи проектирования базы данных. Данная модель представляет собой набор концепций, которые описывают структуру базы данных и связанные с ней транзакции обновления и извлечения данных.
-
Основная цель создания ER-модели
Создание модели пользовательского восприятия данных и согласование большого количества технических аспектов, связанных с проектированием базы данных. Концептуальная модель данных не зависит от конкретной СУБД или аппаратной платформы, которая используется для реализации БД.
-
Концепции ER-модели
ER-модель представляет собой набор концепций состоящий из типы сущностей, типы связей и атрибуты представленных в графическом виде.
-
Типы сущностей (entry type)
Объект или концепция характеризующаяся в данной предметной области как имеющая независимое существование. Это множество объектов реального мира с одинаковыми свойствами. объект характеризующийся независимым существованием и может быть объектом с физическим (реальным) существованием или объектом с концептуальным(абстрактным) существованием
-
Примеры сущностей с физическим и концептуальным существованием
Физическое (работник, объект недвижимости, клиент, деталь, поставщик, изделие) Концептуальное (осмотр объекта недвижимости, инспекция объекта недвижимости, продажа объекта недвижимости, рабочий стаж)
-
Сущность
Экземпляр типа сущности, который может быть идентифицирован уникальным образом. Каждый тип сущности идентифицируется именем и списком свойств. Типы сущности могут быть слабыми (существование которого зависит от какого-то другого типа сущности) и сильными (существование не зависит от какого-то другого типа сущности)
-
Способы представления типов сущностей на диаграмме
Сильные – прямоугольник с именем сущности внутри него Слабые – прямоугольник с именем сущности внутри него но с двойным контуром
-
Атрибуты
Свойство типа сущности или типа связи. Атрибуты сущности содержат значения описывающий каждую сущность. Значения атрибутов представляют основную часть сведений, сохраняемых в базе данных.
-
Домен атрибута
Набор значений, которые могут быть присвоены атрибуту. Домен определяет все потенциальные значения, которые могут быть присвоены атрибуту. Различные атрибуты могут использовать один и тот же домен.
-
Атрибуты
Делятся на просты и составные. Простой атрибут – атрибут, состоящий из одного компонента с независимым существованием. Пример: зарплата, название. Составной атрибут – атрибут, состоящий из нескольких компонентов характеризующихся независимым существованием. Пример: адрес, ФИО.
-
Также делятся на однозначные, многозначные, производные. Однозначные – атрибут который содержит одно значение для одной сущности. Пример: Пол, зарплата, имя. Многозначные – атрибут содержащий несколько значений для одно сущности. Пример: телефон. Производные атрибут: атрибут который представляет значение производное от значения связанного с ним атрибут или некоторого множества атрибутов, принадлежащих некоторому (не обязательно данному) типу сущности.
-
Ключи
Это элемент данных который позволяет уникально идентифицировать отдельные экземпляры некоторого типа сущности. Существуют потенциальные, первичные и составные ключи.
-
Представление атрибутов на диаграммах
На диаграммах атрибуты изображаются в виде эллипсов, присоединенных линией к соответствующей сущности и помеченных именем атрибута. Эллипс окружен пунктирной линией, если атрибут является производным, и двойным контуром, если атрибут является многозначным. Если атрибут является составным, его атрибуты-компоненты изображаются в виде присоединенных к нему элипсов.
-
Первичный ключи обозначается эллипсом c подчеркнутым текстом. На диаграммах все атрибуты должны иметь одинаковый размер и текст должен быть одинакового размера
-
Атрибуты (графическое представление)
-
Типы связей
Тип связи (relationship type) осмысленная ассоциация между сущностями разных типов. Каждому типу связи присваивается имя которое описывает его функцию. Например сущность «Завод» связана с сущностью «Печное изделие» посредством связи «Производит»
-
Связь
Ассоциация между сущностями, включающая по одной сущности из каждого участвующего в связи типа сущности. Связи указывают на отдельные экземпляры сущностей, объединяемые ими.
-
Связи
На диаграммах изображается в виде ромба с указанным на нем именем связи. Ромбик имеет двойной контур, если связь соединяет слабую сущность с сильной сущностью. На диаграммах связей не отображаются все атрибуты а отображаются только первичные ключи
-
Связи
-
Степень связи
Количество сущности которые охвачены данной связью. Бывают унарные (связь одного тип сущности с собой - рекурсивная), бинарные (связь двух типов сущности), тернарная (связь трех типов сущностей), кватернарная (связь четырех типов сущностей).
-
Примеры связей
-
-
Ролевые имена
Ролевые имена определяют назначения каждой сущности в связи и также используются когда две сущности связаны двумя различными связями.
-
Примеры связей
-
Две сущности связаны двумя связями
-
Атрибуты связей
Атрибуты могут также принадлежать связям, например сущность «Товар» может связна с «Склад» с помощью связи «Хранение» и у нее есть атрибут «количество».
-
-
Структурные ограничения
Ограничения накладываемые на сущности участвующие в некоторых связях, являются отражением определенных требований реального мира Показатель кардинальности – описывает количество возможных связей для каждой из сущности. Наиболее распространенными бинарными связями являются с показателями кардинальности «один к одному», «один ко многим» и «многие ко многим».
-
Связь один к одному
-
Связь один ко многим
-
Связь многие ко многим
-
Требование к информации в БД
Быстрый доступ к данным Отсутствия дублирования (повторения) данных Целостность данных
-
Нормализация данных
Это процесс проектирования БД с использованием метода нормальных форм и заключается в последовательном переводе по определенным правилам отношений из первой нормальной формы к нормальным формам более высокого порядка.
-
Нормальные формы (НФ)
1 НФ 2 НФ 3 НФ Усиленная третья нормальная форма (нормальная форма Бойса-Кодда) 4 НФ 5 НФ
-
Требования к 1 НФ
Поля содержат неделимую (атомарную) информацию. В таблице отсутствуют повторяющиеся группы полей
-
Требования к 2 НФ
Таблица должна удовлетворять первой нормальной формы Любое не ключевое поле должно однозначно идентифицироваться ключевыми полями
-
Требования к 3 НФ
Таблица должна удовлетворять требованиям второй нормальной формы Ни одно из не ключевых полей не должно однозначно идентифицироваться значением другого не ключевого поля
-
Методика преобразования ER-модели в реляционную
Преобразованием ER-модели в реляционную идет поэтапно т.е. сначала преобразуются типы сущностей, а потом преобразуются типы связей.
-
Преобразование типов сущностей с различными видами атрибутов
-
Преобразование связей один к одному
-
-
Преобразование унарной связи
-
Преобразование бинарной связи один ко многим
-
Преобразование бинарной связи многие ко многим
-
Преобразование тетрарной связи
-
Преобразование кватернарной связи
-
Физическая модель данных
Физическая модель данных описывает данные средствами конкретной СУБД. Физическая модель строится на основании логической модели данных. СУБД бываю локальные (Microsoft Access, Paradox, dBase) и клиент серверные (Oracle, MS SQL Server, MySQL). Реляционная модель состоит из таблиц.
-
Таблицы MS SQL(правила именования)
могут содержать буквы английского алфавита, цифры и _; не могут содержать пробелы; не могут повторять существующие имена других таблиц в этой же директории; должны быть мнемоническими (т.е. отражать содержание таблицы). Примеры именования таблиц: users, products, seasons, customers, tp_sclad.
-
Поля таблиц MS SQL
могут иметь длину до 25 символов; не должны содержать пробелы; могут содержать буквы английского алфавита, цифры и _; не могут повторять имя другого поля в этой же таблице; должны отражать содержание поля. Примеры названия полей: ID_User, Name, Caption, FK_user
-
Типы данных MS SQL
VARCHAR - алфавитно-цифровые (символьные) поля. Могут содержать буквы; Поле может быть от 1 до 255 символов; TEXT – большой текст до 65399 символов INT– хранят целы числа. Диапазон зависит от свойства размер поля MONEY - денежные поля. В точности похожи на числовые поля, но округляются до 4 символов после запятой; BIT – содержит значения Да или Нет, True или False DATETIME - поля даты. Могут содержать любые допустимые даты между 1 января 100 года и 31 декабря 9999 года. FLOAT – вещественный тип
-
Создание связей между таблицами
Контекстное меню – отношения – добавить.
-
Создание первичного ключа
Контекстное меню – Задать первичный ключ Для обеспечения автоматического назначения значения требуется в свойствах поля указать:
-
Архитектуры доступа к данным
Borland Database Engine (BDE) – движок доступа к БД от корпорации Borland Open Database Connectivity (ODBC) – программный интерфейс доступа к БД ActiveX Data Objects (ADO) - интерфейс программирования приложений для доступа к даннымоснованный на технологии компонентов ActiveX и др.
-
Схема доступа к данным через ADO
ADO - Компоненты Delphi обеспечивающие подключение к БД, функциональность наборов данных, работу с транзакциями и др. OLE DB - — набор интерфейсов, основанных на COM, которые позволяют приложениям обращаться к данным, хранимым в разных источниках информации или хранилищах данных с помощью унифицированного доступа.
-
Компонент TADOConnection
Компонент TADOConnection предназначен для управления соединением с объектами хранилища данных ADO. ConnectionString: WideString; - хранит строку подключения к БД; Connected: boolean; - определяет соединен ли компонент с БД
-
Создание строки подключения
Щелкаем по свойству ConnectionString, появляется окно.
-
Щелкаем по кнопке Build – создать и выбираем поставщика OLE DB (Microsoft OLE DB Provider for SQL Server). Нажимаем далее.
-
Результат: Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=fondbase;Data Source=ICEBERGPC\SQLEXPRESS
-
Наборы данных ADO
-
Наборы данных
Копия одной или нескольких таблиц, хранящаяся в памяти для быстрого доступа. TDataSet – базовый класс для всех наборов данных; TCustomADODataset – базовый класс для наборов данных ADO; TADOTable – позволяет загружать в память и манипулировать данными одной таблицыБД TADOQuery – осуществляет реляционный доступ к одной или нескольким таблицам TADOStoredProc – выполняет хранимые процедуры в клиент-серверных СУБД
-
Архитектура приложения БД
-
Свойства TADOTable
Connection – компонент соединения с базой данных. TableName – название таблицы, которая будет отображаться в наборе данных. Activity – определяет открыт ли набор данных или нет.
-
Источник данных (TDataSource)
Компонент являющийся посредником между набором данных (TDataSet) и компонентами отображающими данные (DataControls). Главное свойство DataSet указывает набор данных с которым связан источник данных.
-
Визуальные компоненты
Позволяют выводить и редактировать в визуальном режиме данные из источника данных. Связываются с набором данных (TDataSet)посредством источника данных (TDataSource) с помощью свойства DataSource. DBGrid – сетка строк, осуществляет вывод целой таблице; DBNavigator – компонент позволяющий осуществлять основные операции с набором данных (переход с записи на запись, добавление, редактирование и удаление записи, подтверждение и отмена изменений)
-
DBText – осуществляет вывод не редактируемого текста из одного поля набора данных. Аналог Label. Свойство Fieldname определяет название поля отображаемого в компоненте. DBEdit – осуществляет вывод редактируемого текста из одного поля набора данных. Аналог Edit. Свойство Fieldname определяет название поля отображаемого в компоненте. DBMemo – выводит многострочный текст из одного поля набора данных. DBImage – выводит изображение из поля базы данных, поля должно иметь тип Graphic.
-
Создание вычисляемых полей
Вычисляемое поля позволяет вычислять значения поля определенной записи на основании других данных. Для создания вычисляемого поля необходимо два раза щелкнуть по набору данных, вызвать контекстное меню и выбрать пункт «New field», в котором необходимо указать следующие параметры: Name – имя поля; Type – тип поля; Size – размер поля, если поле строкового типа; FieldType – тип поля, необходимо указать Calculated.
-
Окно создания вычисляемого поля
-
Создание поля подстановки
Поле подстановки позволяет установить значение внешнего ключа в одной таблице, значением первичного ключа другой таблице, при этом пользователь увидит значения главной таблице. Для создания вычисляемого поля необходимо два раза щелкнуть по набору данных, вызвать контекстное меню и выбрать пункт «New field», в котором необходимо указать следующие параметры:
-
Параметры поля подстановки
Name – имя поля; Type – тип поля; Size – размер поля, если поле строкового типа; FieldType– тип поля, необходимо указать Lookup. Key fields – имя внешнего ключа таблицы; DataSet – набор данных, данные которого будут отображаться в списке выбора; Lookup Keys – имя первичного ключа таблицы; Result Field – имя поля таблицы, данные которого будут отображаться в списке выбора
-
Окно создание подстановочного поля
-
Программный доступ к записям набора данных
Набор данных (TDataSet) позволяет осуществлять навигацию по записям их поиск и редактирование а так же программную обработку действий совершаемых над набором данных с помощью свойств, методов и событий.
-
Навигация по набору данных (НД)
Осуществляется с помощью курсора НД, указывающего на текущую запись в НД. Для навигации используются следующие свойства и методы: EOF: boolean – свойство равное True если курсор находится на последней записи НД; BOF: boolean – свойство равное True если курсор находится напервой записи НД; Next – перемещает курсор на следующую запись; Last – перемещает курсор на последнюю запись; Prior – перемещает курсор на предыдущую запись; First – перемещает курсор на первую запись;
-
Последовательная навигация по записям
// В прямом порядке With tUsers do Begin First; while not EOF do begin // делаем какие либо действия Next; end Еnd // В обратном порядке With tUsers do Begin Last; while not BOF do begin // делаем какие либо действия Prior; end Еnd
-
Доступ к значениям записей
Доступ можно осуществлять по имени и по номеру поля, для доступа к данным необходимо указывать их тип. tUsersName.AsString tUsers.Fields[0].AsInteger tUsers.FieldByName('Name').AsFloat Можно и без указания типа, тогда тип будет автоматически указываться компилятором. tUsers[‘Name’]:=‘Иван’;
-
Редактирование записей
Записи можно вставлять, изменять, удалять, делается это с помощью следующих методов: Insert, Append – добавляет новую запись в НД Update – редактирует текущую запись НД; Post – подтверждает внесение новой записи или изменение существующей; Cansel – отменяет внесение новой записи или изменение существующей; Delete – удаляет текущую запись
-
Примеры редактирование записей
//Вставка tUsers.Append; tUsersName.asstring:=‘Иван’; tUsersSecondName.asstring:=‘Петров’; tUsersSallary.asFloat:=20000; tUsers.Post; //Изменение tUsers.Edit; tUsersName.asstring:=‘Иван’; tUsersSecondName.asstring:=‘Петров’; tUsersSallary.asFloat:=20000; tUsers.Post; //Удаление if MessageDlg('Вы действительно хотите удалить текущую запись',mtWarning,[mbYes,mbNo],0)=mrYes then begin tUsers.Delete; end;
-
Состояния НД
dsInactive - НД закрыт dsBrowse - Данные отображаются но не редактируются dsEdit - Активная запись редактируется dsInsert - В НД вставлена новая запись dsSetKey - Происходит установка ключа для поиска данных с помощью метода SetKey dsCalcFields - Происходит вычисление, вычисляемых полей в НД dsFilter - Происходит фильтрация записей dsOpening – НД открывается
-
Использование закладок
VarSavePlace: TBookmark; begin with TUsers dobegin { Получение закладки } SavePlace := GetBookmark; try // Что то делаем // Переходим к ранее установленной закладки GotoBookmark(SavePlace); finally // Освобождаем закладку FreeBookmark(SavePlace); end; end; end;
-
Поиск записей в наборе данных
Метод Locate ищет первую запись удовлетворяющую условию и если такая запись найдена, делает её текущей. function Locate(const KeyFields: string; const KeyValues: Variant; Options: TLocateOptions): Boolean; KeyFields – поле по которому происходит поиск записи KeyValues – искомое значение Options – настройки поиска (loCaseInsensitive – неучитывает разницу в регистре значений; loPartialKey – поиск по частичному соответствию) CustTable.Locate('Company;Contact;Phone', VarArrayOf(['Sight Diver', 'P', '408-431-1000']), [loPartialKey,loCaseInsensitive ]);
-
Метод Lookup
Метод Lookup ищет запись в НД и в случае если её находит не делает текущей, а возвращает одно или несколько значений записи. function Lookup(const KeyFields: string; const KeyValues: Variant;constResultFields: string): Variant; ResultFields – результирующие поля Пример: VarV: Variant;C: Integer;A: String; begin V := Table1.Lookup('Company;State', VarArrayOf(['Blue Sports', 'OR']), 'CustNo;Addr1'); if not (VarType(V) in [varNull]) then begin C := V[0]; A := V[1]; ShowMessage(IntToStr(C) + ‘ ’ + A); end elseShowMessage('Search unsuccessful!'); end;
-
Фильтрация записей
Отображение записей согласно определенного условия или нескольких условий. За фильтрацию отвечают, следующие свойства: Filter: string; – определяет условия фильтрации; Filtered: boolean; - определяет отфильтрован ли набор данных или нет. Пример фильтрации: Table1.Filter:=‘State = ‘+QuotedStr(‘CA’)+' or State =‘+ QuotedStr('MA‘); Table1.Filter:=‘(Custno > 1400) AND (Custno
-
События TDataSet
События НД позволяют реагировать на различные операции с набором данных: фильтрацию, открытие, закрытие набора данных; вставку, изменение, удаление, изменение текущей записи; вычисление полей и др.
-
Событие OnFilterRecord
Возникает при установки значения True в свойстве Filtered и имеет следующее определение: Procedure OnFilterRecord(DataSet: TDataSet; var Accept: Boolean); DataSet – ссылка на НД где происходит фильтрация данных; Accept – переменная определяющая попадет ли запись в отфильтрованный набор данных или нет.
-
Пример использования OnFilterRecord
procedure TSummaryFilter(Dataset:TDataSet; var Accept: Boolean); begin Accept:=AnsiContainsText(Dataset.fieldbyname(‘Name’).AsString,’Иван’); Accept:=DataSet['AmountOfPurchase'] > StrToInt(Edit1.Text); Accept:=AnsiContainsStr(Dataset.fieldbyname(‘Family’).AsString,’Иванов’); end;
-
События отвечающие за отклик на операции с записями
-
Событие OnCalcFields
Возникает при вычислении полей, которое происходит при открытие НД и отображение ранее не видимых записей в DBGrid. Пример вычисления поля. Procedure Table1OnCalcFields(DataSet: TDataSet); Begin if Table1Sex.AsBoolean then Table1CalcSex.AsString:=‘Мужской’ else Table1CalcSex.AsString:=‘Женский’; end
-
Поиск по индексированным полям
Осуществляется с помощью метода SetKey, GotoKey. Table1.Active := False; // Закрываем НД Table1.IndexName := ’CityIndex’; // Определяем индекс по которому происходит поиск Table1.Active := True; // Открываем НД Table1.SetKey; // Включаем режим установки искомого ключа Table1.FieldByName(’City’).AsString := Edit1.Text; // Устанавливаем искомое значение Table1.GotoKey; // Перемещаемся к искомой записи, если она есть
-
Поиск на ближайшее соответствие
Осуществляется с помощью метод FindNearest Table1.Active := False; // Закрываем НД Table1.IndexName := ’CityIndex’; // Определяем индекс по которому происходит поиск Table1.Active := True; // Открываем НД Table1.FindNearest([Edit1.Text]); //Поиск по ближайшему соответствию
-
Язык SQL
SQL является, прежде всего, информационно-логическим языком, предназначенным для описания хранимых данных, для извлечения хранимых данных и для модификации данных. SQL не является языком программирования. Изначально, SQL был основным способом работы пользователя с базой данных и представлял собой небольшую совокупность команд (операторов) допускающих создание таблиц, добавление в таблицы новых записей, извлечение записей из таблиц (в соответствии с заданным условием), удаление записей и изменение структур таблиц. В связи с усложнением язык SQL стал более языком прикладного программирования, а пользователи получили возможность использовать визуальные построители запросов.
-
Операторы языка SQL
Язык SQL представляет собой совокупность операторов.Операторы SQL делятся на: операторы манипуляции данными (Data Manipulation Language, DML) операторы определения данных (Data Definition Language, DDL) операторы определения доступа к данным (Data Control Language, DCL) операторы управления транзакциями (Transaction Control Language, TCL)
-
История развития SQL
-
-
Преимущества SQL
Независимость от конкретной СУБД - Несмотря на наличие диалектов и различий в синтаксисе, в большинстве своём тексты SQL-запросов, содержащие DDL и DML, могут быть достаточно легко перенесены из одной СУБД в другую. Наличие стандартов - Наличие стандартов и набора тестов для выявления совместимости и соответствия конкретной реализации SQL общепринятому стандарту только способствует «стабилизации» языка. Декларативность - С помощью SQL программист описывает только то, какие данные нужно извлечь или модифицировать. То, каким образом это сделать, решает СУБД непосредственно при обработке SQL-запроса.
-
Недостатки SQL
Несоответствие реляционной модели данных Высокая избыточность Сложность Отступления от стандартов Сложность работы с иерархическими структурами
-
Оператор Insert
Insert into (,…) Values(,…) Пример Insert into students (name,family,birthday,fk_group) Value (‘Иван’,’Иванов’,23.02.2000,1)
-
Оператор Update
Update set =, =… Where Пример Update students set name=‘Иван’,family=‘Иванов’where id=5
-
Оператор Delete
Delete from where Delete from students where Name=‘Иван’ = > =
-
Таблица БД Students Groups
-
Оператор Select
Select ,… from ,… Where Order by Group by Having Union
-
Простой запрос Select id_students, firstname, secondname, sallary from students
-
Запрос из нескольких таблиц Select * from groups, students where students.fk_groups=groups.id_groups Select * from students s Inner join groups g on s.fk_groups=g.id_groups
-
Оператор Select
Сортировка записей Select id_student, firstname, secondname, sallary from studentsorder by secondname,firstname
-
Сортировка в обратном порядке Select id_student, firstname, secondname, sallary from studentsorder by sallary desc
-
Оператор Select
Отбор по диапазону Select id_student, firstname, secondname, sallary from students where sallary between 1500 and 3000
-
Выбор записейзначения полей которых начинается с определенной букв Select id_student, firstname, secondname, sallary from students where secondname like “Ив%”
-
Выбор записей значения полей которых содержит определенную букву Select * from students wherefirstname like “%кс%”
-
Выбор записей с определенными значениями полей Select * from students where id_students in (1,3,4)
-
Псевдонимы таблиц Select g.caption, s.firstname, s.secondname, s.sallary from students s,groupsg where s.fk_groups=g.id_groups
-
Агрегатные функции: Avg – среднее значение аргумента Count – количество вхождений аргумента Max – максимальное значение аргумента Min – минимальное значение аргумента Sum – суммарное значение аргумента
-
Select avg(sallary) from students Select count(*) as countg from groups
-
Группировка записей Select g.caption, sum(sallary) from students s, groups g where s.fk_groups=g.id_groups group by g.caption
-
Выбор записей с неповторяющимися значениями полей Select distinct s.firstname from students s
-
Использование дополнительного условия отбора Select g.caption, sum(sallary) from strudents s, groups g where s.fk_groups=g.id_groups group by g. caption having sum(sallary) > 3000
-
Оператор Select
Выбор записей с неустановленными значениями полей Select * from students s where fk_groups is null
-
Выбор записей с установленными значениями полей Select * from students s where fk_groups not null
-
Объединение запросов select id_groups, caption,0 as typerec from groups union select id_students, secondname,1 as typerec from students Типы полей должны совпадать
-
выбор записей с использованием подзапросов Select * from students where sallary>(select avg(sallary) from students)
-
СвойстваTADOQuery
Connection – компонент соединения с базой данных. SQL – содержит SQL запрос выбирающий данные в набор данных Activity – определяет открыт ли набор данных или нет.
-
Методы TADOQuery
Open – открывает набор данных, выполняя при этом запрос возвращающий значение (Select); ExecSQL – Выполняет SQL-запрос не возвращающий набор данных (Insert, Update, Delete)
-
Статический запрос
with Query1 do begin Close; // Закрываем набор данных SQL.Clear; // Очищаем текст SQL-запроса SQL.Add(‘select * from groups');//Устанавливаем SQL запрос Open;//Выполняем SQL запроси при этом запрос возвращает набор данных end;
-
Динамический запрос
with Query1 do begin Close; // Закрываем набор данных SQL.Clear; // Очищаем текст SQL-запроса SQL.Add(‘select * from groupswhere caption=‘+QuotedStr(Edit1.text));//Устанавливаем SQL запрос Open;//Выполняем SQL запроси при этом запрос возвращает набор данных end;
-
Параметрический запрос
with Query1 do begin Close; // Закрываем набор данных SQL.Clear; // Очищаем текст SQL-запроса SQL.Add('insertintogroups (name,fk_faculty) values (:name,:fk_faculty)');//Устанавливаем SQL запрос ParamByName('name').AsString:='07-15‘; // Устанавливаем значение параметра по имени Params[1].AsInteger:=1; // Устанавливаем значение параметра по номеру ExecSQL;//Выполняем SQL запрос end;
-
DBGrid
Компонент отображающий сетку строк. Свойства: DataSource – источник данных откуда будут отображаться данные Columns – коллекция содержащаястолбцы набора данных. У каждого столбца есть следующие свойства FieldName – название поля откуда будут браться данные для отображения Caption – отображаемый заголовок столбца For i:=0 to DBGrid.Columns.count-1 do Begin ListBox.Items.Add(DBGrid.Columns[i].title.caption); End Fieldname:=DBGrid.Columns[ListBox1.itemindex].Fieldname;
Нет комментариев для данной презентации
Помогите другим пользователям — будьте первым, кто поделится своим мнением об этой презентации.