Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
БД(4 курс).doc
Скачиваний:
20
Добавлен:
21.04.2019
Размер:
716.29 Кб
Скачать

56,3.14 Sql: Управление данными: добавление, удаление записей.

Оператор delete удаляет из таблицы SPвсе строки с информацией о поставках детали с номером Р2

Delete

From sp

Where p#=p#(‘p2’);

Оператор Update добавляет данные. В данном случае увеличивает в два раза код статуса всех поставщиков в Париже и вносит в базу данных информацию о том, что эти поставщики переехали в Рим.

Update S

Set status=2* status,

City = ‘Rome’

Where city =”Paris”;

57,3.15 Sql: Команда select. Общая структура команды (блоки from, where и т.П.)

Поиск записей осуществляется командой SELECT

SELECT * FROM table_name WHERE (выражение) [order by field_name [desc][asc]]

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

Если записей несколько, то при указанном предложении order by они будут отсортированы по тому полю, имя которого записывается правее этого ключевого слова (если задано слово desc, то упорядочивание происходит в обратном порядке). В предложении order by могут также задаваться несколько полей.

Особое значение имеет символ *. Он предписывает, что из отобранных записей следует извлечь все поля, когда будет выполнена команда получения выборки. С другой стороны, вместо звездочки можно через запятую непосредственно перечислить имена полей, которые требуют извлечения. Но чаще всего все же пользуются именно *.

58,3.16 Sql: Команда select. Выборка из нескольких связанных таблиц.

Очень часто возникает ситуация, когда выборку данных надо производить из отношения, которое является результатом слияния (join) двух других отношений. Например, нам нужно получить из базы данных publications информацию о всех печатных изданиях в виде следующей таблицы:

------------------------------------------------

|название_книги | год_выпуска | издательство |

------------------------------------------------

| | | |

| | | |

Для этого СУБД предварительно должна выполнить слияние таблиц titles и publishers, а только затем произвести выборку из полученного отношения.

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

    SELECT titles.title,titles.yearpub,publishers.publisher

        FROM titles,publishers

        WHERE titles.pub_id=publishers.pub_id;

Естественно, имеется возможность производить слияние и более чем двух таблиц. Например, чтобы дополнить описанную выше выборку именами авторов книг необходимо составить оператор следующего вида:

SELECT authors.author,titles.title,titles.yearpub,publishers.publisher

FROM titles,publishers,titleauthors

WHERE titleauthors.au_id=authors.au_id AND

titleauthors.title_id=titles.title_id AND

titles.pub_id=publishers.pub_id AND

titles.yearpub > 1996;

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