Язык БД SQL

Содержание

Слайд 2

1. Общие сведения о языках запросов к реляционным БД Запрос представляет

1. Общие сведения о языках запросов к реляционным БД

Запрос представляет

собой специальным образом описанное требование, определяющее состав производимых на БД операций по выборке, удалению или модификации хранимых данных.
Для подготовки запросов чаще всего используются два основных языка описания запросов: QBE и SQL.
Слайд 3

Главное отличие между этими языками заключается в способе формирования запросов: язык

Главное отличие между этими языками заключается в способе формирования запросов: язык

QBE предполагает ручное формирование запроса, в то время как использование языка SQL означает программирование запроса.
Теоретической основой языка QBE является реляционное исчисление с переменными-доменами. Этот язык позволяет формировать сложные запросы к БД путем заполнения предлагаемой СУБД запросной формы. Такой способ формирования запросов обеспечивает высокую наглядность и не требует указания алгоритма выполнения операции. Достаточно описать образец ожидаемого результата (откуда и название языка – запрос по образцу).
Слайд 4

Для того чтобы узнать имена доступных отношений БД, в языке QBE

Для того чтобы узнать имена доступных отношений БД, в языке QBE

предусмотрен запрос на выборку имен отношений. Имена атрибутов исходного отношения могут вводиться в шаблон вручную или автоматически. Во втором случае используется запрос на выборку имен атрибутов.
В современных СУБД, например, в ACCESS (диалоговые окна) и VISUAL FOX PRO, многие действия по подготовке запросов с помощью языка QBE выполняются визуально с помощью мыши («протаскиванием» мышью имени атрибута одного отношения к атрибуту другого).
Первый вариант языка QBE был предложен в 1975-1977 г. М. М. Злуффом.
Слайд 5

Краткая история стандартизации языка SQL Деятельность по стандартизации языка SQL началась

Краткая история стандартизации языка SQL

Деятельность по стандартизации языка SQL началась

практически одновре- менно с появлением его первых коммерческих реализаций. В 1982 г. комитету по БД Американского национального института стандар- тов (ANSI) было поручено разработать спецификацию стандартного языка реляционных БД.
Слайд 6

Первый документ из числа проектов стандарта датирован октябрем 1985 г. и

Первый документ из числа проектов стандарта датирован октябрем 1985 г. и

является уже не первым проектом стандарта ANSI. Стандарт был принят ANSI в 1986 г., а в 1987 г. одобрен Международной организацией по стандартизации (ISO). Этот стандарт языка SQL принято называть SQL/86.
К 1989 г. стандарт SQL/86 был несколько расширен, был подготовлен и принят следующий стандарт, получивший название ANSI/ISO SQL/89.
Слайд 7

Осознавая неполноту стандарта SQL/89, на фоне завершения разработки этого стандарта специалисты

Осознавая неполноту стандарта SQL/89, на фоне завершения разработки этого стандарта специалисты

различных компаний начали работу над стандартом SQL2. Эта работа также длилась несколько лет, было выпущено много проектов стандарта, пока, наконец, в марте 1992 г. не был принят окончательный проект стандарта SQL/92. Этот стандарт стал существенно полнее стандарта SQL/89 и охватывал практически все аспекты, необходимые для реализации приложений: манипулирование схемой БД, динамический SQL, управление транзакциями и сессиями (сессия - это последовательность транзакций, в пределах которой сохраняются временные отношения), и др.
Слайд 8

