Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Otvety_BD_2013-1.doc
Скачиваний:
140
Добавлен:
28.03.2015
Размер:
954.88 Кб
Скачать

20. Операторы манипулирования данными

В операции манипулирования данными входят три операции: операция удаления записей — ей соответствует оператор DELETE, операция добавления или ввода новых записей — ей соответствует оператор INSERT и операция изменения (обновления записей) — ей соответствует оператор UPDATE.

  • INSERT (добавление строки);

  • UPDATE (изменение строки в таблице);

  • DELETE (удаление строки в таблице).

ДОБАВЛЕНИЕ:

Оператор INSERT используется для добавления записи и имеет формат

INSERT INTO <имя таблицы> [(имя столбца [,..n])] {VALUES (значение [,..n]) | <SELECT_оператор>}

Пример: INSERT INTO студент (фамилия, шифр) VALUES(‘Петров ‘, 1111).

Форма оператора insert с параметром values предназначена для вставки единственной строки в таблицу. Список столбцов указывает столбцы, в которые будут присвоены значения в добавляемых записях. Этот список может быть опущен, тогда подразумеваются все столбцы по порядку. Если указывается конкретный список имён полей, то любые пропущенные в нём столбцы должны быть объявлены при создании таблицы как NULL, за исключением тех случаев, когда при описании столбца использовался параметр default. Список значений должен соответствовать списку столбцов следующим образом:

1) количество элементов в обоих списках должно быть одинаково;

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

3) типы данных элементов в списки значений должны быть совместимы с типами данных соответствующих столбцов таблицы.

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

INSERT INTO итог (название, месяц, стоимость) SELECT название товара, месяц сделки, сумма FROM товар_сделка where сумма=6599

УДАЛЕНИЕ:

DELETE FROM <имя таблицы> [WHERE <условия отбора>]

Без where удалится вся информация, но таблица останется, с where удалится по условию.

ОБНОВЛЕНИЕ

UPDATE <имя таблицы> SET <имя столбца=название>[,..n] [where <условие отбора>]

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

UPDATE mark_st

SET mark = ‘5’

WHERE id_st = 100 AND id_ex = 10

21.Физическая организация бд: файлы, записи, блоки.

База данных (БД) – это совместно используемый набор логически связанных данных и описание этих данных, предназначенное для удовлетворения информационных потребностей организации.

От того, каким образом данные физически хранятся на дисках, в большой степени зависит скорость работы с данными. Можно сказать, что база хранится на диске как набор записей различного формата. Часто при обсуждении физического хранения данных исп-ют термин «файл». В данном случае под файлом понимают набор записей одинакового формата, т.е. файл аналогичен отношению. Каждая запись файла включает столько байт сколько необходимо для сохранения всех полей записи. Кроме того запись может включать след. доп. байты:

­   Нек-ые байты могут свидетельствовать о формате записи. Это необходимо, если совместно хранятся записи различных форматов.

­   Один или неск-ко байт могут хранить инфо о длине записи или длине поля. Такая инфо необходима в случае использования типа varChar.

­   Бит удаления. Большинство БД при выполнении запроса delete не производит фактического удаления записи, т.к. это дорогостоящая операция. Вместо этого у соответствующей записи взводится бит удаления.

­   Бит использования. Он хранит инфо о наличии свободного места.

­   Неиспользуемое пространство.

Если запись подразумевает такие типы данных как text, image, blob (двоичная инфо), то такие данные не хранятся вместе с записью, а хранятся в отдельном блоке. В записи же хранится адрес.

Пример: Сотрудник (таб. №: int; № отд.: int; Фамилия: char(20); Фото: image)

1ый байт – служебная инфо; 2ой-5ый – табел. номер; 6ой-9ый – номер отдела; 10-29 – фамилия; 30-33 – ссылка на фото; 34ый байт – служеб. инфо; 39-42 – номер отдела; 43-62 – фамилия; 63-66 – ссылка на фото.

Если тип varChar:

1ый байт – служебная инфо; 2-5 – табел. номер; 6-9 – номер отдела; 10 байт – длина фамилии; 11-16 – фамилия, если 6 символов в ней; 17-20 – адрес; 21 – служеб. инфо; 22-25 – таб. номер; 26-29 – номер отдела; 30 – длина, напр., 2; 31-32 – фамилия.

 

Наиболее быстрая обработка данных была бы возможна, если бы вся БД помещалась в оперативной памяти. Однако реальные базы гораздо больших размеров, чем реальная память. Поэтому можно говорить, что отношение при хранении разбивается на фрагменты. Такие фрагменты наз-ся блоки или страницы. Размер блока зависит от кол-ва байт, к-ые м.б. считаны или записаны за одно обращение к диску. Нек-ые СУБД позволяют управлять размерами блока. Каждый блок включает мн-во записей, чаще всего одного формата. Кроме того блок включает адрес след-его блока файла. Блок может включать служебные байты, напр., с кол-вом записей в нем. Блоки могут иметь неиспользуемое пространство для повышения эффективности обработки.

Файл может включать так называемый нулевой блок, формат к-ого отличается от ост-ых блоков. Такой блок может содержать схему отношения. Блоки м.б. по-разному организованы внутри файла, напр., м.б. файлы, организованные в виде кучи, хешированные и упорядоченные файлы. Эффективность той или иной организации файла будем оценивать кол-вом блоков, к-ые необходимо считать с диска при поиске инфо.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]