- •введение
- •1. правила оформления документов
- •2. работа с текстом документа
- •2.1. Создание шаблона
- •2.2. Создание документа на основе шаблона
- •2.3. Создание макросов
- •3. задание на практику
- •4. Введение в базы данных
- •5. Общие требования к выполнению и оформлению лабораторных работ
- •6. Знакомство с системой Access
- •7. Создание таблиц базы данных
- •7.1. Проектирование базы данных
- •7.3. Создание и изменение таблиц средствами языка SQL
- •7.3.1. Управляющие запросы и запросы на изменение таблиц
- •7.3.2. Управляющий запрос на создание таблицы
- •7.3.3. Запрос на создание таблицы из других таблиц
- •7.3.4. Запрос на добавление
- •7.3.5. Запрос на удаление
- •7.3.6. Запрос на обновление
- •Контрольные вопросы
- •8. Проектирование запросов
- •8.1. Конструктор запросов
- •8.2. Вычисления в запросе
- •8.3. Параметрические запросы
- •Контрольные вопросы
- •9. Создание запросов на выборку с помощью языка SQL
- •9.1. Структура запроса. Условия поиска
- •9.2. Параметрические запросы
- •9.3. Перекрестные запросы
- •9.4. Поиск в связанных таблицах
- •9.5. Запросы на объединение
- •Контрольные вопросы
- •10. Создание форм
- •11. Разработка отчетов
- •11.1. Работа с простейшими отчетами
- •ТЕМЫ ЗАДАНИЙ НА ПРОЕКТИРОВАНИЕ БАЗЫ ДАННЫХ «КАФЕДРА»
- •Программирование на языках высокого уровня (pascal)
- •12. типы данных и структуры программм
- •Тип данных Integer
- •Действия с целыми числами
- •Операции над целыми числами
- •Тип данных Real
- •Действия с действительными числами
- •Стандартные функции и операции
- •Программы с линейной структурой
- •Условный оператор. Оператор многозначного ветвления
- •Оператор выбора CASE
- •Примеры решений задач
- •Операторы повтора
- •Примеры решений задач
- •Список задач раздела 12
- •13. массивы
- •Одномерные массивы
- •Пример решения задачи
- •Сортировка одномерных массивов
- •Двумерные массивы
- •Список задач раздела 13
- •14. Функции и процедуры
- •Процедуры
- •Функции
- •Примеры решений задач
- •Рекурсия
- •Список задач раздела 14
- •содержание
Индекс для уже существующей таблицы можно создать инструкцией CREATE INDEX, изменить таблицу можно инструкцией ALTER TABLE. Инструкция DROP удаляет существующую таблицу из базы данных или удаляет существующий индекс из таблицы:
DROP {TABLE <таблица> | INDEX
<индекс> ON <таблица>};
Прежде чем удалить таблицу или удалить из нее индекс, необходимо ее закрыть. Кроме того, для удаления индекса из
таблицы можно использовать инструкцию ALTER TABLE.
7.3.3. Запрос на создание таблицы из других таблиц
Часто требуется создать таблицу со значениями, выбранными из одной или нескольких таблиц. Такие действия можно произвести с помощью запроса на создание таблицы
(инструкция SELECT...INTO). Инструкция в простейшей форме имеет вид
SELECT <поле_1>[, |
<поле_2>[, |
...]] |
INTO |
|
|
<новаяТаблица> |
[IN |
|
<внешняяБазаДанных>] FROM |
|
|
<источник>; |
|
|
Инструкция создает |
новую таблицу |
с именем |
<новаяТаблица>. Если таблица с таким именем уже существует, Access запрашивает подтверждение на ее удаление. В новую таблицу копируются поля с именами <поле_1>, <поле_2>,.. Столбцы новой таблицы получают характеристики типов данных столбцов, указанных в списке полей. Остальные аргументы:
33
<внешняяБазаДанных> — путь к внешней базе данных; <источник> — источник, из которого отбираются записи. Это может быть одна таблица, несколько таблиц или запрос.
В общем виде запрос на создание таблицы имеет те же аргументы, что и запрос на выборку. Например, создадим новую таблицу ОТЛИЧНИКИ, содержащую фамилии и шифры групп студентов, получивших отличные оценки по математике:
SELECT Фамилия, Группа INTO
Отличники
FROM Студент INNER JOIN (Дисциплина INNER JOIN Успеваемость ON Дисциплина.[Код дисциплины] = Успеваемость.[Код дисциплины]) ON Студент.Зачетка = Успеваемость.Зачетка WHERE Дисциплина.Название="Математика" AND Оценка=5;
При создании таблицы поля в новой таблице наследуют типы данных и размеры базовых полей, никакие другие свойства таблиц и полей не передаются. Первичный ключ в новой таблице следует создать в режиме Конструктора.
7.3.4. Запрос на добавление
Одну запись можно добавить в таблицу с помощью
запроса на добавление (инструкция INSERT INTO) :
INSERT
INTO <таблица> | <объединение таблиц>[(<поле_1>[, <поле_2>[, ...]])]
34
VALUES (<значение_1>[, <значение_2>[, ...])| <инструкция_выбора>;
Инструкция вводит в поле с именем <поле_1> значение <значение_1> и т. д. Если опущен список полей, то значения присваиваются полям в порядке их описания. Пропущенным в списке полям присваивается значение NULL. Существует модификация инструкции, позволяющая вводить данные из другой таблицы с помощью вложенного запроса <инструк-ция_выбора>. Конструкция <объединение таблиц> строится с помощью оператора JOIN.
Например, в таблицу ОТЛИЧНИКИ можно добавить записи с помощью инструкции
INSERT INTO Отличники ( Фамилия, Группа )
SELECT Фамилия, Группа
FROM Студент INNER JOIN (Дисциплина INNER JOIN Успеваемость ON Дисциплина.[ Код дисциплины] = Успеваемость.[Код дисциплины]) ON Студент.Зачетка = Успеваемость.Зачетка WHERE Дисциплина.Название="Математика" AND 0ценка=5;
7.3.5. Запрос на удаление
Инструкция DELETE удаляет одну или несколько строк из одной или нескольких таблиц, перечисленных в
35
предложении FROM, которые удовлетворяют предложению
WHERE
DELETE [<таблица>.*]
FROM <таблица>| <объединение_таблиц> |<запрос_на_выборку >|IN <внешняя_база> [WHERE <условие0тбора>];
Если предложение WHERE отсутствует, то из таблицы будут удалены все строки, но структура таблицы сохраняется. Инструкцию DELETE можно использовать для каскадного удаления записей из таблиц, связанных отношением "один-ко- многим". Если при связывании таблиц установлено свойство каскадного удаления, то операция удаления приводит к удалению записей из таблицы, находящихся на стороне отношения "многие", когда в запросе удаляется соответствующая им запись на стороне "один". Если не установлено свойство каскадного удаления, то можно удалять строки со стороны "много" отношения "один-ко-многим" или из одной из таблиц, связанных отношением "один-к-одному". Если в предложение FROM включено более одной таблицы, то
в инструкции DELETE необходимо указать таблицу <таблица>.*, из которой удаляются строки. В условиях отбора можно использовать вложенный запрос, но в нем не должно быть ссылок на таблицу, из которой удаляются строки.
Если в предложении FROM |
указано имя запроса, то он не |
||
должен |
содержать предикат DISTINCT, |
предложения |
|
GROUP |
BY и HAVING |
и оператор |
|
UNION.
Нельзя восстановить записи, удаленные с помощью запроса на удаление. Поэтому рекомендуется сначала просмотреть результаты запроса на выборку, использующего
36