Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Операторы создания и удаления индексов

Удаление таблиц

Обновление таблиц

Создание таблиц

Операторы определения данных

Создание таблицы осуществляется посредством оператора create table. Его упрошенная версия выглядит следующим образом:

CREATE TABLE Имя_таблииы

(Имя_столбца Тип_данъи [NULL | NOT NULL ] [,...]}

Оператор такого вида приведет к созданию таблицы с именем <Имя_таблицы>, которая будет содержать столько столбцов, сколько их задано в операторе. При определении столбца необходимо задать его имя, тип данных, к которому будут относиться значения этого столбца, а также определить, можно ли в качестве значения рассматриваемого столбца использовать ключевое слово null. Ключевым словом null помечается такой столбец, который может содержать неопределенные значения. Определения столбцов первичных ключей отношений всегда должны содержать ключевые слова rot null.

Для того чтобы создать таблицу s1 БД СЕССИЯ, необходимо использовать оператор вида

CREATE TABLE s1 (

ФИО VARCHAR (20) NOT NULL,

Дисциплина VARCHAR (20) NOT NULL,

Оценка SMALLINT NOT NULL);

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

CREATE TABLE имя_таблицы

({ имя_столбца тип_даных [NOT NULL] [UNIQUE]

[DEFAULT значение по умолчанию]

[CHECK (условие проверки на допустимость) [,...] }

[PRIMARY KEY (список столбцов),]

{[UNIQUE (список столбцов),] [,...]}

{[FORING KEY {список столбцов внешних ключей)

REFERENCES имя родительской таблицы [(список столбцов ключей-кандидатов)],

[MATCH {PARTIAL | FULL}

[ON UPDATE правило ссылочной целостности]

[ON DELETE правило ссылочной целостности]] [,...]}

{[CHECK (условие проверки на допустимость)] [,...]})

 

Перепишем оператор создания таблицы s1 БД Сессия следующим образом:

CREATE TABLE sI (

ФИО VARCHAB (20) NOT NULL,

Дисциплина VAHCHAR (20) NOT NULL,

Оценка SMALLINT NOT NULL);

PRIMARY KEY (ФИО, Дисциплина),

FORING KEY ФИО REFERENCES S2

ON UPDATE CASCADE

ON DELETE CASCADE);

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

В уже созданную таблицу изменения могут быть внесены с помощью оператора alter table, который имеет следующий обобщенный формат:

ALTER TABLE имя_таблицы

[ADD [COLUMN] имя столбца тип даных [NOT NULL] [UNIQUE]

[DEFAULT значение по умолчанию] [CHECK (условие проверки на допустимость)]]

[DROP [COLUMN] ] имя_столбца [RISTRICT | CASCADE]]

[ADD [CONSTRAINT [имя ограничения)] ограничение]

[DROP CONSTRAINT имя ограничения [RISTRICT I CASCADE]]

[ALTER [COLUMN] SET DEFAULT значение по умолчанию]

[ALTER (COLUMN] DROP DEFAULT]

В данном формате предусмотрены возможности для выполнения ряда действий:

· добавить новый столбец в существующую таблицу — ADD COLUMN;

· удалить столбец из существующей таблицы — DROP COLUMN;

· добавить в определение таблицы новое ограничение — ADD CONSTRAINT;

· удалить из определения таблицы существующее ограничение — DROP

· constraint;

· задать для существующего столбца значение по умолчанию — ALTER [COLUMN] SET DEFAULT;

· отменить установленное для столбца значение по умолчанию ALTER [COLUMN] DROP DEFAULT.

Добавить в таблицу s1 столбец Группа, содержащий символьный тип данных, можно с помощью оператора:

ALTER TABLE s1

ADD Группа varchar (7) NOT NULL;

Ставшая ненужной таблица может быть удалена из базы данных оператором

DROP TABLE имя таблицы [RISTRICT I CASCADE].

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

Удалим таблицу s1:

DROP TABLE s1;

Поскольку базы данных предназначены для хранения больших объемов информации, эффективность их использования в информационных системах во многом определяется скоростью выборки данных. Для увеличения скорости выборки в БД обычно используют специальную структуру, которая называется индексом. Стандарт языка SQL не предусматривает использование индексов. Но тем не менее разработчики СУБД охотно идут на включение средств поддержки индексов в систему, несмотря на то, что наличие индекса увеличивает нагрузку на систему из-за необходимости обновлять его при каждом изменении данных таблицы, поскольку существенное повышение скорости запросов окупает данные затраты.

Операторы создания и удаления индекса имеют следующий формат. Создать индекс:

CREATE [UNIQUE] INDEX имя_индекса

OK имя_таблицы (столбец [ASC| DESC] [,_.])

 

Удалить индекс:

DROP INDEX имя_индекса

Если в операторе create index используется квалификатор unique, to уникальность значений индекса автоматически поддерживается системой. Для каждого из ключевых столбцов можно указать порядок следования значений: по возрастанию — asc (используется по умолчанию) и по убыванию — DESC

<== предыдущая лекция | следующая лекция ==>
Многотабличные запросы | Транзакции
Поделиться с друзьями:


Дата добавления: 2014-01-20; Просмотров: 405; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.