Лекция № 22
31.05.13
Операторы определения данных (DDL) -
применяются для описания структур
используемых данных.
 CREATE TABLE - создание таблицы;
 ALTER TABLE - изменение структуры
таблицы;
 DROP TABLE - удаление таблицы;
Не предусмотренные стандартом (дополнительные
средства)
 CREATE INDEX - создание индекса
Операторы манипулирования данными
(DML) - предназначены для заполнения
таблиц данными и для обновления
загруженной в них информации.
DELETE - удаляет из таблицы одну или
несколько строк, соответствующих условиям
фильтрации.
INSERT - вставляет одну строку в таблицу
UPDATE - обновляет значения одного или
нескольких столбцов в одной или нескольких
строках, соответствующих условиям
фильтрации
Оператор запросов - SELECT - для
выборки информации из БД.
Операторы управления транзакциями
COMMIT - завершить транзакцию
ROLLBACK - откатить транзакцию
SAVEPOINT- сохранить промежуточную
точку выполнения транзакции.
Средства администрирования данных
 CREATE DATABASE - создать новую БД
 ALTER DATABASE - изменить набор основных объектов в БД,
ограничений, касающихся всей БД.
 DROP DATABASE - удалить существующую БД
 CREATE DBAREA - создать новую область хранения и сделать
ее доступной для размещения данных.
 ALTER DBAREA - изменить ранее созданную область хранения
 DROP DBAREA - удалить существующую область хранения
 ALTER PASSWORD - изменить пароль для всей БД
 GRANT - предоставить права доступа на ряд действий над
некоторым объектом БД
 REVOKE - лишить права доступа к некоторому объекту или
некоторым действиям над объектом.
 прописные буквы используются для записи
зарезервированных слов;
 строчные буквы - для записи определяемых
пользователем слов;
 вертикальная черта "|" указывает на
необходимость выбора одного из нескольких
значений;
 {} - определяют обязательный элемент;
 [] - определяют необязательный элемент
 многоточие "…" используется для указания
необязательной возможности повторения
конструкции.
Cоздавать таблицы необходимо в
определенным порядке: вначале
родительские, затем дочерние.
Формат оператора:
CREATE TABLE ИмяТаблицы (
{ИмяСтолбца ТипДанных [NOT NULL] [UNIQUE]
[DEFAULT значение по умолчанию]
[CHECK (условие проверки на
допустимость),]
[…] }
[PRIMARY KEY (список столбцов),]
[UNIQUE (список столбцов), […] ]
[FOREIGN KEY (список столбцов внешних ключей)
REFERENCES имя род таб [(список столбцов
первичных ключей)],
[ON UPDATE правило ссылочной целостности]
[ON DELETE правило ссылочной целостности] ,]
[CHECK (условие проверки на допустимость)] [, …]} );
Ключевое слово:
 NULL означает, что столбец может содержать
неопределенные значения.
 CHECK(ограничение) задает ограничения
для доменов атрибутов.
 PRIMARY KEY обеспечивает смысловую
целостность данных.
 UNIQUE обеспечивает уникальность
альтернативных ключей.
 FOREIGN KEY - для определения внешних
ключей.
Поддержка ссылочной целостности осуществляется
фразами ON UPDATE и ON DELETE предложения
FOREIGN KEY, где необходимо выбрать один из
возможных квалификаторов:
 NO ACTION - удаление или изменение строки из
родительской таблицы отменяется; используется
по умолчанию также и в том случае, когда фраза
ON DELETE или ON UPDATE опущена.
 CASCADE - удаление или изменение строки из
родительской таблицы приводит к
автоматическому удалению или изменению всех
ссылающихся на нее строк дочерней таблицы; если
дочерняя таблица связана с другими таблицами, то
изменения распространяются далее аналогичным
образом:
 SET NULL - удаление строки из родительской
таблицы приводит к автоматическому присвоению
внешним ключам ссылающихся строк дочерней
таблицы NULL-значений; этот вариант может
использоваться только в том случае, если в
определении столбца внешнего ключа отсутствует
ключевое слово NOT NULL.
 SET DEFAULT - удаление строки из родительской
таблицы приводит к автоматическому присвоению
внешним ключам ссылающихся строк дочерней
таблицы значений, принимаемых по умолчанию;
этот вариант может использоваться только в том
случае, если в определении столбца внешнего ключа
присутствует ключевое слово DEFAULT и задано
значение, используемое по умолчанию.
Формат оператора:
 DROP TABLE имя_таблицы [RISTRICT |
CASCADE]
Ключевые слова RISTRICT и CASCADE
определяют условия удаления таблицы в
том случае, если в БД присутствуют ее
дочерние таблицы.
 RISTRICT вызовет отмену удаления;
 CASCADE вызывает автоматическое
