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

17.Основные команды языка dml

DML - Data Manipulation Language- язык манипулирования данными. Используется для манипулирования информацией внутри объектов реляционной базы данных посредством трех основных команд:

  • INSERT (добавление строки);

  • UPDATE (изменение строки в таблице);

  • DELETE (удаление строки в таблице).

ДОБАВЛЕНИЕ:

Оператор INSERT используется для добавления записи и имеет формат

INSERT INTO <имя таблицы> [(имя столбца [,..n])] {VALUES (значение [,..n]) | <SELECT_оператор>}

Пример: INSERT INTO студент (фамилия, шифр) VALUES(‘Петров ‘, 1111).

Форма оператора insert с параметром values предназначена для вставки единственной строки в таблицу. Список столбцов указывает столбцы, в которые будут присвоены значения в добавляемых записях. Этот список может быть опущен, тогда подразумеваются все столбцы по порядку. Если указывается конкретный список имён полей, то любые пропущенные в нём столбцы должны быть объявлены при создании таблицы как NULL, за исключением тех случаев, когда при описании столбца использовался параметр default. Список значений должен соответствовать списку столбцов следующим образом:

1) количество элементов в обоих списках должно быть одинаково;

2) должно существовать прямое соответствие между позициями элемента в обоих списках;

3) типы данных элементов в списки значений должны быть совместимы с типами данных соответствующих столбцов таблицы.

Вторая форма оператора insert с параметром select позволяет скопировать множество строк из одной таблицы в другую. Вставляемые в таблицу строки должны в точности соответствовать строкам результирующей таблицы, созданной при выполнении вложенной операции, причём все перечисленные ограничения также применимы.

INSERT INTO итог (название, месяц, стоимость) SELECT название товара, месяц сделки, сумма FROM товар_сделка where сумма=6599

УДАЛЕНИЕ:

DELETE FROM <имя таблицы> [WHERE <условия отбора>]

Без where удалится вся информация, но таблица останется, с where удалится по условию.

ОБНОВЛЕНИЕ

UPDATE <имя таблицы> SET <имя столбца=название>[,..n] [where <условие отбора>]

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

UPDATE mark_st

SET mark = ‘5’

WHERE id_st = 100 AND id_ex = 10

18.Оператор выбора select

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

SELECT [ALL/DISTINCT] <список атрибутов>/*

FROM <список таблиц>

[WHERE <условие выборки>]

[ORDER BY <список атрибутов>]

[GROUP BY <список атрибутов>]

[HAVING <условие>]

[UNION<выражение с оператором SELECT>]

В квадратных скобках указываются элементы, которые могут в запросе отсутствовать.

Ключевое слово ALL означает, что результатом будут все строки, удовлетворяющие условию запроса, в том числе и одинаковые строки. DISTINCT означает, что в результирующий набор не включаются одинаковые строки. Далее идет список атрибутов исходной таблицы, которые будут включены в таблицу-результат. Символ* означает, что в таблицу-результат включаются все атрибуты исходной таблицы.

Обязательным ключевым словом является слово FROM, за ним следуют имена таблиц, к которым осуществляется запрос.

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

Ключевое слово ORDER BY сортирует строки таблицы-результата по указанному списку атрибутов. Сортировка может выполняться по нескольким полям, в этом случае они перечисляются за ключевым словом ORDER BY через запятую. Способ сортировки задается ключевым словом, указываемым в рамках параметра ORDER BY следом за названием поля, по которому выполняется сортировка. По умолчанию реализуется сортировка по возрастанию. Явно она задается ключевым словом ASC.Для выполнения сортировки в обратной последовательности необходимо после имени поля, по которому она выполняется, указать ключевое слово DESC.

В предложении с ключевым словом GROUP BY задается список атрибутов группировки. Для запросов, содержащих секцию GROUP BY существует важное ограничение: такие запросы могут включать в качестве результата столбцы, по которым производится группировка. При наличии в операторе SELECT фразы GROUP BY каждый элемент списка в предложении SELECT должен иметь единственное значение для всей группы. Более того, предложение SELECT может включать только следующие типы элементов: имена полей, итоговые функции, константы и выражения, включающие комбинации перечисленных выше элементов.

Все имена полей, приведенные в списке предложения SELECT, должны присутствовать и во фразе GROUP BY - за исключением случаев, когда имя столбца используется в итоговой функции. Обратное правило не является справедливым - во фразе GROUP BY могут быть имена столбцов, отсутствующие в списке предложения SELECT.

Если совместно с GROUP BY используется предложение WHERE, то оно обрабатывается первым, а группированию подвергаются только те строки, которые удовлетворяют условию поиска.

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

В предложении HAVING задаются условия, накладываемые на каждую группу.

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

IN – вхождение в некоторое множество значений;

BETWEEN – вхождение в некоторый диапазон значений;

LIKE – проверка на совпадение с образцом;

IS NULL – проверка на неопределенное значение.

Оператор IN используется для проверки вхождения в некоторое множество значений.

Оператор LIKE применим исключительно к символьным полям и позволяет устанавливать, соответствует ли значение поля образцу. Образец может содержать специальные символы:

  • % – вместо этого символа может быть подставлено любое количество произвольных символов.

  • _ заменяет один символ строки.

  • [] – вместо символа строки будет подставлен один из возможных символов, указанный в этих ограничителях.

  • [^] – вместо соответствующего символа строки будут подставлены все символы, кроме указанных в ограничителях.

Оператор BETWEEN используется для поиска значения внутри некоторого интервала, определяемого своими минимальным и максимальным значениями. При этом указанные значения включаются в условие поиска.

Оператор IS NULL используется для сравнения текущего значения со значением NULL – специальным значением, указывающим на отсутствие любого значения. NULL – это не то же самое, что знак пробела (пробел – допустимый символ) или ноль (0 – допустимое число). NULL отличается и от строки нулевой длины (пустой строки).

Обработка элементов оператора select выполняется в следующей последовательности:

1) обрабатывается from – определяются имена используемых таблиц.

2) where – выполняется фильтрация строк объекта в соответствии с условиями.

3) group by (если есть) – образуются группы строк с одинаковым значением в указанном столбце.

4) having – фильтруются группы строк объектов в соответствии с условием.

5) select – какие столбцы должны быть в выходных данных.

6) Order by – сортировка.

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