Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 только начал осваивать  [new]
akterishka
Member

Откуда:
Сообщений: 18
3.
Картинка с другого сайта.
1.Создать и заполнить (не менее 10 записей в каждой таблице) базу данных согласно следующей схеме.
Тип и размер полей задать самостоятельно.
2. Написать запросы:
2.1. Вывести название товара, его стоимость и производителя, для товаров не купленных ни разу.
2.2. Вывести название товара и его стоимость для товаров, произведенных в период с апреля по май 2002 года.
2.3. Вывести ФИО покупателей, купивших товаров на наибольшую сумму.
2.4. Вывести фамилию и телефон покупателя (покупателей), сделавшего последнюю покупку.
2.5. Вывести название, производителя и стоимость самого дешевого товара.
2.6 Вывести ФИО покупателей, название, количество и суммарную стоимость всех покупок для каждого из них.
3. Создать представление, содержащее следующие поля: Название товара, Производитель, Дата выпуска, Стоимость.
4. Создать представление каталог покупателей.

Вот что уже сделал я
CREATE TABLE Buyers(
 BuyrID int not null,
 surname char (512) not null,
 name char(512) not null,
 address varchar(1000),
 tel char(8),
 discount int,
 CONSTRAINT BuyersPK PRIMARY KEY (BuyrID)
);
CREATE TABLE Product(
 ProdID int NOT NULL,
 Name char (512) NOT NULL,
 Manuf varchar (100) NULL,
 Vremya date NULL,
 Pay number (6,2) NULL,
 CONSTRAINT ProductPK PRIMARY KEY (ProdID)
);
CREATE TABLE Buy (
 data_pokup date,
 amount number,
 ProdID int NOT NULL,
 BuyrID int NOT NULL,
 CONSTRAINT BuyersProductPK PRIMARY KEY (ProdID,BuyrID),
 constraint Buy_ProductFK foreign key(ProdID) references Product(ProdID) on delete cascade,
 constraint Buy_BuyersFK foreign key(BuyrID) references Buyers(BuyrID) on delete cascade
 );

Create sequence ProdID increment by 1 start with 1;


Хотелось бы узнать правильно ли я делаю. Строго не судите.
11 ноя 12, 18:05    [13455061]     Ответить | Цитировать Сообщить модератору
 Re: только начал осваивать  [new]
Добрый Э - Эх
Guest
akterishka,

последовательность (sequence) просто так создал, чтобы была?
11 ноя 12, 18:11    [13455079]     Ответить | Цитировать Сообщить модератору
 Re: только начал осваивать  [new]
akterishka
Member

Откуда:
Сообщений: 18
нет.затем я делаю следующее
insert into Product values(ProdID.NextVal,'PC','Asus',to_date('1998/05/31','yyyy/mm/dd'),10000);


Ну и так далее заполяя таблицу.
11 ноя 12, 18:14    [13455089]     Ответить | Цитировать Сообщить модератору
 Re: только начал осваивать  [new]
akterishka
Member

Откуда:
Сообщений: 18
Мне просто интересно правильно ли я понял схему и правильно ли я делаю.Или может что то не так.И нужно использовать представления??
11 ноя 12, 18:15    [13455094]     Ответить | Цитировать Сообщить модератору
 Re: только начал осваивать  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
akterishka
..

Хотелось бы узнать правильно ли я делаю. Строго не судите.

- тип char - в топку, varchar туда же ( используйте varchar2 )
- подтип int - для скидки (имхо) спорный
- и 'голый' number для количества - тоже
11 ноя 12, 19:11    [13455235]     Ответить | Цитировать Сообщить модератору
 Re: только начал осваивать  [new]
akterishka
Member

Откуда:
Сообщений: 18
orawish,

спасибо огромное исправлю. а вот таблицы Buy правильно сделал? точнее вот это часть
ProdID int NOT NULL,
 BuyrID int NOT NULL,
 CONSTRAINT BuyersProductPK PRIMARY KEY (ProdID,BuyrID),
 constraint Buy_ProductFK foreign key(ProdID) references Product(ProdID) on delete cascade,
 constraint Buy_BuyersFK foreign key(BuyrID) references Buyers(BuyrID) on delete cascade


где определяются внешние ключи.
11 ноя 12, 19:30    [13455286]     Ответить | Цитировать Сообщить модератору
 Re: только начал осваивать  [new]
akterishka
Member

Откуда:
Сообщений: 18
Помогите с запросом плиз Вывести ФИО покупателей, купивших товаров на наибольшую сумму.

SELECT t1.numbid,
t1.amount as amount,
t2.prodid,
t2.pay as pay,
t3.buyersid,
t3.surname as surname,
t3.name as name
FROM buy b1
INNER JOIN product t2 ON t1.prodid = t2.prodid
INNER JOIN buyers t3 ON t1.buyersid = t3.buyersid;

вот что смог сделать я.А вот как посчитать все даже не знаю
19 ноя 12, 16:47    [13495821]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить