double arrow

Конспект лекцій. Результатом выполнения раздела FROM является расширенное декартово

1

Раздел WHERE

Раздел FROM

Результатом выполнения раздела FROM является расширенное декартово

произведение таблиц, заданных списком таблиц раздела FROM (расширенное,

потому что допускает одинаковые строки в таблицах – операндах и таблице –

результате) Рядом с именем таблицы можно указать ее псевдоним, который можно

использовать в любых (!!!) других разделах SELECT для ссылки на строки

именно этого вхождения таблицы (одна таблица может участвовать в SELECT

несколько раз, но с разными псевдонимами), кроме того, иногда запись

выражений в других разделах SELECT будет несколько короче, если для

таблиц использовать короткие (в том числе односимвольные) псевдонимы.

Стандарт SQL позволяет использовать специальный, альтернативный

синтаксис раздела FROM для записи различных типов соединений. Так ниже

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

FROM student JOIN raiting ON student.zbook = raiting.zbook

FROM student JOIN raiting USING zbook

FROM student NATURAL JOIN raiting

Данные варианты эквивалентны варианту без использования JOIN:

FROM student, raiting WHERE student.zbook = raiting.zbook

В случае, если необходимо выполнить так называемые открытые

соединения (соединения, включающие строки одной таблицы, для которых

отсутствуют соответствующие в другой таблице) использование специальных

видов JOIN необходимо:

а) левое открытое соединение (в результирующую таблицу будут

включены и те студенты, для которых нет ни одной записи о рейтинге):

FROM student LEFT JOIN raiting ON student.zbook = raiting.zbook

б) правое открытое соединение (в результирующую таблицу будут

включены записи о рейтинге, для которых отсутствует студент):

FROM student RIGHT JOIN raiting ON student.zbook = raiting.zbook

в) полное открытое соединение (одновременно левое и правое открытое

соединение):

FROM student FULL JOIN raiting ON student.zbook = raiting.zbook

Следующие разделы являются необязательными.

Определяет условие вхождения в результирующую таблицу строк

таблицы, полученной в результате выполнения FROM

Условие поиска представляет собой предикат, значение которого

вычисляется в соответствии со стандартными правилами вычисления

логических выражений для каждой проверяемой строки.

Предикат формируется с помощью:

а) логических связок AND, OR, NOT;

Стандарт SQL допускает наличие в строках таблиц полей с

неопределенным значением (IS NULL = истина). В соответствии с этим. вычисление условия поиска производится не в булевой, а в трехзначной

логике со значениями true, false и unknown (неизвестно). Для любого

предиката известно, в каких ситуациях он может порождать значение

unknown. Булевские операции AND, OR и NOT работают в трехзначной

логике следующим образом:

true AND unknown = unknown

unknown AND true = unknown

unknown AND unknown = unknown

true OR unknown = true

unknown OR true = true

unknown OR unknown = unknown

NOT unknown = unknown

б) круглых скобок, явно задающих порядок вычисления;

в) операторов сравнения =, <, <=, >, >=, != (<>)

Если правый операнд операции сравнения задается подзапросом, то

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

подзапроса должна быть не более единицы. Если хотя бы один из

операндов операции сравнения имеет неопределенное значение, или если

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

предиката сравнения равно unknown.

г) констант

д) подзапросов

В качестве правого операнда для оператора сравнения может выступать

другой запрос SELECT. Ограничения:

- подзапрос должен быть заключен в круглые скобки;

- подзапрос должен формировать таблицу только с одним столбцом и, в

случае сравнения с константой – таблицу с одной строкой (в случае

применения предиката с квантором, подзапрос может содержать

несколько строк – см. ниже);

- в подзапросе не может выполняться сортировка строк с помощью

раздела ORDER BY

В случае использования подзапроса для предикатов EXISTS, UNIQUE

подзапрос может включать несколько столбцов.

е) встроенных предикатов:

- BETWEEN нижняя_граница AND верхняя_граница (проверка на

принадлежность диапазону, включительно по границы диапазона);

- IN множество (проверка на принадлежность множеству). В качестве

множества может выступать перечень через запятую констант в

круглых скобках: IN (‘a’,’b’).

В качестве множества может выступать также результат подзапроса по

одному столбцу – см. ниже

- LIKE шаблон ESCAPE служебный_символ (для неточного поиска

значений по указанному шаблону, аналогично поиску файлов по маске)

В качестве спецсимволов выступают

% - последовательность из нуля и более произвольных символов