удаление всех объектов БД, существование
которых зависит отданной таблицы.
Формат оператора для ввода одиночной строки:
INSERT INTO имя_таблицы [(список столбцов)]
VALUES (список значений);
Между списком имен столбцов и списком значений
должно быть строгое соответствие:
1. Кол-во элементов в обоих списках должно быть
одинаковым
2. Между положением элементов в списках должно быть
строгое соответствие, которое определяется слева
направо: первый элемент одного списка соответствует
первому элементу второго и т.д.
3. Типы данных соответствующих элементов списков
должны быть одинаковые и принадлежать к одному м
тому же домену.
Например, дана таблица: СОТРУДНИКИ
(ТабN, ФИО, Стаж_работы, Дата_рождения,
Адрес)
Пример 1.
INSERT INTO Сотрудники (ТабN, ФИО, Стаж)
VALUES (101,'Сидоров П.П.', 15,);
Если вводится строка с заданием значений
для всех столбцов, то задание списка
столбцов необязательно.
Пример 2.
INSERT INTO Сотрудники
VALUES (101,'Сидоров П.П.', 15, '05.04.1978',
'Омск');
Формат оператора ввода сразу нескольких
строк, при копировании их из другой
таблицы:
INSERT INTO имя_таблицы [(список столбцов)]
SELECT …
Пример 3.
INSERT INTO Сотрудники1 (ТабN, ФИО)
SELECT ТабN, ФИО
FROM Сотрудники;
Формат оператора:
DELETE FROM имя_таблицы
[WHERE условия_отбора]
Пример 4.
DELETE FROM Сотрудники
WHERE ТабN =101
Если условия отбора не задаются, то из
таблицы удаляются все существующие в ней
строки. Таблица при этом остается пустой,
незаполненной.
Формат оператора:
UPDATE имя_таблицы
SET имя_столбца1 = новое_значение, [имя
столбца2 = новое_значение2…]
[WHERE условие_отбора]
Новые данные должны быть совместимы с
теми данными, которые они заменяют.
Если условие отбора не задается, то операция
модификации будет применена ко всем
строкам таблицы.
Например, для таблицы ДОЛЖОКЛАД
(Должность, Оклад)
Пример 5.
UPDATE ДолжОклад
SET Оклад = Оклад*1,3
Пример 6.
UPDATE ДолжОклад
SET Оклад = Оклад*1,3
WHERE Должность='Лаборант' AND Должность
= 'Ст.лаборант';

0045

  • 1.
  • 2.
    Операторы определения данных(DDL) - применяются для описания структур используемых данных.  CREATE TABLE - создание таблицы;  ALTER TABLE - изменение структуры таблицы;  DROP TABLE - удаление таблицы; Не предусмотренные стандартом (дополнительные средства)  CREATE INDEX - создание индекса
  • 3.
    Операторы манипулирования данными (DML)- предназначены для заполнения таблиц данными и для обновления загруженной в них информации. DELETE - удаляет из таблицы одну или несколько строк, соответствующих условиям фильтрации. INSERT - вставляет одну строку в таблицу UPDATE - обновляет значения одного или нескольких столбцов в одной или нескольких строках, соответствующих условиям фильтрации
  • 4.
    Оператор запросов -SELECT - для выборки информации из БД. Операторы управления транзакциями COMMIT - завершить транзакцию ROLLBACK - откатить транзакцию SAVEPOINT- сохранить промежуточную точку выполнения транзакции.
  • 5.
    Средства администрирования данных CREATE DATABASE - создать новую БД  ALTER DATABASE - изменить набор основных объектов в БД, ограничений, касающихся всей БД.  DROP DATABASE - удалить существующую БД  CREATE DBAREA - создать новую область хранения и сделать ее доступной для размещения данных.  ALTER DBAREA - изменить ранее созданную область хранения  DROP DBAREA - удалить существующую область хранения  ALTER PASSWORD - изменить пароль для всей БД  GRANT - предоставить права доступа на ряд действий над некоторым объектом БД  REVOKE - лишить права доступа к некоторому объекту или некоторым действиям над объектом.
  • 6.
     прописные буквыиспользуются для записи зарезервированных слов;  строчные буквы - для записи определяемых пользователем слов;  вертикальная черта "|" указывает на необходимость выбора одного из нескольких значений;  {} - определяют обязательный элемент;  [] - определяют необязательный элемент  многоточие "…" используется для указания необязательной возможности повторения конструкции.
  • 7.
    Cоздавать таблицы необходимов определенным порядке: вначале родительские, затем дочерние.
  • 8.
    Формат оператора: CREATE TABLEИмяТаблицы ( {ИмяСтолбца ТипДанных [NOT NULL] [UNIQUE] [DEFAULT значение по умолчанию] [CHECK (условие проверки на допустимость),] […] } [PRIMARY KEY (список столбцов),] [UNIQUE (список столбцов), […] ] [FOREIGN KEY (список столбцов внешних ключей) REFERENCES имя род таб [(список столбцов первичных ключей)], [ON UPDATE правило ссылочной целостности] [ON DELETE правило ссылочной целостности] ,] [CHECK (условие проверки на допустимость)] [, …]} );
  • 9.
    Ключевое слово:  NULLозначает, что столбец может содержать неопределенные значения.  CHECK(ограничение) задает ограничения для доменов атрибутов.  PRIMARY KEY обеспечивает смысловую целостность данных.  UNIQUE обеспечивает уникальность альтернативных ключей.  FOREIGN KEY - для определения внешних ключей.
  • 10.
    Поддержка ссылочной целостностиосуществляется фразами ON UPDATE и ON DELETE предложения FOREIGN KEY, где необходимо выбрать один из возможных квалификаторов:  NO ACTION - удаление или изменение строки из родительской таблицы отменяется; используется по умолчанию также и в том случае, когда фраза ON DELETE или ON UPDATE опущена.  CASCADE - удаление или изменение строки из родительской таблицы приводит к автоматическому удалению или изменению всех ссылающихся на нее строк дочерней таблицы; если дочерняя таблица связана с другими таблицами, то изменения распространяются далее аналогичным образом:
  • 11.
     SET NULL- удаление строки из родительской таблицы приводит к автоматическому присвоению внешним ключам ссылающихся строк дочерней таблицы NULL-значений; этот вариант может использоваться только в том случае, если в определении столбца внешнего ключа отсутствует ключевое слово NOT NULL.  SET DEFAULT - удаление строки из родительской таблицы приводит к автоматическому присвоению внешним ключам ссылающихся строк дочерней таблицы значений, принимаемых по умолчанию; этот вариант может использоваться только в том случае, если в определении столбца внешнего ключа присутствует ключевое слово DEFAULT и задано значение, используемое по умолчанию.
  • 12.
    Формат оператора:  DROPTABLE имя_таблицы [RISTRICT | CASCADE] Ключевые слова RISTRICT и CASCADE определяют условия удаления таблицы в том случае, если в БД присутствуют ее дочерние таблицы.  RISTRICT вызовет отмену удаления;  CASCADE вызывает автоматическое удаление всех объектов БД, существование которых зависит отданной таблицы.
  • 13.
    Формат оператора дляввода одиночной строки: INSERT INTO имя_таблицы [(список столбцов)] VALUES (список значений); Между списком имен столбцов и списком значений должно быть строгое соответствие: 1. Кол-во элементов в обоих списках должно быть одинаковым 2. Между положением элементов в списках должно быть строгое соответствие, которое определяется слева направо: первый элемент одного списка соответствует первому элементу второго и т.д. 3. Типы данных соответствующих элементов списков должны быть одинаковые и принадлежать к одному м тому же домену.
  • 14.
    Например, дана таблица:СОТРУДНИКИ (ТабN, ФИО, Стаж_работы, Дата_рождения, Адрес) Пример 1. INSERT INTO Сотрудники (ТабN, ФИО, Стаж) VALUES (101,'Сидоров П.П.', 15,);
  • 15.
    Если вводится строкас заданием значений для всех столбцов, то задание списка столбцов необязательно. Пример 2. INSERT INTO Сотрудники VALUES (101,'Сидоров П.П.', 15, '05.04.1978', 'Омск');
  • 16.
    Формат оператора вводасразу нескольких строк, при копировании их из другой таблицы: INSERT INTO имя_таблицы [(список столбцов)] SELECT … Пример 3. INSERT INTO Сотрудники1 (ТабN, ФИО) SELECT ТабN, ФИО FROM Сотрудники;
  • 17.
    Формат оператора: DELETE FROMимя_таблицы [WHERE условия_отбора] Пример 4. DELETE FROM Сотрудники WHERE ТабN =101 Если условия отбора не задаются, то из таблицы удаляются все существующие в ней строки. Таблица при этом остается пустой, незаполненной.
  • 18.
    Формат оператора: UPDATE имя_таблицы SETимя_столбца1 = новое_значение, [имя столбца2 = новое_значение2…] [WHERE условие_отбора] Новые данные должны быть совместимы с теми данными, которые они заменяют. Если условие отбора не задается, то операция модификации будет применена ко всем строкам таблицы.
  • 19.
    Например, для таблицыДОЛЖОКЛАД (Должность, Оклад) Пример 5. UPDATE ДолжОклад SET Оклад = Оклад*1,3 Пример 6. UPDATE ДолжОклад SET Оклад = Оклад*1,3 WHERE Должность='Лаборант' AND Должность = 'Ст.лаборант';