ВВОД SQL – ИНСТРУКЦИЙ СРЕДСТВАМИ QUERY ANALYSER

advertisement
П.Р. №1
ВВОД SQL – ИНСТРУКЦИЙ СРЕДСТВАМИ QUERY ANALYSER
1 Цель работы – приобретение студентами практических навыков применения
специализированной утилиты Query Analyser при работе с данными в форме таблиц.
2 Тексты и результаты выполнения SQL-запросов и их содержательная
интерпретация
В специализированной утилите Query Analyser с помощью инструкции CREATE
TABLE была создана таблица autxxx с перечисленными ниже столбцами.
SQL – текст:
CREATE TABLE [autxxx] (
[au_id] [id] NOT NULL ,
[au_lname] [varchar] (40) COLLATE Cyrillic_General_CI_AS NOT NULL ,
[au_fname] [varchar] (20) COLLATE Cyrillic_General_CI_AS NOT NULL ,
[phone] [char] (12) COLLATE Cyrillic_General_CI_AS NOT NULL ,
[address] [varchar] (40) COLLATE Cyrillic_General_CI_AS NULL ,
[city] [varchar] (20) COLLATE Cyrillic_General_CI_AS NULL ,
[state] [char] (2) COLLATE Cyrillic_General_CI_AS NULL ,
[zip] [char] (5) COLLATE Cyrillic_General_CI_AS NULL ,
[contract] [bit] NOT NULL
)
GO
Содержательная интерпретация: Данный запрос формирует таблицу БД autxxx со
всеми включенными в неё столбцами (см. рис. 1).
Рисунок 1 - Результат выполнения запроса
Добавление в таблицу новой строки осуществляется, с использованием инструкции
INSERT.
SQL – текст:
INSERT INTO autxxx
(au_id ,
au_lname ,
au_fname ,
phone,
address ,
city ,
state,
zip,
contract)
VALUES
(555,
'Юлия',
'Данилова',
'48-88-89',
'Тепличная,10',
'Penza',
'MS',
1215,
1)
Содержательная интерпретация: Данный запрос производит запись таблицу
autxxx (см.рис.2).
Рисунок 2 - Результат выполнения запроса с помощью инструкции INSERT.
Выборка данных из таблицы осуществляется с помощью инструкции SELECT.
SQL – текст:
SELECT DISTINCT *
FROM autxxx
ORDER BY au_id
Содержательная интерпретация: Данный запрос производит выборку всех полей,
отсортированных по полю au_id (код). Результат выполнения запроса представлен на
рисунке 3.
Рисунок 3 - Результат выплнения запроса с помощью инструкции SELECT
Для удаления строки из таблицы предназначена инструкция DELETE.
SQL – текст:
DELETE
FROM autxxx
WHERE au_id = 555
Содержательная интерпретация: Данный запрос удаляет запись из таблицы
autxxx, идентификатор которой равен 555. Результат выполнения запроса представлен на
рисунке 4.
Рисунок 4 - Результат выполнения запроса с помощью инструкции DELETE
Обновление конкретной строки осуществляется с использованием инструкции
UPDATE.
SQL – текст:
UPDATE autxxx
SET
address = 'Аустрина, 146'
WHERE au_id = 723
Содержательная интерпретация: Данный запрос производит обновление адреса в
строке, у которой идентификатор равен 723. Результат выполнения представлен на
рисунке 5.
Рисунок 5 - Результат выполнения запроса с помощью инструкции UPDATE.
Вывод: при выполнении данной лабораторной работы мы изучили и приобрели
практические навыки применения специализированной утилиты Query Analyzer при
работе с данными в форме таблиц.
Произвели выполнение важнейших инструкций CREATE TABLE, SELECT,
INSERT, UPDATE, DELETE заданных SQL-запросов и проинтерпретировали результаты
выполнения запросов.
Контрольные вопросы
Вопрос 1. Каким образом осуществляется вызов справки по SQL-инструкции в
среде Query Analyzer?
Вопрос 2. Каким образом выполняется синтаксический анализ введенных SQLинструкций?
Вопрос 3. Как сохранить SQL-инструкцию, введенную в окне редактора Query
Analyzer, в текстовом файле?
Вопрос 4. Какие основные функции панели Object Browser утилиты Query
Analyzer?
Вопрос 5. Каким образом выполняется размещение кода шаблона SQLинструкции в окне редактора Query Analyzer?
П.Р. №2
Изучение сложных элементов языка манипулирования
данными
1 Цель работы: приобретение практических навыков разработки SQL-инструкций с
использованием операторов объединения и предикатов.
2 Задание
Изучить состав таблиц БД pubs: authors (авторы), publishers (издательства), titles
(книги), titleauthor (отношения между titles и authors), дать содержательную
интерпретацию SQL-запросам в соответствии с вариантом задания, выполнить их на SQLсервере, составить SQL-запросы по их заданному содержательному описанию и
выполнить эти запросы.
3 Выполнение работы
Блок А (вариант 8)
Составим содержательное описание запросам в соответствии с вариантом задание
9) SELECT DISTINCT city
FROM authors
ORDER BY city DESC
Содержательное описание: Выбрать города, в которых проживают авторы. Результат
отбора упорядочить по убыванию.
Рисунок 1 - Результат выполнения запроса
20) SELECT type, title_id, price
FROM titles
WHERE title_id like “B_2075”
Содержательное описание: Выбрать тип и цену книги, идентификатор которой
равен ‘B_2075’
Рисунок 2 - Результат выполнения запроса
34) SELECT type, MIN(price), MAX(price)
FROM titles
GROP BY type
ORDER BY type
Содержательно описание: Выбрать максимальную и минимальную цену каждого
типа книг.
Рисунок 3 - Результат выполнения запроса
55) SELECT au_lname, au_fname, title
FROM authors a, titles t, titleauthor ta
WHERE ta.title_id=t.title_id AND a.au_id=ta.au_id
AND type= “popular_comp”
Содержательное описание: Выбрать имена и фамилии авторов книг и названия этих
книг, относящихся к типу “popular_comp”
Рисунок 4 - Результат выполнения запроса
71) SELECT DISTINCT p.city, p.state
FROM publishers p
WHERE NOT EXISTS
(SELECT *
FROM authors a
WHERE p.city=a.city AND p.state=a.state)
Содержательное описание: Выбрать город и штат, в котором расположено
издательство, но в котором не живут авторы.
Рисунок 5 - Результат выполнения запроса
79) SELECT au_lname, au_fname, price
FROM authors a, titles t, titleauthor ta, publishers p
WHERE ta.title_id=t.title_id AND a.au_id=ta.au_id
AND t.pub_id=p.pub_id AND country=’USA’
AND price=
(SELECT MIN(price)
FROM titles tt, publishers pp
WHERE tt.pub_id=pp.pub_id
GROUP BY country
HAVING country=’USA’)
Содержательно описание: Выбрать фамилии и имена авторов, а также минимальную
цену книг, выпущенных в США.
Рисунок 6 - Результат выполнения запроса
95) SELECT city, state
FROM authors
WHERE state IS NOT NULL
UNION SELECT city, state
FROM publishers
WHERE state IS NOT NULL
ORDER BY city DESC, state ASC
Содержательно описание: Выбрать города и штаты, в которых живут авторы и в
которых расположены издательства. Результат упорядочить по убыванию городов.
Рисунок 7 - Результат выполнения запроса
Блок Б (вариант8)
Составим SQL-запросы по их заданному содержательному описанию
2) Выбрать имена и фамилии авторов, проживающих в Калифорнии.
SELECT au_lname,au_fname
FROM authors
WHERE state='CA'
Рисунок 8 - Результат выполнения запроса
10) Выбрать имена и фамилии всех авторов, упорядоченные по возрастанию фамилий
авторов.
SELECT au_lname,au_fname
FROM authors
ORDER BY au_lname
Рисунок 9 - Результат выполнения запроса
32) Выбрать все книги издательства Algodata Infosysytems. В запросе использовать
подзапрос для определения нужного идентификатора издателя. В условии поиска
использовать предикат “=”. В выбираемые данные включить название книги.
SELECT title
FROM titles
WHERE pub_id=(SELECT DISTINCT pub_id
FROM publishers
WHERE pub_name='Algodata Infosystems')
Рисунок 10 - результат выполнения запроса
64) Определить авторов из городов, начинающихся с букв “A”, “B” или “C” или
имеющих в своем составе слово “Salt”, и написавших книги, в названии которых есть
определенный или неопределенный артикль английского языка.
SELECT DISTINCT a.au_lname,a.au_fname
FROM authors a,titleauthor ta,titles t
WHERE a.au_id=ta.au_id AND ta.title_id=t.title_id
AND (a.city LIKE '[A-C]%' OR a.city LIKE '%Salt%'
OR t.title LIKE '% A %' OR t.title LIKE '%the%')
Рисунок 11 - Результат выполнения запроса
71) Найти издательство, выпустившее свою самую дорогую книгу с наиболее низкой
ценой среди всех издательств. В запросе использовать подзапрос, определяющий
максимальные цены книг, выпущенные каждым издательством.
SELECT p.pub_id, pub_name
FROM publishers p
WHERE p.pub_id=(SELECT t.pub_id
FROM titles t
GROUP BY pub_id
HAVING MAX(price)=(Select Min(price)
FROM titles t
WHERE price in(SELECT MAX(price)
FROM titles t
GROUP BY t.pub_id)))
Рисунок 12 - Результат выполнения запроса
82) Определить книги, число продаж для которых не определено.
SELECT title
FROM titles
where ytd_sales IS NULL
Рисунок 13 - Результат выполнения запроса
89) Определить штаты и число находящихся в них издательств, выпустивших книги.
SELECT state, COUNT(DISTINCT pub_name) 'Kolvo_publishers'
FROM publishers p, titles
where titles.pub_id=p.pub_id
GROUP BY state
Рисунок 14 - Результат выполнения запроса
95) Вычислить для каждого типа книг среднее арифметическое минимальной и
максимальной цены. Результат упорядочить по убыванию значений.
SELECT type, (MIN(price)+MAX(price))/2'avg'
FROM titles
GROUP BY type
ORDER BY 'avg' DESC
Рисунок 15 - Результат выполнения запроса
Вывод: в результате проделанной работы были приобретены практические навыки по
составлению SQL–инструкций с использованием сложных элементов языка
манипулирования данными.
Контрольные вопросы
Вопрос 1. Каким образом выполняется отбор строк в результирующей
таблице с использованием предложений WHERE , HAVING?
Вопрос 2. Как осуществляется задание в инструкции SQL объединение
определения представления с определением запроса на выборку?
Вопрос 3. Какие скалярные функции (rows function) и агрегатные функции
(column function) определены в языке манипулирования данными?
Вопрос 4. Каким образом применяется предложение GROUP BY к подгруппам
строк, отобранных инструкцией SELECT?
.
Вопрос 5. Каким образом выполняется сортировка строк результирующей
таблицы с применением предложения ORDER BY?
Вопрос 6. Как задается объединение двух таблиц с использованием
предложения FROM и оператора JOIN в инструкции SQL?
Вопрос 7. Каким образом задается объединение в результирующей таблице
двух или более предложений с использованием оператора UNION?
П.Р. №3
Элементы определения данных с помощью SQL - языка
1 Цель работы: приобретение студентами практических навыков разработки баз
данных с использованием инструкций языка определения данных.
2 Тексты и результаты выполнения SQL-запросов и их содержательная
интерпретация
В специализированной утилите Query Analyser с помощью инструкции CREATE
DATABASE была создана база данных MyBasat.
SQL – текст:
create database MyBasat
Содержательная интерпретация: Данный запрос формирует саму БД.
Результат выполнения запроса:
The CREATE DATABASE process is allocating 0.75 MB on disk 'MyBasat'.
The CREATE DATABASE process is allocating 0.49 MB on disk 'MyBasat_log'.
С помощью инструкции CREATE TABLE была создана таблица Customer с
перечисленными ниже столбцами.
SQL – текст:
CREATE TABLE [Customer]
([CustID] [int] NOT NULL ,
[Name] [char] (30)not null ,
[ShipSity] [char] (30) not null,
[Discount] [decimal] (5,3) NULL
CONSTRAINT [Customer PR] PRIMARY KEY CLUSTERED
(
[CustID]
) ON [PRIMARY] ,
) ON [PRIMARY]
GO
Содержательная интерпретация: Данный запрос формирует таблицу БД Customer
со всеми включенными в неё столбцами(см. рисунок 1).
Рисунок 1 - Результат выполнения запроса с помощью инструкции CREATE TABLE
С помощью инструкции CREATE TABLE была создана таблица Sale с
перечисленными ниже столбцами.
SQL – текст:
CREATE TABLE [Sale]
([OrderID] [int] NOT NULL ,
[CustID] [int] not null ,
[TotalAmt] [money] not null,
[Saledate] [datetime]not null,
[Shipdate] [datetime] null
CONSTRAINT [Sale PR] PRIMARY KEY CLUSTERED
(
[OrderID]
) ON [PRIMARY] ,
foreign key
(
[CustID]
) references [Customer] (
[CustID]
)
) ON [PRIMARY]
GO
Содержательная интерпретация: Данный запрос формирует таблицу БД Sale со
всеми включенными в неё столбцами. Результат выполнения запроса представлен на
рисунке 2.
Риунок 2 - Созданная таблица Sale
Вводим с помощью инструкции INSERT в созданную таблицу Customer данные
(строки).
SQL – текст:
Insert into Customer
(CustID,Name,ShipSity,Discount)
values (1,'Данилова Ю И','Penza',11.55)
Insert into Customer
(CustID,Name,ShipSity,Discount)
values (2,'Крапчина Т А','Moscow',5.999)
Insert into Customer
(CustID,Name,ShipSity,Discount)
values (3,'Строкова И В','Kiev',2.369)
Содержательная интерпретация: Данный запрос производит записи данных в
таблицу Customer. Результат выполнения запроса представлен на рисунке 3.
Рисунок 3 - Результат выполнения инструкции INSERT
Вводим с помощью инструкции INSERT в созданную таблицу Sale данные (строки).
SQL – текст:
Insert into Sale
(OrderID,CustID,TotalAmt,Saledate,Shipdate)
values (1, 2,86,12-01-2003,16-02-2003)
Insert into Sale
(OrderID,CustID,TotalAmt,Saledate,Shipdate)
values (2,1,203,14-01-2003,21-01-2003)
Insert into Sale
(OrderID,CustID,TotalAmt,Saledate,Shipdate)
values (3,3,75,1/28/03,2/7/03)
Содержательная интерпретация: Данный запрос производит записи данных в
таблицу Sale. Результат выполнения представлен на рисунке 4.
Рисунок 4 - Результат выполнения инструкции INSERT
Удаляем из таблицы Sale запись, где первичный ключ равный 3 с помощью
инструкции DELETE.
SQL – текст:
delete from Sale where OrderID=3
Содержательная интерпретация: Данный запрос удаляет строку, первичный ключ
(OrderID) которой равен 3. Результат выполнения запроса представлен на рисунке 5.
Рисунок 5 - Результат выполнения инструкции DELETE
Из таблицы Customer удаляем столбец Discount с помощью инструкции DROP.
SQL – текст:
ALTER TABLE Customer
DROP COLUMN Discount
Содержательная интерпретация: Данный запрос удаляет столбец Discount из
таблицы Customer. Результат выполнения инструкции представлен на рисунке 6.
Рисунок 6 - Результат выполнени инструкции DROP
В состав таблицы Customer с использованием инструкции ALTER TABLE вводим
столбец "Discount decimal (5, 3)". В инструкции предусматриваем ограничение на
значения атрибута следующего вида:
DEFAULT 0
CHECK ( Discount BETWEEN 0 AND 100)
SQL – текст:
ALTER TABLE Customer
ADD Discount decimal (5, 3) DEFAULT 0
CHECK ( Discount BETWEEN 0 AND 100)
Содержательная интерпретация: Данный запрос добавляет столбец Discount с
предусмотренными ограничениями в таблицу Customer. Результат выполнения
инструкции представлен на рисунке 7.
Рисунок 7 - Результат выполнени запроса
С использованием инструкции UPDATE выполняем обновление строк в таблице
Customer.
SQL – текст:
Update Customer
set Discount=12.08
where CustID=1
Update Customer
set Discount=3.045
where CustID=2
Update Customer
set Discount=4.098
where CustID=3
Содержательная интерпретация: Данный запрос обновляет строки в таблице
Customer. Результат представлен на рисунке 8.
Рисунок 8 - Результат выполнения инструкции UPDATE
С использованием инструкции ALTER TABLE осуществить добавление
ограничения UNIQUE (уникальности) в таблице Customer. Например, ввести столбец
"Professor".
SQL – текст:
Alter table Customer
add Professor char
unique (Professor)
Содержательная интерпретация: Данный запрос добавляет столбец Professor в
таблицу Customer. Результат выполнени инструкции представлен на рисунке 9.
Рисунок 9 - Результат выполнения запроса
В состав таблицы Customer с использованием инструкции ALTER TABLE ввести
столбец CreditLimit. В инструкции предусмотреть ограничение на значения атрибута
следующего вида:
DEFAULT 0
CHECK ( CreditLimit BETWEEN 0 AND $5000).
SQL - текст:
ALTER TABLE Customer
ADD CreditLimit money DEFAULT 0
CHECK ( CreditLimit BETWEEN 0 AND $5000)
Содержательная интерпретация: Данный запрос добавляет столбец CreditLimit с
предусмотренными ограничениями в таблицу Customer.
Рисунок 10 - Результат выполнения запроса
С использованием инструкции UPDATE выполните обновление строк в таблице
Customer.
SQL – текст:
Update Customer
set CreditLimit=3500
where CustID=1
Update Customer
set CreditLimit=4120
where CustID=2
Update Customer
set CreditLimit=4590
where CustID=3
Содержательная интерпретация: Данный запрос обновляет строки в таблице
Customer
Рисунок 11 - Результат выполнения запроса
На основе базовой таблицы Customer создаем представление CustCredit,
позволяющее просматривать сведения о клиентах, лимит кредита которых не менее $4000.
SQL – текст:
create view CustCredit as
select * from Customer
where CreditLimit>=4000
Содержательная интерпретация: Данный запрос на основе базовой таблицы
Customer создает представление CustCredit, позволяющее просматривать сведения о
клиентах, лимит кредита которых не менее $4000.
Рисунок 12 - Результат выполнения запроса
В состав таблицы Customer с использованием инструкции ALTER TABLE введите
столбец Status. В инструкции предусмотрите ограничение на значения атрибута
следующего вида:
DEFAULT 0
CHECK ( Status BETWEEN 'A' AND 'X').
SQL – текст:
ALTER table Customer
ADD Status char DEFAULT 0
CHECK ( Status BETWEEN 'A' AND 'X')
Содержательная интерпретация: Данный запрос добавляет столбец Status с
предусмотренными ограничениями в таблицу Customer.
Рисунок 13 - Результат выполнения запроса
С использованием инструкции UPDATE выполняем обновление строк таблицы
Customer.
SQL – текст:
Update Customer
set Status='X'
where CustID=1
Update Customer
set Status='A'
where CustID=2
Update Customer
set Status='B'
where CustID=3
Содержательная интерпретация: Данный запрос обновляет строки в таблице
Customer.
Рисунок 14 - Результат выполнения запроса
Заменить в таблице Customer значение столбца Status на 'B', если удовлетворяет
условию:
ShipSity='Penza' and Status='X'
SQL – текст:
update Customer
set Status='B'
where ShipSity='Penza' and Status='X'
Содержательная интерпретация: Данный запрос заменяет в таблице Customer
значение столбца Status на 'B', если удовлетворяет условию: ShipSity='Penza' and Status='X'
Рисунок 15 - Результат выполнения запроса
С использованием инструкций CREATE VIEW и SELECT создайте представление,
содержащее все строки и часть столбцов таблицы Customer.
SQL – текст:
create view CustShip as
select CustID, Name, ShipSity
from Customer
Содержательная интерпретация: Данный запрос создает представление,
содержащее все строки и часть столбцов таблицы Customer.
Рисунок 16 - Результат выполнения запроса
На основе инструкций CREATE VIEW, SELECT и оператора объединения JOIN
создайте представление CustSale с объединением связанных строк таблиц Customer, Sale.
SQL – текст:
create view CustSale as
select Customer.CustID,
Customer.Name,
Sale.OrderID,
Sale.TotalAmt
from Customer JOIN Sale
ON Customer.CustID=Sale.CustID
Содержательная интерпретация: Данный запрос создает представление CustSale с
объединением связанных строк таблиц Customer, Sale.
Рисунок 17 - Результат выполнения запроса
Вывод: При выполнении данной лабораторной работы мы приобрели практические
навыки разработки баз данных с использованием инструкций языка определения данных
П.Р. №4
Соединение с источниками данных ODBC
1 Цель работы: изучение функции ODBC для соединения с базой данных, а также
функции для получения информации о драйвере и источнике данных, приобретение
навыков использования данных функций при разработке клиентских приложений баз
данных с помощью инструмента Enterprise Manager.
2 Выполнение работы
Создание базы данных StudyEM:
Создание таблицы CustomerEM:
Рисунок 2 - Таблица CustomerEM
Создание таблицы SaleEM:
Рисунок 3 - Таблица SaleEM
Создание таблицы EmployeeEM:
Рисунок 4 - Таблица EmployeeEM
Ввод записей в таблицу CustomerEM :
Рисунок 5 - Ввод первой записи в таблицу CustomerEM
Рисунок 6 - Ввод второй записи в таблицу CustomerEM
Рисунок 7 - Ввод третьей записи в таблицу CustomerEM
Результат выполнения:
Рисунок 8 - Таблица CustomerEM
Ввод записей в таблицу SaleEM:
Рисунок 9 - Добавление первой записи в таблицу SaleEM
Рисунок 10- Добавление второй записи в таблицу SaleEM
Рисунок 11- Добавление третьей записи в таблицу SaleEM
Результат выполнения:
Рисунок 12 - Таблица SaleEM
Ввод записей в таблицу EmployeeEM:
Рисунок 13 - Ввод первой записи в таблицу EmployeeEM
Рисунок 14 - Ввод второй записи в таблицу EmployeeEM
Рисунок 15 - Ввод третьей записи в таблицу EmployeeEM
Результат выполнения:
Рисунок 16 - Таблица EmployeeEM
Создание представления CustCredit:
Рисунок 17 - Представление CustCredit
Графическая схема базы данных:
Рисунок 18 - Схема базы данных
Вывод: В ходе выполнения лабораторной работы были изучены инструментальные
средства Enterprise Manager. В соответствии с заданием была создана база данных
StudyEM с таблицами CustomerEM, SaleEM, EmployeeEM и представление CustCredit. При
помощи графического редактора Enterprise Manager был выполнен отбор таблиц в схему
базы данных StudyEM
Контрольные вопросы
Вопрос 1. Какова последовательность действий при создании новой базы данных
инструментальными средствами Enterprise Manager?
Вопрос 2. Каким образом инструментальными средствами Enterprise Manager
создаются таблицы и представления в базе данных?
Вопрос 3. Каким образом осуществляется просмотр схемы базы данных в окне
графического редактора Enterprise Manager?
Вопрос 4. Каким образом инструментальными средствами графического
редактора Enterprise Manager выполняется добавление или удаление
ограничений в
П.Р. №5
Доступ к базам данных средствами Microsoft ActiveX
Data Objects (ADO)
1 Цель работы: приобрести практические навыки работы по доступу к базам данных с
использованием технологии ADO.
2 Задание
С использованием технологии ADO в среде Delphi7 разработать приложение,
позволяющее подключаться к источнику данных и получать доступ к данным.
Приложение должно обеспечивать просмотр, добавление, удаление и редактирование
данных, содержащихся в БД.
3 Выполнение работы
Разработаем приложение, обеспечивающее просмотр, добавление, удаление и
редактирование данных, содержащихся в базе данных StudyEM, разработанной в
лабораторной работе №4. Будем осуществлять доступ к связанным таблицам CustomerEM
и SaleEM.
Для доступа к БД необходимо создать соответствующий источник данных ODBC. Для
этого используется приложение Data Source Administrator (Администратор источников
данных OBDC), окно которого представлено на рисунке 1.
Рисунок 1 – Администратор источников данных ODBC
Для создания нового источника данных необходимо на вкладке «Пользовательский
DNS» нажать кнопку «Добавить». При этом откроется диалоговое окно со списком всех
драйверов, установленных в системе (рисунок 2). Из списка выбираем SQL Server.
Рисунок 2 – Окно выбора драйвера
Далее в следующем окне (рисунок 3) задаем имя источника данных (MySQLServer) и
указываем сервер (SQL Server).
Рисунок 3 – Окно задания имени источника данных
При нажатии на кнопку «Далее» открывается окно, определяющее способ
аутентификации при подключении к SQL Server (рисунок 4).
Рисунок 4 – Определение способа аутентификации
Далее по цепочке открывается окно, представленное на рисунке 5, в котором в
качестве базы данных, используемой по умолчанию, выбираем нашу БД StudyEM.
Рисунок 5 – Выбор БД, используемой по умолчанию
Таким образом, идя по цепочке далее, создадим свой источник данных MYSQLServer.
Разработку приложения для подключения к созданному источнику данных будем
проводить в среде Delphi7 с использованием технологии ADO. ADO – это
пользовательский интерфейс к любым типам данных, включая реляционные и не
реляционные базы данных, электронную почту, системные, текстовые и графические
файлы. Связь с данными осуществляется посредством так называемой технологии OLE
DB.
Для использования этой возможности на вашем компьютере должна быть установлена
система ADO 2.1 или более старшая версия. Кроме того должна быть установлена
клиентская система доступа к данным, например Microsoft SQL Server, а в ODBC должен
иметься драйвер OLE DB для того типа баз данных, с которым вы работаете.
Для работы с ADO в Delphi предусмотрены компоненты, расположенные на странице
ADO. Они инкапсулируют такие объекты ADO, как Connection, Command и Recordset. Это
обеспечивается соответственно компонентами ADOConnection, ADOCommand,
ADODataSet.
Связь с базой данных в технологии ADO осуществляется обычной цепочкой: набор
данных -> источник данных (компонент DataSource) -> компоненты управления и
отображения данных (DBGrid, DBEdit и др.).
В программе в качестве набора данных использовался компонент ADODataSet
(соответственно для таблиц CustomerEM и SaleEM компоненты ADODataSetCust и
ADODataSetSale ). Для связи с набором данных используется ADOConnection.
Соединение компонентов набора данных с базой данных осуществляется через
свойство Connection, связывающее данный компонент с компонентом ADOConnection. В
этом компоненте ADOConnection , осуществляющем диспетчеризацию работы с набором
данных, соединение задается свойством ConnectionString. А во всех прочих компонентах
наборов данных достаточно установить в свойстве Connection имя компонента
ADOConnection.
При нажатии в Инспекторе Объектов на кнопку с многоточием около свойства
ConnectionString компонента ADOConnection откротся окно, представленное на рисунке 6.
Рисунок 6 – Первое диалоговое окно задания строки соединения
Нижняя радиокнопка Use Connection String позволяет в режиме диалога сформировать
строку соединения. Включаем эту радиокнопку и нажимаем кнопку Build
(Сформировать).
Перед нами откроется многостраничное окно задания свойств соединения. Его первая
страница показана на рисунке 7. На этой странице мы должны указать провайдер OLE DB,
который собираемся использовать для доступа к данным.
Выбрав провайдер, необходимо перейти на страницу Подключение (рисунок 8). Здесь
необходимо указать, как мы будем соединяться с ODBC. Выбрав кнопку «Использовать
имя источника данных», из выпадающего списка выбираем имя нашего источника
MySQLServer. В этом окне также можно занести дополнительную информацию: имя
пользователя, пароль доступа, ввести начальный каталог.
Далее можно перейти на страницу, представленную на рисунке 9, и задать варианты
доступа к базе данных. Страница Все сообщает итоговую информацию о соединении и
позволяет ее отредактировать.
Рисунок 7 – Страница Поставщик данных основного окна задания свойств соединения
Рисунок 8 - Страница Подключение основного окна задания свойств соединения
Рисунок 9 – Задание режимов доступа к данным
Рисунок 10 – Страница Все
В результате работы было разработано приложение, позволяющее подключаться к
источнику данных и получать доступ к данным. При запуске программы на экране
появляется око, представленное на рисунке 11.
Рисунок 11 – Главное окно программы
Для того чтобы осуществить подключение к базе данных, необходимо нажать на
кнопку «Соединиться с БД». Будет осуществлено подключение к БД (рисунок 12). Разрыв
соединения осуществляется при нажатии на кнопке «Отсоединить».
Рисунок 12
В программе для установления и разрыва соединения с базой данных используется
свойство Connected компонента ADOConnection, которое устанавливается соответственно
в true или в false. Свойство Connected компонента ADOConnection связано со свойствами
Active компонентов наборов данных, подключенных к данному ADOConnection.
Для добавления новых данных в таблицу CustomerEM, необходимо нажать на кнопку
«Добавить», расположенную около окошка отображения данных из этой таблице.
Откроется окно, представленное на рисунке 13. После ввода данных необходимо нажать
на кнопку «Сохранить».
Рисунок 13 – Форма ввода новых данных в таблицу CustomerEM
Для редактирования данных необходимо выбрать в главном окне соответствующую
строку с данными и нажать кнопку «Изменить». На экране появится окно редактирования
данных (рисунок 14). Поля данных будут заполнены старыми значениями. Необходимо
внести требуемые изменения и нажать кнопку «Сохранить». В случае отказа от изменения
нужно нажать кнопку «Отмена».
Рисунок 14 – Редактирование данных таблицы CustomerEM
Для удаления записи ее нужно выбрать в главном окне и нажать кнопку «Удалить».
Буден выдан запрос на удаление (рисунок 15). После подтверждения данные будут
удалены из БД.
Рисунок 15 – Запрос подтверждения удаления данных из таблицы CustomerEM
Аналогично добавление, изменение и удаление данных осуществляется и в таблице
SaleEM (рисунки 16-18).
Рисунок 16 – Форма ввода новых данных в таблицу SaleEM
Рисунок 17 – Редактирование данных таблицы SaleEM
Рисунок 18 – Запрос подтверждения удаления данных из таблицы SaleEM
Вывод: в результате проделанной работы приобрели практические навыки работы по
доступу к базам данных с использованием технологии ADO, разработали в среде Delphi7
приложение, позволяющее подключаться к источнику данных и получать доступ к
данным. Приложение обеспечивает просмотр, добавление, удаление и редактирование
данных, содержащихся в БД.
Download