_ - один произвольный символ

Пример:LIKE ‘Ива%в_’ (будут сопоставлены ‘Иванова’ и ‘Иванцовы’).

В случае, если в состав искомого символьного значения входит один из

спецсимволов, то указать, что этот символ является элементов строки, а

не спецсимволом, можно с помощью определенного

служебного_символа

Пример: LIKE ‘#% от’ ESCAPE ‘#’ (сопоставится с ‘% от стоимости’).

- {IS | NOT} NULL (проверка на неопределенное значение).

- EXISTS подзапрос (проверка наличия строк в подзапросе)

- UNIQUE подзапрос (проверка наличия только одной строки в

подзапросе)

- Предикат с квантором. Общий синтаксис предиката с квантором:

выражение операция_сравнения ALL | ANY подзапрос

В случае ALL предикат принимает значение истина, если подзапрос

вернул пустое множество строк, или же значение операции сравнения истинно

для каждой строки подзапроса. Значение ложь предикат принимает, если

значение операции сравнения вычисляется в ложь хотя бы для одной строки

подзапроса. В остальных случаях предикат принимает значение unknown.

В случае SOME предикат принимает значение ложь, если подзапрос

вернул пустое множество строк, или же значение операции сравнения ложно

для каждой строки подзапроса. Значение истина предикат принимает, если

значение операции сравнения вычисляется в истину хотя бы для одной строки

подзапроса. В остальных случаях предикат принимает значение unknown.

4. Раздел GROUP BY

Результатом выполнения раздела GROUP BY является разбиение R на

множество групп с одинаковыми значениями указанных столбцов

(сгруппированная таблица).

Стандарт SQL требует, чтобы при применении раздела GROUP BY

список_выборки и список столбцов группировки были между собой связаны: каждый элемент список_выборки должен иметь строго единственное значение

для всей группы и являться:

- именем столбца из раздела GROUP BY

- выражением с обобщающей функцией

- константой

- если в выражениях списка выборки использована итоговая функция, то

все строки сначала группируются по указанным в секции GROUP BY столбцам

(если секция отсутствует, то все строки попадают в одну группу), и для каждой

группы выполняется расчет и заполнение вычислимых полей (для расчета

используются данные столбца текущей группы).

Можно считать, что для всех строк одной группы вычислимые поля

заполняются одинаковыми значениями (т.к. рассчитываются по столбцам всей

группы).

5. Раздел HAVING

Раздел HAVING может быть указан только в том случае, когда в нем

присутствует раздел GROUP BY. условие_по_группе задает условие на группу

строк сгруппированной таблицы.

Условие поиска раздела HAVING строится по аналогичным разделу

WHERE синтаксическим правилам, и может включать те же самые предикаты.

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

того, что условие поиска раздела HAVING задает условие на целую группу, а

не на индивидуальные строки.

В соответствии с этим, в арифметических выражениях предикатов,

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

в качестве столбцов группирования в разделе GROUP BY. Остальные столбцы

можно специфицировать только внутри спецификаций агрегатных функций

COUNT, SUM, AVG, MIN и MAX, вычисляющих в данном случае некоторое

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

подзапросами, входящими в предикаты условия_по_группе.

В результате выполнения раздела HAVING, среди строк, полученных

выполнением раздела GROUP BY останутся только те, которые удовлетворяют

условию_по_группе.

6. Раздел ORDER BY

Раздел ORDER BY упорядочивает строки результирующей таблицы по

значениям первого указанного в секции ORDER BY столбца, затем строки с

одинаковым значением данного столбца сортируются по значениям второго

указанного в секции ORDER BY столбца и так далее. По умолчанию сортировка по каждому столбцу выполняется по

возрастанию значений. Если для столбца указано ключевое слово DESC, то по

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

4.2. Выполнение оператора SELECT

В наиболее общем случае действие оператора SELECT можно

интерпретировать следующим образом:

1. Выполняется расширенное декартово произведение исходных таблиц

(результат может содержать одинаковые строки);

2. Отбираются те строки получившейся таблицы, которые удовлетворяют

(не противоречат) условию_по_исходным_данным;

3. В результирующей таблице добавляются столбцы для всех вычислимых

полей:

а) если в выражениях списка выборки использована итоговая функция, то

все строки сначала группируются по указанным в секции GROUP BY столбцам

(если секция отсутствует, то все строки попадают в одну группу), и для каждой

