
- •Лабораторная работа №1 Ввод sql-инструкций средствами Query Analyser
- •Основные сведения
- •Лабораторное задание
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа №2 Выборка данных из базы данных с использованием языка sql
- •Порядок выполнения работы
- •Содержание отчета
- •Основные сведения Язык sql
- •Оператор select
- •Предикаты условия поиска
- •Агрегатные функции
- •Операции реляционной алгебры
- •Работа с утилитой isql/w
- •Описание задания База данных книготорговой компании
- •Лабораторные задания типа а
- •Лабораторные задания типа b
- •Варианты лабораторных заданий
- •Лабораторная работа №3 Создание, модификация и удаление объектов базы данных с использованием sql
- •Порядок выполнения работы Изучение языка баз данных
- •Содержание отчета
- •Типы данных Transact-sql
- •Создание таблицы
- •Определение столбца
- •Определение ограничений целостности таблицы
- •Изменение таблиц
- •Создание представлений
- •Операторы, связанные с курсором
- •Одиночные операторы манипулирования данными
- •Создание индекса
- •Удаление объектов базы данных
- •Получение справочной информации об объектах базы данных
- •Варианты заданий
Одиночные операторы манипулирования данными
Каждый из операторов этой группы является абсолютно независимым от другого оператора.
<оператор выборки>::= SELECT [ALL | DISTINCT] <список выборки> [INTO <список спецификаций целей>]<табличное выражение>
Результатом выполнения оператора выборки является таблица, состоящая не более чем из одной строки. После выполнения оператора цели содержат соответствующие поля результирующей строки.
<оператор поискового удаления>::= DELETE FROM <имя таблицы> [WHERE <условие поиска>]
При выполнении оператора последовательно просматриваются все строки таблицы, и те строки, для которых результатом вычисления условия поиска является “истина”, удаляются из таблицы. При отсутствии раздела WHERE удаляются все строки таблицы.
Примеры:
DELETE authors
DELETE titles WHERE type= "business"
<оператор поисковой модификации>::= UPDATE <имя таблицы> SET <предложение установки >[{,<предложение установки>}…] [WHERE <условие поиска>]
При выполнении оператора просматриваются все строки таблицы, и каждая строка, для которой результатом вычисления условия поиска является “истина”, изменяется в соответствии с разделом SET.
Пример:
UPDATE publishers SET pub_name= "Joe’s Press" WHERE pub_id= "1234"
<оператор включения>::= INSERT INTO <имя таблицы>[(<список столбцов>)] {VALUES (<список значений >) | <подзапрос>}
Оператор включения добавляет строку в таблицу. При это строка формируется или из списка значений раздела VALUES, или вычисляется с помощью подзапроса. Список столбцов определяет те столбцы, для которых явно будет указано их значение. Причем i-му столбцу в списке столбцов соответствует i-ое значение из списка значений или i-я строка результата подзапроса. Если список столбцов опущен, то для каждого столбца таблицы должно быть точно указаны (или вычислены) значения, в порядке, в котором они были определены.
При вставке символьных данных или поиске значения в конструкции WHERE значение необходимо передавать в одиночных или двойных кавычках. Для вставки в столбец двоичных данных их нужно указывать без кавычек, начиная с 0х и задавая два шестнадцатеричных символа для каждого байта данных.
Примеры:
INSERT INTO publishers (pub_id, pub_name, cite, state) VALUES (‘1234’, ‘Stendahl Publishing’, ‘Paris’, ‘France’)
INSERT INTO binary_example(id, bin_column) VALUES(19, 0xa134e2ff)
Создание индекса
Индекс представляет собой объект, ускоряюший выполнение запросов. Синтаксис оператора создания индекса имеет вид:
<оператор создания индекса>::= CREATE [UNIQUE] INDEX <имя индекса> ON <имя таблицы> (<имя столбца> [ASC | DESC] [{,<имя столбца>[ASC | DESC]}..])
Описатель уникальности UNIQUE указывает, что никаким двум строкам в индексируемой базовой таблице не позволяется принимать одно и тоже значение для индексируемого столбца (или комбинации столбцов) в одно и то же время. Описатели ASC и DESC определяют, что столбец должен быть отсортирован в возрастающем или убывающем порядке в пределах индекса. В Transact-SQL описатели ASC и DESC не используются.