Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
101
Добавлен:
15.06.2014
Размер:
1.7 Mб
Скачать

3.7.10 Оператор изменения записей

Оператор изменения записей имеет формат вида:

UPDATE <имя таблицы>

SET <имя столбца> = {<выражение>, NULL }

[,SET <имя столбца> = {<выражение> , NULL}... ]

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

Выполнение оператора UPDATE состоит в изменении значений в опре­деленных операндом SET столбцах таблицы для тех записей, которые удов­летворяют условию, заданному операндом WHERE.

Новые значения полей в записях могут быть пустыми (NULL), либо вычисляться в соответствии с арифметическим выражением. Правила записи арифметических и логических выражений аналогичны соответствующим правилам оператора SELECT.

Пример 8. Изменение записей.

Пусть необходимо увеличить на 500 единиц зарплату тем служащим, ко­торые получают не более 6000 (по таблице ЕМР). Запрос, сформулирован­ный с помощью оператора SELECT, может выглядеть так:

UPDATE emp

SET sal = 6500

WHERE sal <= 6000

3.7.11 Оператор вставки новых записей

Оператор вставки новых записей имеет форматы двух видов:

INSERT INTO <имя таблицы>

[(<список столбцов>)]

VALUES (<список значений>)

и

INSERT INTO <имя таблицы>

[(<список столбцов>)]

<предложение SELECT>

В первом формате оператор INSERT предназначен для ввода новых записей с заданными значениями в столбцах. Порядок перечисления имен столбцов дол­жен соответствовать порядку значений, перечисленных в списке операнда VALUES. Если <список столбцов> опущен, то в <списке значений> должны быть перечислены все значения в порядке столбцов структуры таблицы.

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

Пример 9. Ввод записей.

Ввести в таблицу ЕМР запись о новом сотруднике. Для этого можно за­писать такой оператор вида:

INSERT INTO emp

VALUES («Ivanov», 7500, «Lee», «cosmetics»)

3.7.12 Оператор удаления записей

Оператор удаления записей имеет формат вида:

DELETE FROM <имя таблицы>

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

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

Пример 10. Удаление записей.

В связи с ликвидацией отдела игрушек (toy), требуется удалить из таб­лицы ЕМР всех сотрудников этого отдела. Оператор DELETE для этой задачи будет выглядеть так:

DELETE FROM emp WHERE dept = «toy»

В заключение отметим, что, по словам Дейта, язык SQL является гибридом реляционной алгебры и реляционного исчисления. В нем имеются элементы алгебры (оператор объединения UNION) и исчисления (квантор существования EXISTS). Кроме того, язык SQL обладает реляционной полнотой.

3.7.13 Некоторые важные функции sql

Еще раз напомним, что хотя язык SQLи является стандартным языком для работы с широким кругом БД, он все же несколько отличается при переходе от одной системы к другой. Приводимые ниже примеры в основном рассчитаны наMSSQLServer. Язык SQL системы SQL Server содержит некоторое расширение, которое известно какT(ransact)-SQL.

Рассмотрим некоторые важные функции T-SQL, достаточно часто используемые в запросах (табл. 3.4).

Таблица 3.4

ABS(…) возвращает модуль величины, указываемой в скобках

CHAR(…) преобразует целое число в строку символов

GetDate() возвращает текущую системную дату

IsdATE(выражение) возвращает истину, если выражение соответствует корректной дате

isNULL(выражение, константа) заменяет значение NULL заданной константой

isNumeric(выражение) возвращает истину, если выражение является числом

Len(символьнаястрока) возвращает длину строки

Lower(строка) преобразует символы строки в нижний регистр

LTrim(строка) удаляет ведущие пробелы

STR(число) преоразует число в строку

SubString(строка, начало, длина) выделяет подстроку из строки, начиная с заданного символа начала и включая указанное число символов

Upper(выражение) преобразует символы выражения в верхний регистр

Year(дата) возвращает год из даты в виде целого числа из четырех цифр

Month(дата) возвращает месяц в виде целого числа

Следующую группу функций рассмотрим подробнее.

IF EXISTS… проверяет наличие хотя бы одной выбранной записи по запросу.

IF EXISTS (Select * From Склад Where Цена>8000)

Select ”Имеются товары с высокой ценой” From Склад

Else

Select“Нет дорогих товаров”

Можно выбрать указанное число записей из набора:

SELECT TOP2 *fromСклад

Эта команда выбирает ровно две первых записи из таблицы Склад.

Можно произвести отбор первых 10% записей так

SELECT TOP10PERCENT*fromСклад

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

SELECT * from Склад DISTINCT

(dictinct – различные).

Для выборки строк по шаблону применяется функция LIKE.

Пример

SelectНазваниеFromСкладWhereНазваниеLike“б%”

Для проверки попадания значения в диапазон используется конструкция Select сIn:

Select Название from Склад Where Цена In (Select max(Цена) from Склад)

Этот запрос выдает названия всех товаров, цена на которые попадает в запрос

Select max(Цена) from Склад,

т.е. является максимальной ценой.

Можно указать варианты значений явным способом:

Select Название from Склад Where Цена In (1000,1800,2000,3000)

Можно задать диапазон значений:

Select Название from Склад Where Цена Between 1000 AND 5000.

Здесь использовано ключевое слово Between(- между).

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

= равно

!= , <> не равно

> больше

>= больше или равно

!> не больше

< меньше

<= меньше или равно

!< не меньше