группы выполняется расчет и заполнение вычислимых полей (для расчета

используются данные столбца текущей группы).

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

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

Далее удаляются те оставшиеся строки – представители групп, которые не

удовлетворяют условию_по_группе из раздела HAVING.

б) если в выражениях списка выборки не используется итоговая функция,

то для каждой строки выполняется расчет и заполнение вычислимых полей

(при расчете используются данные только текущей строки).

4. Если в списке_выборки есть подзапросы, то они вычисляются, и

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

произведение таблицы, созданной на предыдущих шагах и таблиц, полученных

вычислением подзапросов.

5. Выполняется проекция полученной таблицы на указанные в списке

выборки столбцы результата. В случае, если указано ключевое слово

DISTINCT, из всех одинаковых строк оставляется один представитель.

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

значениям указанных в секции ORDER BY столбцов

4.3. Особенности применения оператора SELECT

4.3.1. Итоговые (агрегатные) функции и результаты запросов

В стандарте SQL определены пять стандартных агрегатных функций:

COUNT - число строк или значений, MAX - максимальное значение, MIN -

минимальное значение, SUM - суммарное значение и AVG - среднее значение.

Если список строк, по которым должно быть вычислено значение

функции, оказался пустым, то значение функции COUNT для него есть 0, а

значение всех остальных функций - NULL.

Тип результата вычисления функции определяется типом аргумента. При

вычислении функций SUM и AVG тип аргумента не может быть типом

символьных строк. Вычисление функции COUNT(*) производится путем

подсчета числа строк в заданном множестве. Все строки считаются

различными, даже если они состоят из одного столбца со значением null во всех

строках.

Итоговые функции могут применяться в операциях сравнения секции

WHERE.

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

ее значению, необходимо использовать идентичную запись функции в

операции сравнения раздела WHERE или HAVING (нельзя в операциях

сравнения использовать псевдонимы столбцов).

Пример: Получить список студентов со средним рейтингом > 90

SELECT ZBOOK, AVG (rait) AS r

FROM raiting

GROUP BY ZBOOK

HAVING AVG(rait)>90

4.3.2. Теоретико-множественные операции

Стандарт SQL позволяет использовать стандартные теоретико-

множественные операции над множествами – UNION (объединение),

INTERSECT (пересечение), EXCEPT (разность).

Пример. Определить список студентов (по номерам зачетных книжек) со

средним рейтингом > 90 и не имеющих троек:

(SELECT ZBOOK

FROM raiting

GROUP BY ZBOOK

HAVING AVG(rait)>90)

EXCEPT

(SELECT ZBOOK FROM raiting

GROUP BY ZBOOK

HAVING MIN(rait)>75)

)

Все запросы могут быть выполнены и без использования теоретико–

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

5. Операторы изменения содержимого базы данных

5.1. Оператор добавления строк в таблицу INSERT

Существуют два варианта оператора INSERT:

а) вставка одной новой строки

INSERT

INTO таблица [столбец, …]

VALUES (значение, …)

Выполняется вставка новой строки с заданными значениями указанных

столбцов: каждому указанному столбцу в списке столбцов должно

соответствовать выражение из списка значений (соответствие определяется по

порядку следования), а поля оставшихся столбцов заполняются значением

NULL или значением по умолчанию (см. далее оператор CREATE).

Если столбцы не указаны, предполагается, что указаны все столбцы в

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

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

INSERT

INTO таблица [столбец, …]

предложение_select

В указанную таблицу вставляются строки, полученные в результате

выполнения предложения_select, удовлетворяющего рассмотренным выше

требованиям синтаксиса SELECT.

Перечень столбцов интерпретируется аналогично первому варианту

INSERT: предложения_select должно соответствовать по структуре и порядку

следования списку столбцов, а если список столбцов отсутствует – то структуре

таблицы.

5.2. Оператор удаления строк DELETE

DELETE FROM таблица

[WHERE условие]

В таблице удаляются все строки, удовлетворяющие условию, синтаксис

которого соответствует синтаксису раздела WHERE оператора SELECT. Если

WHERE отсутствует, будут удалены все строки.

5.3. Оператор обновления строк UPDATE

UPDATE таблица

SET столбец = значение, …

[WHERE условие]

В таблице модифицируются все строки (если указано условие, то только

удовлетворяющие условию строки) внесением нового значения поля в столбец.

6. Операторы определения данных

6.1. Типы данных стандарта SQL ISO

Для определения типа хранимой информации в полях, а также для

