Операторы манипулирования  данными- Data Manipulation Language –DML



DELETE, INSERT, UPDATE

Оператор Смысл Действие
DELETE Удалить строки Удаляет одну или несколько строк, соответствующих условиям фильтрации, из базовой таблицы. Применение оператора согласуется с принципами поддержки целостности, поэтому этот оператор не всегда может быть выполнен корректно, даже если синтаксически он записан правильно
INSERT Вставить строку Вставляет одну строку в базовую таблицу. Допустимы модификации оператора, при которых сразу несколько строк могут быть перенесены из одной таблицы или запроса в базовую таблицу
UPDATE Обновить строку Обновляет значения одного или нескольких столбцов в одной или нескольких строках, соответствующих условиям фильтрации

Язык запросов Data Query Language (DQL)

Оператор Смысл Действие
SELECT Выбрать строки Оператор, заменяющий все операторы реляц.алгебры и позво-ляющий сформировать результ.отношение, соответств.запросу

Средства управления транзакциями

Оператор Смысл Действие
COMMIT Завершить транзакцию Завершить комплексную взаимосвязанную обработку информации, объединенную в транзакцию
ROLLBACK Откатить транзакцию Отменить изменения, проведенные в ходе выполнения транзакции
SAVEPOINT Сохранить промеж. тчк.. вып-я транзакции Сохранить промежуточное состояние БД, пометить его для того, чтобы можно было в дальнейшем к нему вернуться

Средства администрирования данных

Оператор Смысл Действие
ALTER DATABASE Изменить БД Изменить набор основных объектов в базе данных, ограничений, касающихся всей базы данных
ALTER DBAREA Изменить область хранения БД Изменить ранее созданную область хранения
ALTER PASSWORD Изменить пароль Изменить пароль для всей базы данных
CREATE DATABASE Создать БД Создать новую базу данных, определив основные параметры для нее
CREATE DBAREA Создать область хранения Создать новую область хранения и сделать ее доступной для размещения данных
DROP DATABASE Удалить БД Удалить существующую базу
DROP DBAREA Удалить область хранения БД Удалить существующую область хранения (если в ней на наст.момент нет активных данные)
GRANT Предоставить права Предоставить права доступа на ряд действий над некоторым объектом БД
REVOKE Лишить прав Лишить прав доступа к некоторому объекту или некоторым действиям над объектом

6. Программный SQL

Оператор Смысл

Действие

DECLARE Определяет курсор для запроса

Задает имя и определяет связанный с ним запрос к БД, который соответствует виртуал. набору данных (ВНД)

OPEN Открыть курсор

Формирует ВНД, соответствующий описанию указанного курсора и текущему состоянию БД

FETCH Считать строку из мн-ва строк, опред. курсором

Считывает очередную строку, заданную параметром команды из ВНД, соответствующего открытому курсору

CLOSE Закрыть курсор

Прекращает доступ к ВНД, соотв.указанному курсору

PREPARE Подготовить оператор SQL к динамическому выполнению

Сгенерировать план выполнения запроса, соответствующего заданному оператору SQL

EXECUTE

Выполнить оператор SQL, ранее подгот. к динамическому выполнению

Выполняет ранее подготовленный план запроса
       

В коммерческих СУБД набор основных операторов расширен. В большинство СУБД включены операторы определения и запуска хранимых процедур и операторы определения триггеров.

Типы данных

В языке SQL/89 поддерживаются следующие основные типы данных:

· CHARACTER(n) или CHAR(n) — символьные строки постоянной длины в n символов. При задании данного типа под каждое значение всегда отводится n символов, и если реальное значение занимает менее, чем n символов, то СУБД автоматически дополняет недостающие символы пробелами.

· NUMERIC[(n,m)] — точные числа, здесь n — общее количество цифр в числе, m — количество цифр слева от десятичной точки.

· DECIMAL[(n,m)] или DEC[(n,m)] — точные числа, здесь n — общее количество цифр в числе, m — количество цифр слева от десятичной точки.

· INTEGER или INT — целые числа.

· REAL — вещественный тип чисел, который соответствует числам с плавающей точкой

· DOUBLE PRECISION специфицирует тип данных с определенной в реализации точностью большей, чем определенная в реализации, точность для REAL.

 

В стандарте SQL92 добавлены следующие типы данных:

· VARCHAR(n) — строки символов переменной длины.

· NCHAR(N) — строки локализованных символов постоянной длины.

· NCHAR VARYING(n) — строки локализованных символов переменной длины.

· ВIТ(n) — строка битов постоянной длины.

· BIT VARYING(n) — строка битов переменной длины.

· DATE — календарная дата.

· ТIМЕSTАМР (точность) — дата и время.

· INTERVAL — временной интервал.

Большинство коммерческих СУБД поддерживают еще дополнительные типы данных, которые не специфицированы в стандарте. Например, для представления неструктурированного текста большого объема (аналогичен типу MEMO в настольных СУБД).

Могут использоваться константы заданных типов.

