Указания по выполнению лабораторной работы

Перед выполнением данной работы сделаем базу данных “Студенты” в СУБД Access.

Указания по выполнению лабораторной работы - student2.ru

Заполните базу данных данными.

Для того, чтобы связать базу Access и С++Builder нам потребуется три компонента, и выносим их на форму.

1) ADOConnection1

2) DataSource1

3) ADOQuery1

Указания по выполнению лабораторной работы - student2.ru

Для компонента ADOConnection1 устанавливаем следующие свойства

Connected – try

LoginPrompt– false

ConnectionString – нажимаем на свойство, откроется окно

Указания по выполнению лабораторной работы - student2.ru

После чего нажимаем build…

Откроется окно

Указания по выполнению лабораторной работы - student2.ru

1. Щелкните на “…” и находим нужную базу данных.

2. По необходимости можно указать пароль.

Provider - выбираем Microsoft.Jet.OLEDB.4.0

Указания по выполнению лабораторной работы - student2.ru

Для компонента DataSource1 устанавливаем следующие свойства: находим DataSet, в списке выбираем ADOQuery1.

Указания по выполнению лабораторной работы - student2.ru

Для компонента ADOQuery1 устанавливаем следующие свойства.

SQL – Открываем и пишем запрос:

SELECT *

FROM Студенты;

Active – tru.

Connection – выбираем ADOConnection1.

Указания по выполнению лабораторной работы - student2.ru

Для того, чтобы вывести нашу базу потребуется компонент TDBGrid. Выносим его на форму.

Указания по выполнению лабораторной работы - student2.ru

Для компонента TDBGrid находим свойство DataSource, и выбираем DataSource1.

Если все было сделано, верно, выйдет такой результат:

Указания по выполнению лабораторной работы - student2.ru

Контрольные вопросы

1. Назовите компонент, с помощью которого устанавливается связь между базой данных и клиентским приложением

2. Какие свойства необходимо заполнить у компонента ADOQuery?

3. Для чего служит компонент DataSource?

4. Какое свойство компонента TDBGrid надо установить, чтобы в нем появились данные?

5. Без какого свойства компонента ADOQuery данные не будут выведены в TDBGrid?


Практическая работа № 8

Тема: «Построение запросов на выборку с использованием сравнения и условий в выборках и исключение дубликатов».

Цель работы: Научиться писать запросы на выборку.

Время выполнения: подготовка: 5 мин; выполнение: 210 мин; проверка: 10 мин; всего: 225 мин.

Указания к выполнению лабораторной работы

Команда SELECT

Команда SELECT является ключевой командой языка SQL. Собственно с нее и начинался язык SQL. Команда позволяет осуществлять выборки данных из одной или нескольких соединенных по условию таблиц. Команда имеет довольно сложный синтаксис.

SELECT

[ALL | DISTINCT | DISTINCTROW ]

[FROM СсылкиНаТаблицы

[WHERE Условие]

[GROUP BY {ИмяАтрибута | Выражение | Позиция}

[HAVING Условие]

[ORDER BY { ИмяАтрибута | Выражение | Позиция }

[LIMIT пределы];

Или:

SELECT ...

UNION [ALL | DISTINCT] SELECT ...

[UNION [ALL | DISTINCT] SELECT ...]

СсылкиНаТаблицы:

СсылкиНаТаблицы [,СсылкиНаТаблицы] ...

СсылкиНаТаблицы:

ОписаниеТаблицы

| СоединениеТаблиц

ОписаниеТаблицы:

ИмяТаблицы [[AS] Алиас]

| (СсылкиНаТаблицы)

| { OJ СсылкиНаТаблицы LEFT OUTER JOIN

СсылкиНаТаблицы

ON УсловиеСоединения }

СоединениеТаблиц:

СсылкиНаТаблицы [INNER] JOIN ОписаниеТаблицы

[УсловиеСоединения]

| СсылкиНаТаблицы {LEFT|RIGHT} [OUTER] JOIN

СсылкиНаТаблицы УсловиеСоединения

ALL – означает, что результирующий набор данных будет содержать все записи, в том числе и одинаковые.

DISTINCT или DISTINCTROW – это синонимы, которые означают, что результирующая выборка будет содержать только разные записи.

FROM – задает список таблиц, из которых выбираются данные.

WHERE – задает условие выборки данных из таблиц, а также условие соединения таблиц.

GROUP BY – задает поле(поля), по которому данные объединяются в группы для подведения итогов.

HAVING – задает условие, накладываемое на группы.

ORDER BY – задает поле(поля), которым выполняется сортировка данных в результирующей выборке.

UNION – используется для выполнения операции объединения таблиц.

INNER JOIN – задает внутреннее соединение таблиц по условию.

{LEFT|RIGHT} OUTER JOIN – задает внешнее(левое или правое) соединение таблиц по условию.

AS – при описании таблиц позволяет задать второе имя для таблицы(алиас). Алиасы удобно использовать при описании списка столбцов в выборке, помечая каждый столбец алиасом той таблицы, из которой он выбирается.

Рассмотрим использование оператора SELECT на примере выборок из следующих таблиц:

Таблица «Темы» содержит информацию о темах, к которым относится та или иная книга. Имеет следующую структуру:

Tem(*N_t(номер темы), Nazv_t(название темы))

Таблица «Книги» содерит информацию о книгах, имеющихся в библиотеке. Имеет следующую структуру:

Books(*N_b(номер книги), Nazv(название), Avtor(автор),

Cena(цена), God_izd(год издания), N_tem(номер темы))

Таблица «Читатели» содержит информацию о читателях библиотеки. Имеет следующую структуру:

Readers(*N_r(номер читателя), Fio(ФИО), Adres(Адрес), Tel(телефон), Pol(пол))

Таблица «Регистрация выдачи и возврата книг» содержит информацию о том кому какие книги выдавались. Имеет следующую структуру:

Registr(*N_b(номер книги), *N_r(номер читателя), *Data_v(Дата выдачи), Priznak(признак возврата)).

Первичные ключи в таблицах отмечены «звездочками»(*).

Простая выборка

Если не задается ключевое слово WHERE, то выбираются все строки из таблицы. Если вместо имен столбцов задается *(звездочка), то выбираются все столбцы таблицы.

Задание 1. Выбрать всю информацию из таблицы «Читатели».

SELECT * FROM Readers;

Задание 2. Выбрать ФИО всех читателей библиотеки:

SELECT Fio FROM Readers;

Выборка с исключением дубликатов. Для того, чтобы в выборке не содержались одинаковые записи, используется ключевое слово DISTINCT.

Задание 3. Выдать список фамилий авторов всех книг библиотеки.

SELECT DISTINCT Avtor FROM Books;

Следующий запрос извлекает первые 5 записей, при этом осуществляется обратная сортировка по полю Avtor.

SELECT DISTINCT Avtor FROM Books

ORDER BY Avtor DESC

LIMIT 5;

Наши рекомендации