указания возможных операций над полями в стандарте SQL введены

следующие типы данных.

Тип Объявление

character (символьный) CHARACTER VARYING или VARCHAR –

строка переменной дины

CHARACTER (длина) или CHAR (длина) –

строка фиксированной длины

bit (битовый) BIT VARYING – битовая строка переменной

длины (для хранения последовательности

символов 0 и 1)

BIT длина - битовая строка фиксированной длины

exact numeric (точные NUMERIC [значность, точность] или

числа) DECIMAL [значность, точность] или

DEC [значность, точность] – целое число с общим

количеством цифр значность, и

количеством цифр после запятой –

точность.

INTEGER или INT – целое число фиксированной

длины

SMALLINT - меньшее по выделяемой памяти

целое число, чем INTEGER.

approximate numeric FLOAT [точность] – вещественное число с

(округленные числа) точностью значащих цифр

REAL – вещественное число с фиксированнойточностью, определяемой реализацией

DOUBLE PRECITION - вещественное число с

большей точностью, чем REAL

datetime (дата/время) DATE – хранение календарных дат, включая год,

месяц, день

TIME [точность] – хранение времени с точностью

представления секунд точность знаков

после запятой

TIMESTAMP [точность] – совместное хранение

даты и времени с точностью

представления секунд точность знаков

после запятой

6.1. Операторы создания и удаления таблиц

6.1.1. Оператор создания таблицы CREATE TABLE

С помощью оператора CREATE TABLE создается новая таблица.

Структура оператора:

CREATE TABLE имя_таблицы

(определение_столбца | ограничение_целостности_таблицы [,…])

Кроме имени таблицы, в операторе специфицируется список элементов

таблицы, каждый из которых служит либо для определения столбца, либо для

определения ограничения целостности определяемой таблицы. Требуется

наличие хотя бы одного определения столбца. Оператор CREATE TABLE

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

Для определения столбцов таблицы и ограничений целостности

используются специальные операторы, которые должны быть вложены в

оператор определения таблицы.

6.1.2. Определение столбца

Оператор определения столбца представляет собой выражение

следующего вида:

имя_столбца тип_данных

[DEFAULT константа | USER | NULL]

[ NOT NULL ] [UNIQUE]

[CHECK условие]

Кроме обязательной части, в которой определяется имя столбца и его тип

данных, определение столбца может содержать два необязательных раздела:

раздел значения столбца по умолчанию и раздел ограничений целостности

столбца.

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

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

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

литеральной константы с типом, соответствующим типу столбца; путем

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

занесения строки соответствует символьная строка, содержащая имя текущего

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

путем задания ключевого слова NULL, означающего, что значением по

умолчанию является неопределенное значение. Если значение столбца по

умолчанию не специфицировано, и в разделе ограничений целостности столбца

указано NOT NULL, то попытка занести в таблицу строку с

неспецифицированным значением данного столбца приведет к ошибке.

Указание в разделе ограничений целостности NOT NULL приводит к

неявному порождению проверочного ограничения целостности для всей

таблицы (см. следующий подраздел) "CHECK (C IS NOT NULL)" (где C - имя

данного столбца). Если ограничение NOT NULL не указано, и раздел

умолчаний отсутствует, то неявно порождается раздел умолчаний DEFAULT

NULL. Если указана спецификация уникальности, то порождается

соответствующая спецификация уникальности для таблицы.

Если указано проверочное ограничение столбца (CHECK), то условие

этого ограничения должно ссылаться только на данный столбец, и неявно

порождается соответствующее проверочное ограничение для всей таблицы.

6.1.3. Определение ограничений целостности таблицы

Ограничения целостности таблицы обладают следующим синтаксисом:

ограничение_целостности_таблицы::

{ PRIMARY KEY (столбец_к, …) }

| { UNIQUE (столбец_у, …) , … }

| { FOREIGN KEY (столбец_внешнего_ключа, …)

REFERENCES родительская_таблица [(родительский столбец, …)]

[ON UPDATE действие_обновления]

[ON DELETE действие_удаления] }

| { CHECK условие}

Столбцы, перечисленные в секции PRIMARY KEY, в своей совокупности образуют первичный ключ таблицы.

