Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка по Microsoft SQL.doc
Скачиваний:
27
Добавлен:
16.12.2018
Размер:
1.83 Mб
Скачать

Добавление, извлечение, модификация и удаление данных в таблицах

Цель работы – изучение синтаксиса и семантики команд INSERT, SELECT, INTO, UPDATE, DELETE, их разделов SELECT, INTO, FROM, WHERE, GROUP BY, HAVING, UNION, ORDER BY, COMPUTE, FOR, OPTION и функций агрегирования, имеющихся в языке Transact- SQL для управления данными SQL Server 2000, а также приобретение навыков применения этих команд для манипулирования данными и использования программы массового копирования BCP (Bulk Copy Program) для включения в базы данных текстовых файлов.

SQL Server 2000 обеспечивает разнообразные механизмы управления данными, такие как ADO, OLE DB, ODBC, DB- Library и команды языка Transact-SQL, являющегося фундаментом всех остальных технологий. Для добавления данных в языке используются команды INSERT и SELECT INTO, для изменения данных – команда UPDATE и для удаления строк из таблиц – команда DELETE. Команда SELECT позволяет реализовать многофункциональный механизм доступа к данным любой сложности.

Команда INSERT позволяет вставить в таблицу одну или несколько строк. Упрощенный синтаксис этой команды таков:

INSERT [INTO] имя модифицируемой таблицы

[WITH (уровень блокировки запроса)]

{[(список колонок модифицируемой таблицы)]

{VALUES (список значений новой строки)\

команда SELECT}}\ DEFAULT VALUES

Если необходимо явно вставлять значения в колонки – счетчики, имеющие свойство

IDENTITY, то для модифицируемой таблицы надо выполнить команду: SET IDENTITY_INSERT имя модифицируемой таблицы ON

Если список столбцов не задан, то сервер будет вставлять данные последовательно во все столбцы, начиная с первого. Для каждого столбца должен быть указан аргумент, имеющий соответствующий тип. Аргументами могут быть константы, выражения соответствующего типа, значение NULL и значение по умолчанию DEFAULT. В списке столбцов можно не указывать столбцы со свойством IDENTITY, столбцы допускающие значение NULL и столбцы типа timestamp.

Если в команде задан источник данных DEFAULT VALUES, то строка будет содержать только значения по умолчанию или значения NULL.

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

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

SELECT список выбираемых колонок исходных таблиц INTO имя автоматически создаваемой таблицы FROM список исходных таблиц

[условия выбора значений из таблиц]

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

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

EXES sp_dboption ‘имя базы данных’, ‘select into/bulkcopy’, ‘on’

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

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

SELECT опции выбора список выбора

[INTO новая таблица]

FROM список исходных таблиц или представлений

[WHERE условие поиска]

[GROUP BY условие группировки] [HAVLNG условия группового поиска]

[ORDER BY выражение для упорядочивания [AS\DESC]]

Части этой команды называются разделами и должна записываться в запросе именно в данном порядке.

Опции выбора определяют количественные характеристики запроса:

ALL – все строки таблицы;

DISTINCT – все несовпадающие строки таблицы; TOP n – первые n несовпадающие строки таблицы; TOP n PERCENT – первые n% несовпадающих строк;

WITH TIES – разрешает вывод дублирующих строк для последних двух вариантов.

Список выбора содержит имена столбцов различных таблиц для формирования результата. Столбцы могут переименовываться с помощью конструкции AS.

Если в качестве списка выбора задана звездочка (*), то в запрос будут включены все столбцы всех таблиц и представлений, заданных в качестве источников данных. Если в списке задана конструкция имя. *, то это означает, в список выбора надо включить все колонки объекта с данным именем. В список выбора можно включить и выражения, тогда их значения будут вычисляться при формировании каждой строки. Эта колонка будет либо безымянной, либо будет иметь имя, заданной конструкцией AS, следующей после выражения. Элемент списка в виде имя. IDENTICOL [AS имя счетчика] позволяет включить в результат колонку – счетчик объекта с данным именем. С помощью ключевого слова POWGVIDCOL аналогичным образом можно включить глобально уникальный идентификатор строк того или иного объекта.