Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Отчет по лабам.docx
Скачиваний:
11
Добавлен:
30.03.2015
Размер:
238.26 Кб
Скачать

Лабораторная работа №3

Вставка, удаление и обновление данных

Теперь заполним таблицы тестовыми данными в графическом режиме.

MSSQL

Следует заметить, что данный скрипт был сгенерирован автоматически

USE [Notarius]

GO

INSERT INTO [dbo].[Sdelka]

([N sdelki]

,[N skidki]

,[N uslugi]

,[N klienta]

,[Data]

,[Summa sdelki]

,[Komissionie])

VALUES

('3'

,'2'

,'4'

,'2'

,'2012-11-14'

,'600'

,'100')

GO

USE [Notarius]

GO

INSERT INTO [dbo].[Klient]

([N klienta]

,[FIO]

,[Vid deytelnosti]

,[Adres]

,[Telefon])

VALUES

('5'

,'Egorova Anna Dmitrievna'

,'Vrach'

,'Omsk, 1 Poselkovaiy, 62-109'

,'8-904-987-01-23')

GO

При заполнении таблиц была допущена ошибка и было необходимо удалить одну запись из таблицы:

USE [Notarius]

GO

DELETE FROM [dbo].[Sdelka]

WHERE [N sdelki]='1';

GO

ORACLE

Данный скрипт также был сгенерирован автоматически. Фактически же заполнение происходило в графическом режиме в SQLDeveloper.

INSERTINTO"SYSTEM"."KLIENT" (N_KLIENTA,FIO,VID_DEYTELNOSTI,ADRES,TELEFON)VALUES('1', 'Иванов Пётр Михайлович', 'Пенсионер', 'Омск, Лукашевича, 15-103', '22-84-56')

INSERT INTO "SYSTEM"."KLIENT" (N_KLIENTA, FIO, VID_DEYTELNOSTI, ADRES, TELEFON) VALUES ('2', 'Кубатов Игорь Владимирович', 'Студент', 'Омск, Мира проспект, 105-75', '8-904-587-69-25')

INSERT INTO "SYSTEM"."KLIENT" (N_KLIENTA, FIO, VID_DEYTELNOSTI, ADRES, TELEFON) VALUES ('3', 'Петрова Юлия Викторовна', 'Домохозяйка', 'Омск, Нефтезаводская, 13-84', '8-913-845-75-02')

INSERT INTO "SYSTEM"."KLIENT" (N_KLIENTA, FIO, VID_DEYTELNOSTI, ADRES, TELEFON) VALUES ('4', 'Лаптев Андрей Юрьевич', 'Преподаватель', 'Омск, Магистральная, 47-2', '64-25-86')

INSERT INTO "SYSTEM"."KLIENT" (N_KLIENTA, FIO, VID_DEYTELNOSTI, ADRES, TELEFON) VALUES ('5', 'Лисина Ольга Андреевна', 'Врач', 'Омск, Красный путь, 133-25', '8-923-754-01-68')

INSERT INTO "SYSTEM"."KLIENT" (N_KLIENTA, FIO, VID_DEYTELNOSTI, ADRES, TELEFON) VALUES ('6', 'Сидоров Владимир Анатольевич', 'Охранник', 'Омск, Архитекторов бульвар, 11-74', '8-904-758-61-33')

INSERT INTO "SYSTEM"."SKIDKA" (N_SKIDKI, VID_SKIDKI, RAZMER_SKIDKI) VALUES ('1', 'Студенческая', '100')

INSERT INTO "SYSTEM"."SKIDKA" (N_SKIDKI, VID_SKIDKI, RAZMER_SKIDKI) VALUES ('2', 'Подарочный купон', '2000')

INSERT INTO "SYSTEM"."SKIDKA" (N_SKIDKI, VID_SKIDKI, RAZMER_SKIDKI) VALUES ('3', 'Счастливое время', '350')

INSERT INTO "SYSTEM"."SKIDKA" (N_SKIDKI, VID_SKIDKI, RAZMER_SKIDKI) VALUES ('4', 'Флаер', '150')

INSERT INTO "SYSTEM"."SKIDKA" (N_SKIDKI, VID_SKIDKI, RAZMER_SKIDKI) VALUES ('5', 'Пенсионерам', '250')

INSERT INTO "SYSTEM"."SKIDKA" (N_SKIDKI, VID_SKIDKI, RAZMER_SKIDKI) VALUES ('6', 'Новогодняя', '200')

Лабораторная работа №4

Создание простых запросов на выборку

Создадим несколько простых запросов на выборку данных.

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

MSSQL

После выполнения следующего запроса, можно извлечь данные из таблицы Клиент, где № Клиента лежит в интервале между 2 и 5:

USE [Notarius]

GO

SELECT *

FROM [dbo].[Klient] WHERE [N klienta] BETWEEN '2' and '5'

GO

Этим запросом узнаем максимальный размер скидки из таблицы Скидка:

USE [Notarius]

GO

SELECT max([Razmer skidki]) as max

FROM [dbo].[Skidka]

GO

ORACLE

Выбрать ФИО и Адрес из таблицы Клиент

SELECTfio,adresFROMklient

Выбрать Максимальный размер скидки из таблицы Скидка

SELECT MAX(razmer_skidki) FROM skidka

Лабораторная работа №5

Создание сложных запросов на выборку

В реаль­ных приложениях часто требуется использовать сразу несколько таблиц БД. Запросы, которые обращаются одновременно к нескольким таблицам, называются многотабличными или сложными запросами.

Хорошо спроектированная реляционная БД эффективна из-за связей между таблицами. При выборе информации из нескольких таблиц такие связи называют объединениями.

Создадим несколько сложных запросов, используя объединения и вложенные запросы.

MS

Данным запросом можно узнать Описание услуги из таблицы Услуга и ФИО клиентов из таблицы Клиент. Полученный результат будет упорядочен по ФИО клиентов:

USE[Notarius]

GO

SELECT[Opisanieuslugi], [FIO]

FROM [dbo].[Usluga], [dbo].[Klient]

WHERE [N uslugi]=[N klienta]

ORDERBY[FIO]

GO

Следующий запрос является вложенным. Он показывает ФИО и Телефон клиентов из таблицы Клиент, где № Клиента приравнивается к № Скидки из таблицы Скидка, и Размер скидка должен быть равен 100:

USE [Notarius]

GO

SELECT [FIO], [Telefon]

FROM [dbo].[Klient]

WHERE [N klienta] = (Select [N skidki] FROM [dbo].[Skidka]

WHERE [Razmer skidki]='100')

GO

ORACLE

Выполним аналогичные запросы в другой базе данных.

Выбрать Описание услуги из таблицы Услуга и ФИО клиентов из таблицы Клиент. Полученный результат будет упорядочен по ФИО клиентов:

SELECT usluga.opisanie_uslugi,klient.fio FROM usluga, klient WHERE usluga.n_uslugi = klient.n_klienta ORDER BY klient.fio

Следующий запрос является вложенным. Он показывает ФИО и Телефон клиентов из таблицы Клиент, где № Клиента приравнивается к № Скидки из таблицы Скидка, и Размер скидка должен быть равен 100:

SELECT klient.fio, klient.telefon FROM klient WHERE n_klienta=

(SELECT skidka.n_skidki FROM skidka WHERE skidka.razmer_skidki='100')