Каждое имя столбца_у в секции UNIQUE должно именовать столбец и не должно входить в этот список более одного раза, при этом в определении данного столбца должно быть указано ограничение NOT NULL. Действие ограничения уникальности состоит в том, что в таблице не допускается появление двух или более строк, значения столбцов уникальности которых совпадают. Ограничение по ссылкам (секция FOREIGN KEY) определяет условие на содержимое обеих этих таблиц, при котором ссылки можно считать корректными. При определении ограничений по ссылкам необходимо следить за соответствием столбцов связи дочерней и родительской таблицы. По определению, таблицы удовлетворяют заданному ограничению по ссылкам, если для каждой корректной ссылки существует объект, на который она ссылается Проверочное ограничение специфицирует условие, которому должна удовлетворять в отдельности каждая строка таблицы. Это условие не должно содержать подзапросов, спецификаций агрегатных функций, а также ссылок на внешние переменные или параметров. В него могут входить только имена столбцов данной таблицы и литеральные константы. Таблица удовлетворяет проверочному ограничению целостности в том и только в том случае, когда вычисление условия для каждой строки таблицы дает значение истина.

Для одной таблицы может быть задано несколько ограничений

целостности, в том числе те, которые неявно порождаются ограничениями

целостности столбцов. Стандарт SQL устанавливает, что ограничения таблицы

фактически проверяются при выполнении каждого оператора SQL,

изменяющего содержимое связанных таблиц.

Замечание. Наличие правильно подобранного набора ограничений БД

очень важно для надежного функционирования прикладной информационной

системы. Вместе с тем, в некоторых СУБД ограничения целостности

практически не поддерживаются. Поэтому при проектировании прикладной

системы необходимо принять решение о том, что более существенно:

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

возможных СУБД, или отказаться от их использования на уровне SQL,

сохранив возможность использования не самых современных СУБД.

6.1.4. Удаление таблицы DROP TABLE

Таблица удаляется оператором DROP TABLE имя_таблицы

[RESTRICT | CASCADE]

С помощью ключевых слов RESTRICT и CASCADE соответственно

указывается, нужно ли удалять каскадно (CASCADE) связанные с таблицей

объекты (таблицы, формы, связи и т.д.) или нет (RESTRICT).

6.1.5. Изменение таблицы ALTER TABLE

Структуру таблицы можно изменить оператором ALTER TABLE.

Оператор имеет более сложную структуру, чем CREATE TABLE, однако

назначение параметров оператора идентично соответствующим параметрам

CREATE TABLE.

6. Представления

Механизм представлений (view) является мощным средством языка SQL,

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

счет определения представления БД, которое реально является некоторым

хранимым в БД запросом с именованными столбцами, а для пользователя

ничем не отличается от базовой таблицы БД (с учетом технических

ограничений). Любая реализация технологии представлений должна

гарантировать соответствие представления базовым таблицам, на которых оно

определено. Обычно вычисление представления производится каждый раз при

его использовании.

В стандарте SQL оператор определения представления имеет следующий

синтаксис:

CREATE VIEW имя_представления [ столбец, …]

AS запрос [WITH CHECK OPTION]

Определяемое представление имя_представления является изменяемым

(т.е. по отношению к нему можно использовать операторы INSERT, DELETE и

UPDATE) в том и только в том случае, если выполняются следующие условия

для спецификации запроса:

1. В списке выборки не указано ключевое слово DISTINCT.

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

более одного раза.

3. В разделе FROM указана только одна таблица, являющаяся либо

базовой таблицей, либо изменяемой представляемой таблицей.

4. В условии выборки раздела WHERE не используются подзапросы.

5. В табличном выражении отсутствуют разделы GROUP BY и HAVING.

Указанные ограничения являются очень сильными. В конкретных

реализациях они могут быть ослаблены. Если в списке выборки спецификации запроса имеется хотя бы одно

арифметическое выражение на являющееся именем столбца, или если одно имя

столбца участвует в списке выборки более одного раза, определение

представления должно содержать список всех имен столбцов представляемой

таблицы.

Требование WITH CHECK OPTION в определении представления имеет

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

которая определяется спецификацией запроса, содержащей раздел WHERE.

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

таблицы, которые приводят к появлению в базовых таблиц строк, не видимых в

представляемой таблице (т.е. таких строк, которые не удовлетворяют условию

поиска раздела WHERE спецификации запроса). Если WITH CHECK OPTION в

определении представления отсутствует, такой контроль не производится.

Удаление представлений выполняется оператором

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

[RESTRICT | CASCADE]

Оператор действует аналогично оператору DROP TABLE.

7. Определение привилегий

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

пользователя к таблицам БД производится на основе механизма привилегий.

Фактически, этот механизм состоит в том, что для выполнения любого

