|
Практическая работа 1. 2 Описание проектирования базы данных 2 практическая работа 2 10
Раздел документации сервера T - SQL Help содержит описание каждой команды языка Transact - SQL B и набор примеров их использования. Синтаксис команды определяется с помощью специального метаязыка, основанного на нормальных формах Бекуса Наура (БНФ). Ключевые слова определения без всякого изменения переходят в саму команду; метапеременные, написанные курсивом, должны быть заменены программными именами; разделители (запятая, равно, апостроф и т.д.) также переходят в качестве разделителей в команду. Метасинтаксические знаки имеют следующий смысл:
::= — есть по определению;
| — выбор альтернативы;
[ ] — возможное отсутствие части определения; { }— объединение частей определения для выюора или повторения; [,...n] —повторение предшествующей части1, 2, ...,nраз с разделителемзапятая для этой части (разделитель может быть любой;) <...> —метапеременная,которая имеет свое определение.
4.4.2. Команды SQL для создания, удаления и изменения таблицами Часть языка SQL, которая управляет метаданными, называется Data Definition Language (DDL).
DDL относятся операторы для определения любых содержащихся в базе данных объектов, в том числе и таблиц.
Операторы, определяющие структуру таблиц в MS SQL Server, соответствуют стандарту SQL, и поэтому без изменений будут работать и во многих других СУБД. Таблицы создаются, изменяются и удаляются соответственно командами
Transact-SQL:
При создании новой базы данных сервер автоматически создает 18 системных таблиц для хранения информации о ее структуре и организации, доступ к которым со стороны пользователя запрещен.
Помимо основных и системных таблиц, которые, как правило, постоянно хранятся
базе данных, можно использовать временные таблицы для временного хранения информации, которые автоматически уничтожаются при закрытии соединения с базой данных.
binary(n)
| -двоичные данные фиксированной длины до 8000 байт; для n байтов
|
| выделяется n+4 байта памяти; значения задаются с помощью 16-
|
| ичныхчисел0х<шестнадцатеричныецифры>; функция
|
| DATALENGTH позволяет определить длину поля в байтах;
|
| дополнение нулевыми байтами производится справа.
| image
| - двоичные данные длиной до 2 - 1; место выделяется в виде цепочки
|
| страниц.
| char(n)
| -строковый тип данных фиксированной длины без поддержки
|
| Unicode длиной до 8000 байтов; данные зависят от установленной
|
| кодовой страницы; если для столбца не задана опция NULL, то
|
| строка при необходимости будет дополняться справа пробелами;
|
| если эта опция задана, то дополнение пробелами будет иметь место
|
| при условии ANSI_PADDING=ON, в противном случае пробелы
|
| добавляться не будут.
| var char(n)
| -строковый тип, как и char^^ro не с фиксированной длиной; если
|
| ANSI_PADDING=OFF, то будет выполняться удаление конечных
|
| пробелов, если ANSI_PADDING=ON, то удаление пробелов
|
| производиться не будет.
| Nchar(n)
| -строковый типкак и char(n), но с поддержкой Unicode, поэтому
|
| максимальное количество символов составляет 4000; в этом случае
|
| для строковых констант надо задавать впереди букву N: N'ABC'.
| Nvarchar(n)
| -строковый тип, как varchar(n), но с поддержкой Unicode.
| Text
| -строковый тип без поддержки Unicode длиной до 2 Гбайт; память
|
| выделяется страницами по 8 Кбайт, связываемыми в цепочку; можно
|
| использовать встроенные функции: DATALENGTH, PATINDEX,
|
| SUBSTRING, TEXTPTR, TEXTVALID, READTEXT, SET TEXTSIZE,
|
| UPDATETEXT, WRITETEXT.
| Ntext
| -строковый тип, как и text, но с поддержкой Unicode, поэтому длина
|
| строки не более 1 Гбайта.
| Int
| -целый тип длиной в 4 байта и с диапазоном от -231 до 231-1. Smalling
|
| -целый тип длиной в 2 байта с диапазоном от -215 до 215-1. Tinyint -
|
| целый тип длиной в 1 байт и диапазоном от 0 до 255.
| Bigint
| -целый тип длиной в 8 байт и с диапазоном от-263 до 263-1.
|
| Decimal[(p[,s])] -десятичный двоично-кодированный тип с p
|
| десятичными разрядами, из которых s - дробных; максимальное
|
| значение p достигает 38, поэтому диапазон значений составляет от -
|
| (1038-1) до 1038-1.
| Numeric[(p[,s])]
| -тип, аналогичный типу decimal[(p[,s])].
| Float[(n)]
| -плавающий (приблизительный) тип длиной в 4 байта и с диапазоном
|
| от -1.79x10308 до 1.79x10308; значение n определяет количество бит
|
| для хранения мантисы и может принимать значения от 1 до 53.
| Real
| -плавающий тип, являющийся аналогом float(240).
| Datetime
| -тип данных для хранения даты (4 первых байта) и времени (4
|
| последних байта) в диапазоне от 1.1.1753 и до 31.12.9999 года; дата
|
| хранится в виде смещения относительно базовой даты 1.1.1753, а
|
| время является количеством миллисекунд после полуночи; формат
|
| для пользователя: MMM DD YYYY hh:
| Smalldatetime
| -тип данных для хранения даты (первых 2 байта) и времени
|
| (последние 2 байта) в диапазоне от 1.1.1900г. до 6.6.2079г., время
|
| задается с точностью до минуты. Money -тип данных для хранения
|
| больших денежных величин с точностью до 4 знаков после запятой в
|
| диапазоне от -922 337 203 685 477.5808 до +922 337 203 685 477.5807;
|
| для хранения данных отводится 8 байт. Smallmoney -тип данных для
|
| хранения нормальных денежных величин с точностью до 4 знаков
|
| после запятой в диапазоне от -214 748.3648 до 214 748.3647; для
|
| хранения данных отводится 4 байта.
| Bit
| -битовый (логический) тип со значениями 0 и 1; для хранения
|
| выделяется 1 разряд байта памяти.
| Timestamp
| -тип данных временный штамп для учета числа изменений данных в
|
| записи (версий строки row version); значение timestamp уникально в
|
| пределах базы данных и позволяет идентифицировать конкретное
|
| значение записи; тип аналогичен binary(8), если хранение NULL не
|
| разрешено и varbinary(8), если разрешено. Uniqueidentifier - тип
|
| данных для хранения глобальных уникальных идентификаторов
|
| длиной в 16 байт, генерируемых функций NEWID и используемых
|
| для идентификации строк (записей); при генерации используется
|
| номер сетевой карты компьютера и текущее время.
|
|
| Sysname
| -тип данных для хранения имен объектов базы данных; аналог
|
| nvarchar (128). Sql_variant
| -вариантный тип
| данных для хранения
|
| данных любого типа,
| кроме
| text, ntext,image,timestamp;
| для
|
| получения
| информации
| о
| природе
| хранимых
| данных
|
| используется функция SQL_VARIANT_PROPERTY().
|
|
| Table
| -тип таблицы для временного
| хранения
| наборов
| данных
| с
|
| использованием переменных.
|
|
|
|
| |
|
|