В 1995 г. стандарт был дополнен спецификацией интерфейса уровня вызова (Call-Level

В 1995 г. стандарт был дополнен спецификацией интерфейса уровня вызова (Call-Level

Interface – SQL/CLI). SQL/CLI представляет собой набор спецификаций интерфейсов процедур, вызовы которых позволяют выполнять динамически зада-ваемые операторы SQL. Интерфейсы проце- дур определены для всех основных языков программирования: C, Ada, Pascal и др. Стандарт SQL/CLI послужил основой для создания повсеместно распространенных сегодня интерфейсов ODBC (Open Database Connectivity) и JDBC (Java Database Connec-tivity). По сути дела SQL/CLI представляет собой альтернативу динамическому SQL.
Слайд 9

В 1996 г. к стандарту SQL/92 был добавлен еще один компонент

В 1996 г. к стандарту SQL/92 был добавлен еще один компонент

SQL/PSM (Persistent Stored Modules). Основная цель этой спецификации состоит в том, чтобы стандартизиро-вать способы определения и исполь-зования хранимых процедур, то есть программ, включающих операторы SQL, которые сохраняются в БД, могут вызываться приложениями и выполняются внутри СУБД.
Слайд 10

Незадолго до завершения работ по определению стандарта SQL2 была начата разработка

Незадолго до завершения работ по определению стандарта SQL2 была начата разработка

стандар-та SQL3, которую частично уда-лось завершить только в 1999 г., и по этой причине стандарт получил название SQL:1999 (самые первые проекты SQL3 занимали около 1500 страниц). В 1999 г. были приняты пять первых частей стандарта SQL:1999.
Слайд 11

Первая часть стандарта посвящена описанию концептуальной структуры стандарта; вторая – образует

Первая часть стандарта посвящена описанию концептуальной структуры стандарта; вторая – образует

базис стандарта; третья – уточняет по сравнению с SQL/92 спецификацию SQL/CLI; в четвертой части специ-фицируется SQL/PSM – синтаксис и семантика языка определения храни-мых процедур; в пятой части опреде-ляются правила связывания SQL для стандартных версий языков програм-мирования FORTRAN, PASCAL и др.
Слайд 12

В конце 2003 г. был принят и опубликован новый вариант Международного

В конце 2003 г. был принят и опубликован новый вариант Международного

стандарта SQL:2003, который существенно отлича-ется от стандарта SQL:1999, и состоит из 9 частей. Особо следует отметить новые части – с номерами 13 и 14 (некоторые час-ти по сравнению со стандартом SQL:1999 перестали существовать). Часть 13 посвя-щена использованию подпрограмм и типов SQL в языке программирования Java. Часть 14 посвящена спецификации языковых средств, позволяющих работать с XML-документами в среде SQL.
Слайд 13

2. Структура языка SQL и его типы данных. Понятие представления Опишем

2. Структура языка SQL и его типы данных. Понятие представления

Опишем

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

Разделение языка SQL на уровни Прямой SQL Встроенный SQL Динамический SQL

Разделение языка SQL на уровни

Прямой SQL

Встроенный SQL

Динамический SQL

Прямой SQL

(di-rect) содержит кон-струкции, которые можно использо-вать при прямом взаимодействии ко-нечного пользова-теля с СУБД (напри-мер, в интерактив-ном режиме).
Слайд 15

Встроенный (embedded) уровень расширяется конструкциями, позволяющи-ми использовать возможности прямого SQL в

Встроенный (embedded) уровень расширяется конструкциями, позволяющи-ми использовать возможности прямого SQL

в программах, написанных на традицион-ных языках программирования.
На уровне динамического (dynamic) языка SQL во встраиваемый SQL добавляются конструкции, позволяющие приложениям обращаться к СУБД с конструкциями прямого SQL, которые динамически образуются во время выполнения программы.
Слайд 16

Типы данных в языке SQL Данные, хранящиеся в столбцах таблиц SQL-ориентированной

Типы данных в языке SQL

Данные, хранящиеся в столбцах таблиц SQL-ориентированной

БД, являются типизиро-ванными, то есть представляют собой значения одного из типов данных, предопределенных в языке SQL или определяемых пользователями путем применения соответствующих средств языка. Для этого при определении отношения каждому его атрибуту назначается некоторый тип данных (или домен), и в дальнейшем СУБД должна следить за тем, чтобы в каждом столбце каждой строки каждого отношения присутствовали только допустимые значения.
Слайд 17

Категории типов данных Точные целочисленные типы (INTEGER, SMALLINT). Точные типы, допускающие

Категории типов данных

Точные целочисленные типы (INTEGER, SMALLINT).
Точные типы, допускающие наличие дробной

части (NUMERIC (p, s), где p задает точность значений, а s – число десятичных цифр в дробной части.
DECIMAL (p, s), DECIMAL (p), DECIMAL .
Литералы типов точных чисел, представляемые в виде строк символов, изображающих десятичные числа со знаком или без знака, допускается внутри числа разделительная точка).
Слайд 18

Приближенные числовые типы REAL – числа с плавающей точкой одинарной точности

Приближенные числовые типы

REAL – числа с плавающей точкой одинарной точности (точность

опре-деляется конкретной реализацией).
DOUBLE PRECISION – числа с плаваю-щей точкой двойной точности.
FLOAT(p) – параметрический тип (точ-ность задается параметром p).
Литеральное выражение вида xEy.
Слайд 19

Типы символьных строк Тип CHARACTER (x) (или CHAR) - значе-ниями являются

Типы символьных строк

Тип CHARACTER (x) (или CHAR) - значе-ниями являются символьные

строки (на-бор символов ASCII).
Тип CHARACTER VARYING (x), где x – ко-личество символов в строке.
Тип CHARACTER LARGE OBJECT – предназначен для определения столбцов, хранящих большие и разные по размеру группы символов.
Литералы символов строк, заключен-ные в одинарные или двойные кавычки.
Слайд 20

Операции над символьными типами Операция конкатенации (обозначает-ся «||») - соединение строк.

Операции над символьными типами

Операция конкатенации (обозначает-ся «||») - соединение строк.
Функция выделения

подстроки (обоз-начается SUBSTRING) принимает три аргумента – строку, номер начальной позиции и длину.
Функция APPER возвращает строку, в которой все строчные буквы строки-ар-гумента заменяются прописными.
Слайд 21

Функция LOVER заменяет в заданной строке все прописные буквы строчными. Функция

Функция LOVER заменяет в заданной строке все прописные буквы строчными.

Функция определения длины (CHARA-CTER_LENGTH, OCTET_LENGTH, BIT_-LENGTH) возвращает длину заданной символьной строки в символах, октетах или битах в виде целого числа.
Функция определения позиции (POSITION) определяет первую позицию в строке S, с которой в нее входит заданная строка S1 (если не входит, возвращается нуль).
Слайд 22

Типы даты и времени Тип DATE. Значения этого типа состоят из

Типы даты и времени

Тип DATE. Значения этого типа состоят из компонентов-значений

года (4 де-сятичных цифры), месяца (2 десятич-ные цифры от 01 до 12) и дня некоторой даты (2 десятичные цифры от 01 до 31).
Литералы типа DATE представляются в виде строки «’yyyy-mm-dd’», напри-мер, литерал ‘1949-04-08’ означает да-ту 8 апреля 1949 г.
Слайд 23

Тип TIME. Значения этого параметризо-ванного типа состоят из компонентов-значений часа (2

Тип TIME. Значения этого параметризо-ванного типа состоят из компонентов-значений часа

(2 десятичные цифры от 00 до 23), минуты (2 десятичные цифры от 00 до 59) и секунды (2 десятичные цифры от 00 до 59, но может включать и дополнительные цифры, представляю-щие доли секунды).
Существуют и другие типы даты и времени: типы временной метки, типы времени и временной метки с временной зоной, типы временных интервалов.
Слайд 24

Булевский тип При определении атрибута булевского типа указывается просто спецификация BOOLEAN.

Булевский тип

При определении атрибута булевского типа указывается просто спецификация BOOLEAN.

Булевский тип состоит из трех значений: true, false и unknown (соответствующие литералы обознача-ются TRUE, FALSE и UNKNOWN). Поддерживается возможность построе-ния булевских выражений, которые вы-числяются в трехзначной логике.
Слайд 25

Другие типы данных в SQL Типы коллекций: типы массивов ARRAY (в

Другие типы данных в SQL

Типы коллекций: типы массивов ARRAY (в стандарте

SQL:1999) и типы мультимножеств MULTISET (стандарт SQL:2003).
Анонимные строчные типы ROW.
Типы, определяемые пользователем – структурные типы и индивидуальные типы.
Ссылочные типы.
Слайд 26

Замечание 1 В SQL для СУБД FOX PRO тип данных атрибутов

Замечание 1

В SQL для СУБД FOX PRO тип данных атрибутов

обозначается одной из букв: C – символьный, M – примечания, D – дата, L – логический, F–действи-тельное число с плавающей точкой, N – числовой.
Слайд 27

Понятие представления В результате выборки данных из одного или нескольких отношений

Понятие представления

В результате выборки данных из одного или нескольких отношений

может быть получено множество кортежей, назы-ваемое представлением.
Представление по существу является таблицей, формируемой в результате выполнения запроса.
Слайд 28

Преимущество использования представ-лений по сравнению запросами к основной таблице состоит в

Преимущество использования представ-лений по сравнению запросами к основной таблице состоит

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

Для удобства работы с представлениями в язык SQL введено понятие курсора.

Слайд 29

Описание и использование курсора Курсор представляет собой своеобраз-ный указатель, используемый для

Описание и использование курсора

Курсор представляет собой своеобраз-ный указатель, используемый

для перемещения по наборам кортежей при их обработке.
В описательной части программы вы-полняют связывание переменной типа курсор (CURSOR) с оператором языка SQL (обычно с оператором SELECT).
Слайд 30

В выполняемой части программы производится открытие курсора (OPEN ), перемеще-ние курсора

В выполняемой части программы производится открытие курсора (OPEN<имя курсора>), перемеще-ние курсора

по кортежам (FETCH <имя курсора>), сопровождаемое соответствующей обработкой и, на-конец, закрытие курсора (CLOSE <имя курсора>).
Слайд 31

3. Основные операторы языка SQL Опишем минимальное подмножество языка SQL, опираясь

3. Основные операторы языка SQL

Опишем минимальное подмножество языка SQL, опираясь

на его реализа-цию в стандартном интерфейсе ODBC (совместимость открытых БД) фирмы MICROSOFT (стандарт ISO SQL/92 и ANSI SQL/92). Операторы языка SQL можно условно разделить на два подъязыка: язык определения данных (DDL) и язык манипулирования данными (DML).
Слайд 32

Операторы подъязыка DDL

Операторы подъязыка DDL

Слайд 33

Формат операторов подъязыка DDL 1. CREATE TABLE ( [NOT NULL] [,

Формат операторов подъязыка DDL

1. CREATE TABLE <имя_таблицы> ( < имя_столбца

> < тип данных > [NOT NULL] [, < имя_столбца > < тип данных > [NOT NULL ]]…)

В СУБД FOX PRO вместо CREATE TABLE пишут CREATE DBF .

Слайд 34

Конструкция NOT NULL служит дополнительным правилом контроля вводимых значений и для

Конструкция NOT NULL служит дополнительным правилом контроля вводимых значений и для

столбца означает, что в нем должно быть определено не пустое значение. В некоторых СУБД в качестве NOT NULL указывается размер поля в символах.
Слайд 35

Пример 1 CREATE TABLE STUDENTS (SNUM INTEGER, SFAM CHAR (20), SIMA

Пример 1

CREATE TABLE STUDENTS
(SNUM INTEGER,
SFAM CHAR (20),
SIMA CHAR (10),
SOTCH CHAR (15),
STIP

DECIMAL);

Создано отношение с именем «Студенты» и атрибутами соот-ветственно «Номер студенческого биле-та», «Фамилия», «Имя», «Отчество» студента и «Размер получаемой стипен-дии».

Слайд 36

Замечания 2 и 3 Порядок расположения атрибутов в отношении определяется тем,

Замечания 2 и 3

Порядок расположения атрибутов в отношении определяется тем, в

какой последовательности они указаны в команде создания отношения.
Кроме создания отношения в SQL/92 аналогичной командой CREATE SCHEMA можно создавать схемы с необязательным указанием автора, а также можно создать домен – CREATE DOMAIN.
Слайд 37

2. Оператор удаления отношения Оператор удаления отношения имеет формат DROP TABLE

2. Оператор удаления отношения

Оператор удаления отношения имеет формат
DROP TABLE

<имя отношения>
Перед удалением отношения необ-ходимо убедиться в том, что оно не ссылается на другое отношение и не используется в каком-либо пред-ставлении. Кроме того, чтобы удалить отношение, пользователь должен быть его собственником. Перед удалением отношение должно быть очищено.
Слайд 38

3. Формат оператора изменения структуры отношения ALTER TABLE отношения> ({ADD, MODIFY,

3. Формат оператора изменения структуры отношения

ALTER TABLE <имя
отношения> ({ADD, MODIFY,

DROP} <имя_атри-бута> [<тип данных>] [NOT NULL]
[, ({ADD, MODIFY, DROP} <имя_атри-бута>[<тип данных>] [NOT NULL]…]);

ADD, MODIFY, DROP – соот-ветственно добавление, изменение и удаление од-ного или не-скольких ат-рибутов отно-шения.

Слайд 39

Пример 2 Добавим к отношению STUDENTS два атрибута для хранения инфор-мации

Пример 2

Добавим к отношению STUDENTS два атрибута для хранения инфор-мации

о курсе и специальности студента:

ALTER TABLE STUDENTS
(ADD COURS INTEGER,
SPEC CHAR (10));

Слайд 40

4. Формат оператора создания индекса CREATE [UNIQUE] INDEX ON ( [ASC|DESC]

4. Формат оператора создания индекса

CREATE [UNIQUE] INDEX <имя_ индекса> ON

<имя_отно-шения> (<имя_ат-рибута> [ASC|DESC]
[, имя_атрибута>
[ASC|DESC]…]);

Индексы создаются для ускорения вы-полнения запросных и поисковых опера-ций с отношением. Опция UNIQUE (уни-кальность значений во всех указанных атрибутах) является необязательной.
ASC|DESC – сорти-ровка значений.

Слайд 41

Пример 3 Очевидно, что в отношении STUDENTS одним из наиболее употребляемых

Пример 3

Очевидно, что в отношении STUDENTS одним из наиболее употребляемых

может стать индекс по атрибуту, содержащему фамилию студента. Тогда команда для создания такого индекса будет следующей:

CREATE INDEX SFAMIND ON STUDENTS (SFAM);

Слайд 42

5. Формат оператора удаления индекса DROP INDEX Этот оператор позволяет уда-лять

5. Формат оператора удаления индекса

DROP INDEX <имя_индекса>

Этот оператор позволяет уда-лять

созданный ранее индекс с соответствующим именем. При этом удаление индекса не воз-действует на данные, которые содержатся в индексированных атрибутах.
Слайд 43

6. Формат оператора создания представления CREATE VIEW [( [, ]…)] AS

6. Формат оператора создания представления

CREATE VIEW <имя_представления> [(<имя_атрибута> [,<имя_атрибута>]…)]
AS <оператор

SELECT>;

Представление формируется в резуль-тате выполнения запроса. Если имена атрибутов в представлении не указы-ваются, то будут использоваться име-на атрибутов из запроса, описываемого соответствующим оператором SELECT.

Слайд 44

Пример 4 Создадим представление с именем OTLSTUD, которое содержит инфор-мацию о

Пример 4

Создадим представление с именем OTLSTUD, которое содержит инфор-мацию о

студентах, получающих сти-пендию в размере 1200 руб. (его можно использовать в командах наравне с другими таблицами):

CREATE VIEW OTLSTUD AS SELECT * FROM STUDENTS WHERE STIP= 1200;

Слайд 45

7. Формат оператора удаления представления DROP VIEW Следует различать модифицируемые представления

7. Формат оператора удаления представления

DROP VIEW <имя_представления>

Следует различать модифицируемые представления

и представления, пред-назначенные только для чтения. Модифицируемые представления в SQL должны удовлетворять некоторым критериям, на которых мы не оста-навливаемся и рекомендуем изучить их самостоятельно.
Слайд 46

8. Операторы назначения и удаления привилегий В языке SQL одним из

8. Операторы назначения и удаления привилегий

В языке SQL одним из

принципов защи-ты данных служит система привилегий, то есть прав пользователя на прове-дение тех или иных действий над опре-деленными объектами БД. Создает пользователей и назначает им привиле-гии администратор БД. Существует не-сколько типов привилегий, соответ-ствующих типам операций над БД.
Слайд 47

Каждый пользователь БД в среде SQL имеет специальное идентификационное имя (ID)

Каждый пользователь БД в среде SQL имеет специальное идентификационное имя (ID)

доступа. Команда, посланная в БД, ассоциируется с определенным пользователем, то есть со специальным идентификатором доступа. В системах с большим количеством пользователей существует специальная процедура входа в систему, которую пользователь должен обязательно выполнить для получения доступа.
Слайд 48

Каждый пользователь имеет набор привилегий. Эти привилегии могут изме-няться со временем:

Каждый пользователь имеет набор привилегий. Эти привилегии могут изме-няться со временем:

новые добавляться командой GRANT, старые удаляться ко-мандой REVOKE. Различные форматы команды GRANT позволяют сразу пере-давать несколько привилегий одному пользователю (списки привилегий разде-ляются запятыми), нескольким пользова-телям, для отдельных пользователей можно вводить ограничения и т.д.
Слайд 49

Пример 5 Пусть пользователь Гамидов владеет таблицей студентов STUDENTS и желает

Пример 5

Пусть пользователь Гамидов владеет таблицей студентов STUDENTS и желает

разрешить пользователю Куриловой выполнить запрос к этой таблице. Тогда Гамидов должен в этом случае выполнить команду
GRANT SELECT ON STUDENTS TO
Курилова
Слайд 50

Теперь Курилова может выполнять запросы к таблице STUDENTS без других привилегий,

Теперь Курилова может выполнять запросы к таблице STUDENTS без других привилегий,

то есть она может только выбирать значения, но не может выполнить любое другое действие, которое бы воздействовало на значения в таблице, включая использование ее в качестве родительской таблицы внешнего ключа.
Слайд 51

Формат операторов подъязыка DML

Формат операторов подъязыка DML

Слайд 52

1. Формат оператора выборки кортежей SELECT[ALL|DISTINCT] FROM [WHERE ] [GROUP BY

1. Формат оператора выборки кортежей

SELECT[ALL|DISTINCT]
<список данных>
FROM <список

отношений>
[WHERE <условие выборки>]
[GROUP BY <имя_атрибута>
[, <имя_атрибута>]…]
[HAVING <условие поиска>]
[ORDER BY <спецификация>
[, <спецификация> ]…];
Слайд 53

Оператор SELECT позволяет произ-водить выборку и вычисления над данными из одного

Оператор SELECT позволяет произ-водить выборку и вычисления над данными из одного

или нескольких отношений. Результатом выполнения этого оператора является ответная таблица, которая может иметь (ALL), или не иметь (DISTINCT) повторя-ющиеся кортежи. По умолчанию в ответную таблицу включаются все кортежи, в том числе и повто-ряющиеся.
Слайд 54

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

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

таблиц после слова FROM.
При использовании в списке данных не-скольких таблиц для указания принад-лежности атрибута некоторой таблице применяют конструкцию вида
<Имя_отношения> . <Имя_атрибута> .
Список данных может содержать и вы-ражения над атрибутами, в том числе, знаки арифметических операций, конс-танты и круглые скобки.
Слайд 55

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

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

Выражение <условие выборки> является логическим. Его элемен-тами могут быть имена атрибутов, операции сравнения, логические связки and, or, not, круглые скобки, а также специальные функции LIKE, NULL, IN и др.
Слайд 56

Операнд GROUP BY позволяет выделять в результирующем множестве кортежей группы. Группой

Операнд GROUP BY позволяет выделять в результирующем множестве кортежей группы. Группой

являются кортежи с сов-падающими значениями в столбцах, перечисленных за ключевыми словами GROUP BY. Выделение групп требуется для использования в логических выра-жениях операндов WHERE и HAVING, где HAVING<условия поиска> является спе-циальной формой операнда WHERE, и указывает дополнительный критерий отбо-ра данных в каждую группу.
Слайд 57

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

В логических и арифметических выра-жениях можно использовать следую-щие функции как

групповые:
AVG, MAX, MIN, SUM, COUNT.

Наконец, опция ORDER BY задает по-рядок сортировки результирующего множества кортежей. Она аналогична конструкции оператора CREATE INDEX.
Каждая <спецификация> представляет собой пару
<имя_атрибута> [ASC|DESC].

Слайд 58

2. Формат оператора изменения кортежей UPDATE SET = = { ,

2. Формат оператора изменения кортежей

UPDATE <имя_отношения>
SET<имя_атрибута> = = {<выражение>, NULL}
[, SET

<имя_атрибута>=
= {<выражение>, NULL}…]
[ WHERE <условие>];

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

Слайд 59

3. Форматы оператора вставки новых кортежей а) INSERT INTO [( )]

3. Форматы оператора вставки новых кортежей

а) INSERT INTO <имя_отноше- ния>
[(<список

атрибутов>)]
VALUES (<список значений>);

б) INSERT INTO <имя_отноше-ния>
[(<список атрибутов>)]
<предложение SELECT>;