действия над таблицей пользователь должен обладать соответствующей

привилегией (реально все возможные действия описываются фиксированным

стандартным набором привилегий). Пользователь, создавший таблицу,

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

выполнение операций над этой таблицей. В число этих привилегий входит

привилегия на передачу всех или некоторых привилегий по отношению к

данной таблице другому пользователю, включая привилегию на передачу

привилегий. Иногда поддерживается и обратная операция изъятия привилегий

от пользователя, ранее их получившего.

Стандарт SQL для определения представлений включает оператор

GRANT.

GRANT {список_привилегий | ALL PRIVILEGIES }

ON имя_объекта

TO {список_владельцев | PUBLIC}

[WITH GRANT OPTION] Список_привилегий указывает на одну или более делегируемые

привилегии (при указании столбцов привилегии распрстраняются только на

указанные столбцы):

SELECT

DELETE

INSERT [ (столбец [,…] ) ]

UPDATE [ (столбец [,…] ) ]

REFERENCES [ (столбец [,…] ) ]

USAGE

Привилегией REFERENCES по отношению к указанным столбцам

таблицы необходимо обладать, чтобы иметь возможность при определении

другой таблицы определить ограничение по ссылкам между этими таблицами.

Имя_объекта может представлять имя таблицы, представления, домена.

При указании PUBLIC привилегии передаются как всем существующим

пользователям, так и создаваемым впоследствии.

С помощью GRANT OPTION можно передать право не только на

пользование указанными привилегиями, но и на передачу их другим

пользователям.

Отмена предоставленных привилегий выполняется с помощью оператора

REVOKE:

REVOKE [GRANT OPTION FOR] {список_привилегий | ALL PRIVILEGIES}

ON имя_объекта

FROM {владелец1 [, …] | PUBLIC}

[RESTRICT | CASCADE]

Фраза GRANT OPTION FOR указывает на отмену разрешения по передаче

указанных привилегий пользователям из списка владельцев другим

пользователям.

С помощью фраз RESTRICT и CASCADE выполняется управление

зависимыми привилегиями: все привилегии, полученные на основе удаляемой

привилегии будут также удалены в случае CASCADE, и отмена будет

запрещена в случае наличия таковых при RESTRICT.

Контрольные вопросы

1. Для каких целей разработан язык SQL?

2. Какие теоретические разработки лежат в его основе?

3. Каким образом SQL может быть использован в приложениях БД?

4. В чем заключается разница в применении динамического и

статического SQL? Каковы преимущества и недостатки динамического

и статического SQL? 5. Каким образом можно организовать трансляцию QBE – запросов в

запросы SQL? Приведите примеры

6. Синтаксис и выполнение оператора SELECT.

7. Операторы модификации данных

8. Операторы создания, изменения и удаления таблицы.

9. Каково назначение представлений? Операторы создания и удаления

представлений.

10. Управление привилегиями.

для вивчення предмету “Автомобільні двигуни”

спеціальність 5.07010602 “Обслуговування та ремонт автомобілів і двигунів”

м. Рівне – 2012

Укладач: Ємельянов В.В. , викладач вищої категорії.

Рецензент: Пашинський В.Ф. , методист технікуму.

Конспект лекцій

для вивчення предмету “Автомобільні двигуни”

спеціальність 5.07010602 “Обслуговування та ремонт автомобілів і двигунів”

Розглянуто на засіданні циклової комісії «Автомобілі»

Протокол № 9 від 07.05. 2012

Голова циклової комісії: Ємельянов В.В.

Рекомендовано як посібник для вивчення предмету “Автомобільні двигуни”

Зміст

1. Анотація……………………………………………………………………….

2. Газові закони і термодинамічні процеси…………………………………....

3. Теоретичні цикли………………………………………………………….......

4.Дійсні цикли. Показники робочого циклу і двигуна.………………………

5.Тепловий баланс двигуна. ……………………………………………….......

6. Карбюрація…………………………………………………………………….

7.Сумішоутворення у дизельних двигунах…………………………………….

8.Характеристики автомобільних двигунів……………………………………

9. Кінематика КШМ…………………………………………………………….

10. Динамміка КШМ…………………………………………………………….

11. Зрівноваження двигунів…………………………………………………….

12. Конструкція КШМ і ГРМ…………………………………………………..

13. Конструкція систем охолодження і мащення…………………………….

14. Перспективи розвитку двигунів……………………………………………

1

Сейчас читают про: