Внешний ключ (foreign key) — это один или несколько столбцов в таблице, которые ссылаются на первичный ключ в другой таблице. Основное назначение внешних ключей — обеспечить целостность данных в связанных таблицах. Внешний ключ не позволит добавить строку, если не найдет связанного значения первичного ключа в родительской таблице. А также не даст удалить или изменить строку, на которую имеются ссылки. Как правило, внешний ключ указывает на первичный ключ из связанной главной таблицы, но это необязательно должно быть непременным условием.
Есть книги и авторы, одну книгу могут писать несколько авторов и, конечно же, один автор может написать много книг (промежуточный вопрос по sql: как организовать такую связь? вы тут же отвечаете: ""это "многие ко многим", потому через 3 таблицы"").
И далее уже непосредственно задача: напишите запрос, который выведет названия книг написанных ровно двумя авторами.
Индекс помогает ускорить запросы на получение данных, но замедляет процесс добавления, изменения и удаления записей, а также занимает дополнительное пространство на диске. Индексы могут быть добавлены или удалены без влияния на сами данные.
Пусть есть процедура, которая умеет сдвигать массив влево на 1 элемент, начиная с указанного символа (устанавливая последний элемент равным нулю):
type newArr = array [1..5] of integer;
procedure shiftArr(var promArr: newArr; k:integer);
var j:integer;
begin
for j:=k to 4 do
promArr[j]:=promArr[j+1];
promArr[high(promArr)]:=0;
end;