Создание базы данных с помощью инструкций SQL

RSS, Twitter, Vkontakte, Facebook

Язык структурированных запросов

Создание базы данных «sql_training_st.mdb» с помощью инструкций SQL

Автор: Владимир Ткаченко

Источник: Обучение в интернет

Рассмотрим алгоритм создания БД на основе модели «сущность – связь» в СУБД Access 2007 с помощью запросов SQL. Как следует из модели "сущность-связь" база данных должна содержать четыре таблицы: Группы студентов, Студенты, Дисциплины, Успеваемость. Открываем базу данных «sql_training_st.mdb», которая уже содержит две таблицы "Группы студентов" и "Студенты", созданные с помощью команды SQL create table.

Инструкция SQL для создания структуры таблицы «Группы»:

create table Группы
(КодГруппы COUNTER CONSTRAINT PrimaryKey PRIMARY KEY,
Название char(6),
Курс int,
Семестр int);

Инструкция SQL для создания структуры таблицы «Студенты»:

create table Студенты
(КодСтудента COUNTER CONSTRAINT PrimaryKey PRIMARY KEY,
КодГруппы int,
Фамилия char(20),
Имя char(15),
Отчество char(15),
Пол char(1),
Дата_рождения DATE,
Место_рождения MEMO,
FOREIGN KEY (КодГруппы) REFERENCES Группы (КодГруппы));

Затем создаем структуру таблицы «Дисциплины». Для этого в окне БД щелкаем левой кнопкой мыши на вкладке Создание и выбираем команду "Конструктор запросов". В результате в окне редактирования откроется объект «Запрос1» и окно диалога «Добавление таблицы». Закроем окно диалога, щелкнув левой кнопкой мыши на пиктограмме «Закрыть» в правом верхнем углу этого окна.

Далее выберем режим SQL, выполнив команду Вид/ Режим SQL. Удаляем появившуюся в окне запроса команду SELECT и вводим с клавиатуры следующую команду:

create table Дисциплины
(КодДисциплины COUNTER CONSTRAINT PrimaryKey PRIMARY KEY,
Название char(15),
Кол_часов int);

SQL create table Дисциплины
Рис. 1. Create table Дисциплины

Затем необходимо выполнить этот запрос, щелкая на пиктограмме «Выполнить». В результате выполнения команды «create table Группы» в «Области переходов» появится объект - «Дисциплины». Далее следует закрыть "Запрос1", и при этом не сохранять макет или структуру запроса "Запрос1".

Создаем следующую таблицу "Успеваемость".

create table Успеваемость
(КодОценки COUNTER CONSTRAINT PrimaryKey PRIMARY KEY,
КодДисциплины int,
КодСтудента int,
Оценка char(8),
Вид_контроля char(7),
FOREIGN KEY (КодДисциплины) REFERENCES Дисциплины (КодДисциплины),
FOREIGN KEY (КодСтудента) REFERENCES Студенты (КодСтудента));

SQL create table Успеваемость
Рис. 2. Create table Успеваемость

Необходимо отметить, что в структуре таблицы "Студенты" для поля КодГруппы (вторичный ключ) установите значение Индексированного поля: Да (Совпадения допускаются) и тип данных - мастер подстановок. В структуре таблицы "Успеваемость" для поля КодСтуденты (вторичный ключ) и поля КодДисциплины (вторичный ключ) установите значение Индексированного поля: Да (Совпадения допускаются) и тип данных - мастер подстановок.

СУБД Access 2007 sql_training_st
Рис. 3. БД sql_training_st

Схема данных СУБД Access 2007 sql_training_st представлена на рис. 4

Схема данных СУБД Access 2007 sql_training_st
Рис. 4. БД sql_training_st

Скачать sql_training_st.mdb

Подпишитесь на мою рассылку СУБД MS Access 2003, 2007 -это просто!