Для числовых типов данных:

213-314 612.716, + 551.702,      2.9Е-4 -134.235Е7 0.54267Е18

Строковые константы в одинарных кавычках: 'Крылов Ю.Д.’ 'Санкт-Петербург'

Константы даты, времени и временного интервала в реляционных СУБД представляются в виде строковых констант. Форматы констант отличаются в различных СУБД

В стандарте SQL1 не были определены встроенные функции, однако в большинстве коммерческих СУБД такие функции были реализованы, и в стандарт SQL2 уже введен ряд стандартных встроенных функций (приведены только некоторые!)

· CURRENT_DATE - текущая дата;

· CURRENT_TIME(точность) — текущее время с указанной точностью;

· LOWER(строкa) — строка, преобразованная к нижнему регистру;

· SUBSTRING(строка FROM n FOR длина) — часть строки, начинающаяся с n-го символа и имеющая указанную длину;

· TRANSLАТЕ(строка USING функция) — строка, преобразованная с использованием, указанной функции;

· UPPER(строка) — строка, преобразованная к верхнему регистру.

 

И т.д. – самостоятельно в документации

Оператор выбора SELECT

Язык запросов (Data Query Language) в SQL состоит из единственного оператора SELECT. Этот единственный оператор поиска реализует все операции реляционной алгебры.

Синтаксис оператора SELECT имеет следующий вид:

SELECT [ALL | DISTINCT ]   *|имя_столбца [AS новое_имя] [,...n] FROM имя_таблицы [[AS] псевдоним] [,...n] [WHERE <условие_поиска>] [GROUP BY имя_столбца [,...n]] [HAVING <критерии выбора групп>] [ORDER BY имя_столбца [,...n]]

Здесь ключевое слово ALL означает, что в результирующий набор строк включаются все строки, удовлетворяющие условиям запроса.

Ключевое слово DISTINCT означает, что в результирующий набор включаются только различные строки, то есть дубликаты строк результата не включаются в набор.

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

В разделе FROM задается перечень исходных отношений (таблиц) запроса.

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

В разделе GROUP BY задается список полей группировки.

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

В части ORDER BY задается список полей упорядочения результата.

В выражении условий раздела WHERE м.быть использованы следующие предикаты:

· Предикаты сравнения { =, <>, >,<, >=,<=}, которые имеют традиционный смысл.

· Предикат Between A and В — принимает значения между А и В. Предикат истинен, когда сравниваемое значение попадает в заданный диапазон, включая границы диапазона. В стандарте задан и противоположный предикат Not Between A and В, который истинен тогда, когда сравниваемое значение не попадает в заданный интервал, включая его границы.

· Предикат вхождения в множество IN(множество) истинен тогда, когда сравниваемое значение входит в множество заданных значений. При этом множество значений может быть задано простым перечислением или встроенным подзапросом. Существует противоположный предикат NOT IN (множество).

· Предикаты сравнения с образцом LIKE и NOT LIKE. Предикат LIKE требует задания шаблона, с которым сравнивается заданное значение, предикат истинен, если сравниваемое значение соответствует шаблону, и ложен в противном случае. Предикат NOT LIKE имеет противоположный смысл.

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

символ подчеркивания (_) — для обозначения любого одиночного символа;

символ процента (%)для обозначения любой произвольной последовательности символов; остальные символы, заданные в шаблоне, обозначают самих себя.

 

□ Предикат сравнения с неопределенным значением IS NULL. Понятие неопределенного значения было внесено в концепции баз данных позднее. Неопределенное значение интерпретируется в реляционной модели как значение, неизвестное на данный момент времени.. При сравнении неопределенных значений не действуют стандартные правила сравнения: одно неопределенное значение никогда не считается равным другому неопределенному значению. Для выявления равенства значения некоторого атрибута неопределенному применяют специальные стандартные предикаты:

<имя атрибута>IS NULL и <имя атрибута> IS NOT NULL.

Если в  данной строке  указанный атрибут имеет неопределенное значение, то предикат  IS NULL принимает значение «Истина» (TRUE), а предикат IS NOT NULL — «Ложь» (FALSE), в противном случае предикат IS NULL принимает значение «Ложь», а предикат IS NOT NULL принимает значение «Истина».

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

Таблица истинности

А В Not A А ^ В A v B
TRUE TRUE FALSE TRUE TRUE
TRUE FALSE FALSE FALSE TRUE
TRUE Null FALSE Null TRUE
FALSE TRUE TRUE FALSE TRUE
FALSE FALSE TRUE FALSE FALSE
FALSE Null TRUE FALSE Null
Null TRUE Null Null TRUE
Null FALSE Null FALSE Null
Null Null Null Null Null

□ Предикаты существования EXIST и несуществования NOT EXIST. Эти предикаты относятся к встроенным подзапросам, и подробнее мы рассмотрим их, когда коснемся вложенных подзапросов.


Дата добавления: 2018-04-15; просмотров: 429; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!