Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Создание БД в SQLite.doc
Скачиваний:
131
Добавлен:
02.04.2015
Размер:
331.26 Кб
Скачать

Создание базы данных

Чтобы создать базу данных в SQLiteSpy, необходимо выбрать пункт меню File -> New Database… После указания имени файла, в котором будет располагаться база данных, открывается окно с пустой структурой БД.

Пусть наша база будет содержать сведения об исполнителях и их альбомах. В ней будут 2 таблицы: «Исполнители» и «Альбомы». Создадим их. Для этого нам нужно написать для них генерирующий скрипт в окне редактирования (верхней правой части главного окна).

В языке SQL таблицы создаются с помощью оператора create table, после которого идет имя новой таблицы, а далее в скобках через запятую указывается список колонок, которые мы хотим видеть в таблице, с указанием типов данных, которые будут в них храниться. Помимо этого для каждой колонки можно задать следующие ограничения:

NOT NULL – колонка является обязательной (не может содержать пустых ячеек);

PRIMARY KEY – колонка будет первичным ключом (при этом автоматически накладывается ограничение NOT NULL). В таблице не может быть двух строк с одинаковым значением первичного ключа, таким образом, зная первичный ключ, можно однозначно найти строку в таблице;

UNIQUE – колонка не может содержать повторяющихся значений (является дополнительным ключом);

FOREIGN KEY…REFERENCES – колонка может содержать только те значения, которые находятся в некоторой колонке другой таблицы (внешний ключ);

DEFAULT – значение по умолчанию.

create table Исполнители (

IdИсполнителя integer primary key,

ИмяИсполнителя VARCHAR(30));

Так мы создаем таблицу с именем «Исполнители», в которой будет 2 колонки: «IDИсполнителя» типа INTEGER (целое число) и «ИмяИсполнителя» типа VARCHAR(30) (текстовое значение). Первая колонка будет первичным ключом (PRIMARY KEY).

Иногда может потребоваться, чтобы первичным ключом была не одна колонка, а несколько (т.н. составной ключ). Для этого необходимо использовать такой синтаксис:

CREATE TABLE T1 (

A INT,

B INT,

C INT,

PRIMARY KEY (A, B));

Здесь мы создаем таблицу T1 с тремя колонками (A, B, C), две из которых (A, B) являются частью первичного ключа.

Все скрипты нечувствительны к регистру, т.е. строчные и прописные буквы неразличимы.

Выполнить скрипт можно нажав клавишу F9 или выбрав пункт меню Execute -> Execute SQL. Если в скрипте есть ошибка, то SQLiteSpy выведет окно с ее описанием. При успешном выполнении скрипта ничего выведено не будет, а в структуре БД появится новая таблица:

Рисунок 11 – Результат выполнения скрипта

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

Сохраним скрипт (File -> Save SQL).

Теперь займемся альбомами. Допишем в наш скрипт следующие строки:

create table Альбомы (

IdАльбома integer primary key,

FOREIGN KEY IDИсполнителя INTEGER NOT NULL

REFERENCES Исполнители(IDИсполнителя),

Название VARCHAR(30) NOT NULL,

Год INT);

Здесь мы создаем таблицу, в которой будут содержаться альбомы тех (и только тех) исполнителей, которые занесены в таблицу «Исполнители». Для этого мы указываем, что поле «IDИсполнителя» является ссылкой (внешним ключом), ссылающейся на поле IDИсполнителя таблицы «Исполнители».

При попытке выполнить скрипт, мы увидим сообщение об ошибке, говорящее, что таблица уже существует. Так SQLite реагирует на попытку создания таблицы, чье имя совпадает с уже существующей. В нашем случае это таблица «Исполнители», которая создается в этом же скрипте.

Чтобы выполнить только ту часть скрипта, которая создает таблицу «Альбомы», минуя создание таблицы «Исполнители», выделим вторую половину скрипта и нажмем Ctrl-F9. Для избежания дальнейших неудобств подобного рода, в случае, если придется создавать таблицы заново, добавим в начало скрипта следующие строки:

drop table if exists Исполнители;

drop table if exists Альбомы;

Они будут удалять таблицы (если они уже существуют) перед их созданием.

В SQLite можно переименовывать таблицы и добавлять к уже созданным таблицам новые колонки. И то, и другое делается с помощью команды ALTER TABLE.

Рассмотрим примеры для созданной ранее таблицы T1. Переименуем ее и добавим обязательную для заполнения колонку D:

alter table T1 rename to TABLE1;

alter table TABLE1 add D INT NOT NULL;

Надо наполнить таблицы «Исполнители» и «Альбомы» данными. Это делается построчно.

Для добавления данных в существующую таблицу используется оператор INSERT INTO. После него указывается ключевое слово values, а затем, опять в скобках, - список значений, которые подлежат добавлению. Порядок значений должен строго соответствовать порядку колонок в таблице.

Допишем в конец скрипта: