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

2.3. Удаление баз данных

Для удаления базы данных используется следующая команда:

DROP DATABASE database_name […..n]

Аргумент database_name задает имя базы данных, которую необходимо удалить. Одной командой можно удалить несколько баз данных, перечислив их через запятую.

Пример 3.

DROP DATABASE Kafedra_1.

2.4. Работа с таблицами

Вся хранящаяся в базе данных пользовательская информация содержится в объектах, называемых таблицами (tables).

Таблицы имеют следующую структуру.

  • Столбцы (column). Каждый столбец представляет собой атрибут или совокуп­ность атрибутов объектов, например идентификационные номера служащих, рост, цвет машин и т.п. Часто в отношении столбца используется термин поле с указанием имени, например "в поле Name".

  • Строки (rows). Каждая строка (или запись) представляет собой совокупность атрибутов конкретного объекта, например, в строке может содержаться иден­тификационный номер служащего, размер оклада этого служащего, год его рождения, цвет глаз и т. п. Строки таблиц не именуются.

Некоторые поля в строке могут быть вычисляемыми (computed) – в таких полях указывается не конкретное значение, а выражение (формула), в соответствии с которым генерируется значение для этого поля. Выражение может включать имена других столбцов таблицы, константы, вызовы функций, а также любые операторы. Использование переменных запрещается.

Виды таблиц:

  • Системные таблицы. SQL Server хранит данные, определяющие конфигурацию сервера и всех его баз данных, в специальном наборе таблиц, известном как системные таблицы (system tables). Следует разделять данные, относящиеся к серверу, и данные, относящиеся к конкретной базе данных. Первые хранятся в системной базе данных master, тогда как вторые – в соответствующей базе данных.

Поскольку данные, хранящиеся в системных таблицах, играют весьма важную роль в работе сервера, необходимо обезопасить их от удаления или неверного изменения. Поэтому пользователь не должен напрямую вносить изменения в системные таблицы. По умолчанию прямой доступ к системным таблицам (то есть доступ посредством команд INSERT, UPDATE и DELETE) запрещен. Тем не менее с помощью запроса SELECT пользователи могут реализовать непосредственную выборку дан­ных из системных таблиц.

Для изменения данных в системных таблицах необходимо использовать специ­альные системные хранимые процедуры, поставляемые вместе с SQL Server и расположенным в базе данных master. Другой альтернативой является примене­ние приложений, использующих интерфейс SQL-DMO API. Имеющийся набор храни­мых процедур охватывает практически все возможные ситуации управления сер­вером и базами данных, так что необходимость прямого доступа к системным таблицам почти полностью исключена. Кроме того, использование в прикладных приложениях хранимых процедур позволяет гарантировать, что работоспособность программы сохранится даже в случае возможного изменения структуры систем­ных таблиц в следующих версиях SQL Server.

  • Временные таблицы. SQL Server поддерживает так называемые временные таблицы (temporary tables), предназначенные для временного хранения информации. Временную таблицу можно использовать, к примеру, для временного хранения промежуточных резуль­татов при сложных расчетах. Временные таблицы сохраняются не в текущей базе данных, а в системной базе данных tempdb (даже если при создании временной таблицы вы явно укажете какую-либо другую базу данных, это будет проигнори­ровано и таблица все равно будет создана в базе данных tempdb).

В распоряжении пользователей имеются два вида временных таблиц.

  • Локальные временные таблицы (local temporary tables). Названия этих таблиц начинаются с одного символа #, например #results. Таким образом, для созда­ния локальной временной таблицы необходимо перед именем таблицы при ее создании указать один символ #. В дальнейшем для ссылки на созданную таб­лицу в ее имени также необходимо указывать символ #.

Локальные временные таблицы существуют до тех пор, пока существует со­единение со SQL Server, в котором эти таблицы были созданы, и автоматичес­ки уничтожаются при его закрытии.

  • Глобальные временные, таблицы (global temporary tables). Доступ к временным таблицам этого типа может быть получен из любого соединения, установлен­ного с текущим сервером, и независимо от того, в каком именно из этих соеди­нений была создана глобальная временная таблица. При этом также не важно, какой конкретно пользователь создал эту временную таблицу и в контексте какой базы данных.

Названия глобальных временных таблиц начинаются с символов ##, например ##minutes. Таким образом, чтобы создать глобальную временную таблицу, достаточно в начале ее имени указать символы ##. Однако так как глобальная временная таблица видна из любого соединения, ее имя должно быть уникально в пределах сервера.

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

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

  • какие данные, каких типов должны быть включены в таблицы?

  • какие столбцы будут составлять каждую из таблиц (если потребуется, то с указанием их размера)? При этом необходимо стремиться хотя бы к третьей нормальной форме. Одновременно с этим требуется выбрать имена для столбцов таблицы. (SQL Server позволяет включать в одну таблицу до 1024 столбцов.)

  • какие столбцы могут содержать значения NULL?

  • будут ли использованы ограничения целостности или значения по умолчанию и правила для столбцов и если будут, то где?

  • необходимо ли индексирование столбцов? Если да, то какие типы индексов, для каких столбцов будут применены?

  • какие столбцы будут входить в первичные и внешние ключи?

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]