- •Федеральное агентство по образованию Российской Федерации
- •Свойства компонентов на форме DataModule1:
- •Свойства основных компонентов на форме Form1 (lr_3 - Таблица "операции"):
- •Свойства основных компонентов на форме Form2 (Запросы к бд:):
- •Обработчики событий для формы - Form1 (lr_3 - Таблица "операции"):
- •Обработчики событий для формы - Form2 (Запросы к бд:):
Обработчики событий для формы - Form2 (Запросы к бд:):
//----------Очистить таблицу----------
procedure TForm2.Button5Click(Sender: TObject);
begin
DataModule1.SelectQuery.Active:=False;
end;
//----------Вывести все строки таблицы "ОПЕРАЦИИ"----------
procedure TForm2.Button1Click(Sender: TObject);
begin
DataModule1.SelectQuery.SQL.Clear;
DataModule1.SelectQuery.SQL.Add('SELECT * FROM OPERACII');
DataModule1.SelectQuery.Active:=True;
end;
//----------Вывести порядок столбцов, отличный от исходного----------
procedure TForm2.Button2Click(Sender: TObject);
begin
DataModule1.SelectQuery.SQL.Clear;
DataModule1.SelectQuery.SQL.Add('select KOLICHESTVO_OPERACIY,RECOMENDACII,NAZVANIE,NOMER_PATENTA,NOMER_PACIENTA,DATA,NOMER from OPERACII');
DataModule1.SelectQuery.Active:=True;
end;
//----------DISTINCT: Выбор проведенных операций с исключением дубликатов----------
procedure TForm2.Button4Click(Sender: TObject);
begin
DataModule1.SelectQuery.SQL.Clear;
DataModule1.SelectQuery.SQL.Add('SELECT DISTINCT NAZVANIE FROM OPERACII');
DataModule1.SelectQuery.Active:=True;
end;
//----------Ограничить вывод запроса, используя WHERE с простым условием----------
procedure TForm2.Button3Click(Sender: TObject);
begin
DataModule1.SelectQuery.SQL.Clear;
DataModule1.SelectQuery.SQL.Add('SELECT * FROM OPERACII WHERE (NAZVANIE = "аппендецит")');
DataModule1.SelectQuery.Active:=True;
end;
//----------Ограничить вывод запроса, используя WHERE с составным условием----------
procedure TForm2.Button6Click(Sender: TObject);
begin
DataModule1.SelectQuery.SQL.Clear;
DataModule1.SelectQuery.SQL.Add('SELECT * FROM OPERACII WHERE (NAZVANIE = "аппендецит") and (DATA = "5.04.08")');
DataModule1.SelectQuery.Active:=True;
end;
//----------Ограничить вывод запроса, используя функцию IN----------
procedure TForm2.Button7Click(Sender: TObject);
begin
DataModule1.SelectQuery.SQL.Clear;
DataModule1.SelectQuery.SQL.Add('SELECT * FROM OPERACII WHERE NOMER_PATENTA IN ("1","3")');
DataModule1.SelectQuery.Active:=True;
end;
//----------Ограничить вывод запроса, используя функцию BETWEEN----------
procedure TForm2.Button15Click(Sender: TObject);
begin
DataModule1.SelectQuery.SQL.Clear;
DataModule1.SelectQuery.SQL.Add('SELECT * FROM OPERACII WHERE NOMER_PACIENTA BETWEEN "100" AND "102"');
DataModule1.SelectQuery.Active:=True; end;
//----------Ограничить вывод запроса, используя функцию LIKE----------
procedure TForm2.Button17Click(Sender: TObject);
begin
DataModule1.SelectQuery.SQL.Clear;
DataModule1.SelectQuery.SQL.Add('SELECT * FROM OPERACII WHERE NOMER_PACIENTA LIKE "%01"');
DataModule1.SelectQuery.Active:=True;
end;
//----------Ограничить вывод запроса, используя функцию IS NULL----------
procedure TForm2.Button16Click(Sender: TObject);
begin
DataModule1.SelectQuery.SQL.Clear;
DataModule1.SelectQuery.SQL.Add('SELECT * FROM OPERACII WHERE RECOMENDACII IS NULL');
DataModule1.SelectQuery.Active:=True;
end;
//----------Ограничить вывод запроса, используя функцию NOT IN----------
procedure TForm2.Button8Click(Sender: TObject);
begin
DataModule1.SelectQuery.SQL.Clear;
DataModule1.SelectQuery.SQL.Add('SELECT * FROM OPERACII WHERE NOMER_PATENTA NOT IN ("1","3")');
DataModule1.SelectQuery.Active:=True;
end;
//----------Ограничить вывод запроса, используя функцию NOT BETWEEN----------
procedure TForm2.Button18Click(Sender: TObject);
begin
DataModule1.SelectQuery.SQL.Clear;
DataModule1.SelectQuery.SQL.Add('SELECT * FROM OPERACII WHERE NOMER_PACIENTA NOT BETWEEN "100" AND "102"');
DataModule1.SelectQuery.Active:=True;
end;
//----------Ограничить вывод запроса, используя функцию NOT LIKE----------
procedure TForm2.Button19Click(Sender: TObject);
begin
DataModule1.SelectQuery.SQL.Clear;
DataModule1.SelectQuery.SQL.Add('SELECT * FROM OPERACII WHERE NOMER_PACIENTA NOT LIKE "%01"');
DataModule1.SelectQuery.Active:=True;
end;
//----------Ограничить вывод запроса, используя функцию IS NULL----------
procedure TForm2.Button20Click(Sender: TObject);
begin
DataModule1.SelectQuery.SQL.Clear;
DataModule1.SelectQuery.SQL.Add('SELECT * FROM OPERACII WHERE RECOMENDACII IS NOT NULL');
DataModule1.SelectQuery.Active:=True;
end;
//----------Использование огрегатной функции COUNT----------
procedure TForm2.Button9Click(Sender: TObject);
begin
DataModule1.SelectQuery.SQL.Clear;
DataModule1.SelectQuery.SQL.Add('SELECT COUNT (DISTINCT NOMER_PATENTA) FROM OPERACII');
DataModule1.SelectQuery.Active:=True;
end;
//----------Использование огрегатной функции SUM----------
procedure TForm2.Button21Click(Sender: TObject);
begin
DataModule1.SelectQuery.SQL.Clear;
DataModule1.SelectQuery.SQL.Add('SELECT SUM (KOLICHESTVO_OPERACIY) FROM OPERACII');
DataModule1.SelectQuery.Active:=True;
end;
//----------Использование огрегатной функции AVG----------
procedure TForm2.Button22Click(Sender: TObject);
begin
DataModule1.SelectQuery.SQL.Clear;
DataModule1.SelectQuery.SQL.Add('SELECT AVG (KOLICHESTVO_OPERACIY) FROM OPERACII');
DataModule1.SelectQuery.Active:=True;
end;
//----------Использование огрегатной функции MAX----------
procedure TForm2.Button23Click(Sender: TObject);
begin
DataModule1.SelectQuery.SQL.Clear;
DataModule1.SelectQuery.SQL.Add('SELECT MAX (KOLICHESTVO_OPERACIY) FROM OPERACII');
DataModule1.SelectQuery.Active:=True;
end;
//----------Использование огрегатной функции MIN----------
procedure TForm2.Button24Click(Sender: TObject);
begin
DataModule1.SelectQuery.SQL.Clear;
DataModule1.SelectQuery.SQL.Add('SELECT MIN (KOLICHESTVO_OPERACIY) FROM OPERACII');
DataModule1.SelectQuery.Active:=True;
end;
//----------Использование огрегатной функции COUNT(*)----------
procedure TForm2.Button10Click(Sender: TObject);
begin
DataModule1.SelectQuery.SQL.Clear;
DataModule1.SelectQuery.SQL.Add('SELECT COUNT(*) FROM OPERACII');
DataModule1.SelectQuery.Active:=True;
end;
//----------Использование простых вычислений в запросе----------
procedure TForm2.Button11Click(Sender: TObject);
begin
DataModule1.SelectQuery.SQL.Clear;
DataModule1.SelectQuery.SQL.Add('SELECT NOMER,DATA,NOMER_PACIENTA*10,NOMER_PATENTA,NAZVANIE,RECOMENDACII,KOLICHESTVO_OPERACIY FROM OPERACII');
DataModule1.SelectQuery.Active:=True;
end;
//----------Использование простого вычисления, как параметр огрегатной функции----------
procedure TForm2.Button12Click(Sender: TObject);
begin
DataModule1.SelectQuery.SQL.Clear;
DataModule1.SelectQuery.SQL.Add('SELECT SUM (KOLICHESTVO_OPERACIY*10) FROM OPERACII');
DataModule1.SelectQuery.Active:=True;
end;
//----------Использование предложения GROUP BY----------
procedure TForm2.Button13Click(Sender: TObject);
begin
DataModule1.SelectQuery.SQL.Clear;
DataModule1.SelectQuery.SQL.Add('SELECT NAZVANIE, SUM (KOLICHESTVO_OPERACIY) FROM OPERACII GROUP BY NAZVANIE');
DataModule1.SelectQuery.Active:=True;
end;
//----------Использование предложения HAVING----------
procedure TForm2.Button14Click(Sender: TObject);
begin
DataModule1.SelectQuery.SQL.Clear;
DataModule1.SelectQuery.SQL.Add('SELECT NAZVANIE, SUM (KOLICHESTVO_OPERACIY) FROM OPERACII GROUP BY NAZVANIE HAVING MAX (NOMER_PATENTA) > 3');
DataModule1.SelectQuery.Active:=True;
end;
После запуска приложения и выбора файла базы данных (LR_3.GDB) главная форма проекта имеет вид:
Форма, содержащая запросы к БД представлена на рисунке:
Вывод: В ходе выполнения лабораторной работы бали изучены:
- работа оператора SELECT
- возможность обработки данных с помощью агрегатных функций языка SQL