Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы к зачету.docx
Скачиваний:
7
Добавлен:
19.09.2019
Размер:
590.16 Кб
Скачать

Предложения модификации Предложение delete имеет формат

DELETE

FROM базовая таблица | представление

[WHERE фраза];

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

Предложение INSERT имеет один из следующих форматов:

INSERT

Into {базовая таблица | представление} [(столбец [,столбец] ...)]

Values ({константа | переменная} [,{константа | переменная}] ...);

или

INSERT

Into {базовая таблица | представление} [(столбец [,столбец] ...)]

подзапрос;

Отличие заключается в том, что во втором случае сначала выполняется подзапрос(в памяти формируется рабочая таблица), а потом заполняется таблица.

Предложение UPDATE :

UPDATE (базовая таблица | представление}

SET столбец = значение [, столбец = значение] ...

[WHERE фраза]

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

Системный каталог

Системный каталог - это набор таблиц, в которых содержится информация, необходимая для правильного функционирования СУБД: о поддерживаемых базах данных и их базовых таблицах, представлениях, курсорах, индексах, пользователях и их правах доступа к информации, правилах модификации данных и т.д.

Так, в каждой строке системной таблицы SYSTABLES хранится описание одной из таблиц пользовательских или системной баз данных. Для каждой из них указывается имя таблицы, имя пользователя, который создал эту таблицу, число столбцов в ней и ряд других элементов информации. В таблице SYSCOLUMNS содержится строка для каждого столбца каждой таблицы, в которой указано имя столбца, имя таблицы, частью которой является данный столбец, тип данных для этого столбца и много другой информации о столбце.

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

Управление доступом (предложения grant / revoke )

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

Привилегии предоставляются с помощью предложения GRANT (предоставить), общий формат которого имеет вид

GRANT < привилегии > ON < объект > TO < пользователи >;

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

REVOKE <привилегии> ON <объект> FROM <пользователи>;

SQL – типы данных.

INTEGER

- целое число (обычно до 10 значащих цифр и знак);

SMALLINT

- "короткое целое" (обычно до 5 значащих цифр и знак);

BIT

- битовые последовательности переменной длины (обычно используются для хранения BinaryLargeOBject-объектов );

DECIMAL(p,q)

- десятичное число, имеющее p цифр (0 < p < 16) и знак; с помощью q задается число цифр справа от десятичной точки (q < p, если q = 0, оно может быть опущено);

FLOAT

- вещественное число с 15 значащими цифрами и целочисленным порядком, определяемым типом СУБД;

CHAR(n)

- символьная строка фиксированной длины из n символов (0 < n < 256);

VARCHAR(n)

- символьная строка переменной длины, не превышающей n символов (n > 0 и разное в разных СУБД, но не меньше 4096);

DATE

- дата в формате, определяемом специальной командой (по умолчанию mm/dd/yy); поля даты могут содержать только реальные даты, начинающиеся за несколько тысячелетий до н.э. и ограниченные пятым-десятым тысячелетием н.э.;

TIME

- время в формате, определяемом специальной командой, (по умолчанию hh.mm.ss);

DATETIME

- комбинация даты и времени;

MONEY

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

В некоторых СУБД еще существует тип данных LOGICAL, DOUBLE и ряд других. Как правило, СУБД предоставляют пользователю возможность самостоятельного определения новых типов данных, например, плоскостные или пространственные координаты, единицы различных метрик и т.д.

NULLприменяется в следующих случаях :

  1. Значение не известно (но определенно существует)

  2. Значение не применимо (не имеет содержательного смысла)

  3. Нет доступа” к значению атрибута

  1. Модификация данных средствами SQL. Использование индексов и виртуальных таблиц. Поддержка ограничений (ключей, ссылок) средствами СУБД, триггеры.

Модификация данных средствами SQL.

DDL. Создание / удаление / переопределение таблиц (схем)

Пользовательские схемы и таблицы БД описываются в SQL с помощью предложений CREATE SCHEMA (создать схему) и CREATE TABLE (создать таблицу):

CREATE TABLE < базовая_таблица>

( столбец тип_данных [NOT NULL]

[,столбец тип_данных [NOT NULL]] ...);

Пример:

CREATE TABLE S

( Шифр CHAR (80) NOT NULL,

Дата DATATIME NOT NULL,

Стоимость MONEY,

Подрядчик CHAR (255)

);

В результате создается пустая таблица S, а в системный каталог помещается строка, описывающая эту таблицу. В ряде СУБД имя таблицы дополняется именем пользователя, который издал предложение CREATE TABLE. Конструкция NOT NULL запрещает использование неопределенного значения, т.е. специального значения, которое вводится для представления "неизвестного значения" или "неприменимого значения".

DROP TABLE <имя таблицы>; - уничтожить таблицу, при этом удаляется описание таблицы, ее данные, связанные с ней представления и индексы, построенные для столбцов таблицы.

ALTER TABLE (изменить таблицу), позволяет добавить справа к таблице новый столбец, т.е. модифицировать описание таблицы.