Операторы манипулирования данными- 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; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!