![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
On update no action;
Теперь можно создать запись в таблице ОТПУСК_ТОВАРА только если такой товар и накладная существуют, удалить товар без удаления всех записей о его отпуске нельзя (неизвестна будет цена), а вот при удалении накладной все записи об отпущенном товаре будут удалены. Вставим запись в таблицы НАКЛАДНАЯ и ОТПУСК: INSERT INTO NAKL (POK_ID) VALUES(2); INSERT INTO OTPUSK (NAKL_ID, TOV_ID, KOLVO) VALUES(1, 1, 10); INSERT INTO OTPUSK (NAKL_ID, TOV_ID, KOLVO) VALUES(1, 4, 8); INSERT INTO OTPUSK (NAKL_ID, TOV_ID, KOLVO) VALUES(1, 5, 12); INSERT INTO OTPUSK (NAKL_ID, TOV_ID, KOLVO) VALUES(1, 6, 25); Посмотрим на наши данные, выполнив запрос: select T.TOV_NAME, T.TOV_CENA, O.KOLVO, T.TOV_CENA*O.KOLVO AS SUMMA FROM TOVAR T, OTPUSK O, NAKL N WHERE (N.Id_NAKL = O.NAKL_Id) AND (T.Id_TOV = O.TOV_Id) Рис.25 Обращение к вычисляемым полям На базе этого запроса создадим ПРОСМОТР: CREATE VIEW PO_NAKL (TOV_NAME, TOV_CENA, KOLVO, NAKL_ID, SUMMA) AS SELECT TOVAR.TOV_NAME, TOVAR.TOV_CENA, OTPUSK.KOLVO, OTPUSK.NAKL_ID, TOVAR.TOV_CENA*OTPUSK.KOLVO AS SUMMA FROM TOVAR, OTPUSK WHERE (TOVAR.Id_TOV = OTPUSK.TOV_Id);
Тогда мы всегда можем вызвать: SELECT * FROM PO_NAKL WHERE NAKL_ID = 1 Аналогично: CREATE VIEW POK_TEL AS SELECT P.Id_POKUP, P.POK_NAME, C.CITY_NAME, T.PHONE_POK FROM TEL_POKUP T, POKUP P, CITY C WHERE (T.Id_POKUP = P.Id_POKUP) AND (C.Id_CITY=P.POK_CITY)
SELECT * FROM POK_TEL WHERE Id_POKUP = 2 Поскольку просмотры, выбирающие данные из нескольких таблиц не позволяют изменять данные и показывают только то, что мы считаем нужным показать, именно на них мы и будем давать право просмотра пользователям, не входящим в Роль Student_Info.
|