Удаление баз данных
Для удаления базы данных используется следующая команда: 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? - будут ли использованы ограничения целостности или значения по умолчанию и правила для столбцов и если будут, то где? - необходимо ли индексирование столбцов? Если да, то какие типы индексов, для каких столбцов будут применены? - какие столбцы будут входить в первичные и внешние ключи? Типы данных Одним из свойств столбца является его тип данных. Поскольку каждый столбец представляет один признак объекта, данные в каждом столбце подобны, то есть тип данных значений, хранящихся в одном и том же столбце, одинаков. SQL Server имеет набор встроенных типов данных, называемых системными. Этот набор приведен в табл. 1. Таблица 1. Типы данных, используемые в SQL Server 2000
Итак, каждый столбец таблицы должен содержать данные, соответствующие типу данных столбца. Например, допускается неявное преобразование типа данных int в тип данных decimal или значений типа данных varchar в значения типа данных char. При необходимости можно использовать функции преобразования типов данных.
Значение NULL
NULL – это специальное значение, представляющее собой отсутствие любого значения. NULL – это не то же самое, что знак пробела или ноль. Пробел – это допустимый символ, а 0 – допустимое число. NULL также отличается от строки нулевой длины (пустой строки). Столбцы могут разрешать или запрещать хранение значений NULL. Если столбец запрещает хранение значений NULL, то в таблицу нельзя вставлять строки, имеющие значение NULL для этого столбца. Создание таблиц Создание таблицы выполняется при помощи команды CREATE TABLE. Данная команда имеет довольно сложный синтаксис: CREATE TABLE [database_name.[ owner ]. | owner. ] table_name ({ <column_definition> | column_name AS computed_co1umn_expression I < table_constraint > } [ __n ] ) [ ON { filegroup | DEFAULT } ] Рассмотрим последовательно все ее параметры. - database_name – название базы данных, в которой создается таблица. Если значение этого параметра опускается, то таблица создается в текущей базе данных. Прежде чем пользователь сможет создать таблицу, ему должны быть предоставлены соответствующие права в базе данных. - owner – с помощью этого параметра указывается имя пользователя, который будет являться владельцем создаваемой таблицы. Этот пользователь уже должен существовать в базе данных, в которой создается таблица. - table_name – имя создаваемой таблицы. При выборе имени для таблицы необходимо следовать стандартным правилам формирования идентификаторов объектов. Комбинация имени таблицы и ее владельца (owner.tablename) должна быть уникальной в пределах базы данных. Если таблица создается не в текущей базе данных, необходимо включить в описание имени таблицы ссылку на требуемую базу данных. Длина имени таблицы не должно превышать 128 символов. Если в начале имени указываются символы # или ##, то будут созданы соответственно локальная и глобальная временные таблицы. Длина имен временных таблиц, включая символы # и ##, не должна превышать 116 символов. - column_name – название столбца таблицы. Названия столбцов должны соответствовать правилам для идентификаторов и быть уникальными в пределах таблицы. Параметр column_name может быть опущен для столбцов, имеющих тип данных timestamp. По умолчанию столбцу с таким типом данных присваивается имя timestamp. - computed_column_expression – выражение, задающее значение для вычисляемого столбца. Вычисляемые столбцы являются виртуальными столбцами, то есть физически такие столбцы в таблице не хранятся. Они вычисляются с использованием значений столбцов той же самой таблицы - ON {filegroup | DEFAULT} – обозначает группу файлов, в которой предполагается хранить таблицу. Данная файловая группа уже должна существовать для базы данных. Если указан идентификатор DEFAULT или описанный параметр не определяется вообще, таблица будет сохранена в файловой группе по умолчанию. Помимо собственно таблицы параметр ON {filegroup | DEFAULT} может быть указан и для ограничений целостности PRIMARY KEY и UNIQUE. Для работы этих ограничений SQL Server автоматически создает индекс, который и будет расположен в указанной группе файлов. Если явно не указано, в какой группе файлов следует хранить данные индекса, то они будут сохранены в той же группе файлов, что и сама таблица. Рассмотрим пример создания таблицы " Students ", содержащей такие столбцы, как: " ID " – первичный ключ, идентификатор записи; " Name " – имя студента; " Surname " – отчество студента; " Birth " – дата рождения студента; " _ID_Group " – идентификатор группы студента: Пример 4. USE Kafedra CREATE TABLE Students ( ID int IDENTITY (1, 1) PRIMARY KEY, Name varchar (50) NOT NULL, Surname varchar (50) NOT NULL, Birth datetime NOT NULL, ID_Group int NOT NULL )
Читайте также: Mikalis База данных о коллекции Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|