Начало III Курс Базы данных Первая и вторая лабы по базам данных
Первая и вторая лабы по базам данных Печать Написать письмо
27.06.10 19:58

Практические занятия проходили у Ахметзянова И.М., поэтому работали с бд Firebird 2.0.

FoxPro по-старинке преподает Верхолат А.М.

Выкладываю свои лабораторные 1,2 вариант не помню..15-й кажется

1 лабораторная - надо было сделать базу в IBExpert с двумя таблицами:  фирмы(там ID, имя, адрес, телефон), и записи по компьютерам - (ID, фирма-поставщик, характеристики, дата продажи) затем написать в DELPHI прогу для управления всем этим безобразием...к базе коннектимся через ADO - в методичке по визуальному программированию Раковой все написано как делать в лабе 7...да, и задания, там же все приведены по вариантам...

скачать первую лабу

2 лабораторная - SQL запросы. Надо было сделать базу в IBExpert с таблицами: покупательи, продукты, поставщики, покупки, поставки и написать SQL запросы на диалекте firebird - он немного отличается от mysql (например, оператора LIMIT там нет, вместо него есть FIRST), в Firebird 2.0 свой SQL диалект - на нашем сайте описаны основные операторы: SELECT, INSERT, UPDATE.

ну DELETE я опустил - там все просто)

Так же можно заглянуть в документацию на сайт ibexpert.net - там найдете все остальное

Документация на английском!

GDB файлы прилагаются...

скачать вторую лабу

а вот SQL запросы к базе из второй лабораторной:

A1)

SELECT product.name FROM product

A2)

SELECT

customer.name,

product.name

FROM

customer

left join

product on (customer.id = product.id)

A3)

SELECT

product.name

FROM

product

LEFT JOIN

purchaised on
(product.id = purchaised.prod_id)

WHERE purchaised.cust_id = 9

A4)
SELECT
customer.id as ID,
customer.name as NAME,
COUNT(purchaised.id) as COU
FROM customer
LEFT JOIN purchaised
on(purchaised.cust_id = customer.id)
GROUP BY customer.id, customer.name

A5)
SELECT
customer.id as ID,
customer.name as NAME,
COUNT(purchaised.id) as COU
FROM customer
LEFT JOIN purchaised
on(purchaised.cust_id = customer.id)
WHERE customer.id = 1
GROUP BY customer.id, customer.name

A6)

SELECT
COUNT(purchaised.id) as VSEGO_POKUPOK
FROM purchaised

A7)
SELECT
customer.id as ID,
customer.name as NAME,
COUNT(purchaised.id) as POKUPKI
FROM customer
LEFT JOIN purchaised
on(purchaised.cust_id = customer.id)
WHERE customer.id = 9
GROUP BY customer.id, customer.name

B1)
SELECT
customer.name as POKUPATEL,
SUM(supply.cost) as STOIMOST_POKUPOK
FROM customer
LEFT JOIN purchaised
on(purchaised.cust_id = customer.id)
LEFT JOIN supply
on(purchaised.prov_id = supply.prov_id)
GROUP BY customer.name
HAVING (SUM(supply.cost)>0)

B2)
SELECT
provider.name as POSTAVSHIK,
SUM(supply.cost) as OBCHAYA_STOIMOST_POKUPOK
FROM customer
LEFT JOIN purchaised
on(purchaised.cust_id = customer.id)
LEFT JOIN supply
on(purchaised.prov_id = supply.prov_id)
LEFT JOIN provider
on(supply.prov_id = provider.id)
WHERE customer.id = 9
GROUP BY provider.name
HAVING (SUM(supply.cost)>0)

B3)
SELECT
customer.name as PORUPATEL
FROM customer
LEFT JOIN purchaised
on(purchaised.cust_id = customer.id)
LEFT JOIN provider
on(purchaised.prov_id = provider.id)
WHERE purchaised.prov_id <> 9
GROUP BY customer.name
HAVING COUNT(purchaised.id)>=1

B4)
DELETE
FROM
provider
WHERE
not exists(

SELECT * FROM supply WHERE (provider.id = supply.prov_id)

)

или

DELETE
FROM
provider
USING
provider
INNER JOIN supply
on(provider.id = supply.prov_id)
HAVING COUNT(supply.id) = 0

B5)

DELETE
FROM
customer
WHERE
NOT EXISTS(

SELECT * FROM purchaised

WHERE purchaised.cust_id = customer.id

)

B6)

SELECT NAME, SUMMA
from
(
SELECT
customer.id as CUSTID,
SUM(supply.cost) as SUMMA
FROM
customer
INNER JOIN
purchaised
ON(customer.id = purchaised.cust_id)
INNER JOIN
supply
ON(purchaised.prod_id = supply.prod_id)
WHERE purchaised.prov_id = 9
GROUP BY customer.id
) as qwe
INNER JOIN
customer ON (customer.id = qwe.CUSTID)
WHERE
qwe.SUMMA = (
SELECT MAX(SUMMA)
FROM
(
SELECT
customer.id as CUSTID,
SUM(supply.cost) as SUMMA
FROM
customer
INNER JOIN
purchaised
ON(customer.id = purchaised.cust_id)
INNER JOIN
supply
ON(purchaised.prod_id = supply.prod_id)
WHERE purchaised.prov_id = 9
GROUP BY customer.id
) as sums
)

B7)

SELECT
provider.name as POSTAVSHIK,
SUM(supply.cost) as SUMMA_SDELOK_BOLSHE_50000
FROM
provider
LEFT JOIN
supply
ON(provider.id = supply.prov_id)
GROUP BY provider.name
HAVING SUM(supply.cost)>50000

B8)

SELECT
product.name,
COUNT(supply.id) as KOLICHESTVO_SDELOK
FROM
product
LEFT JOIN
supply
ON(product.id = supply.prod_id)
GROUP BY product.name
ORDER BY KOLICHESTVO_SDELOK DESC

B9)

SELECT
product.name,
COUNT(supply.id) as KOLICHESTVO_SDELOK
FROM
product
LEFT JOIN
supply
ON(product.id = supply.prod_id)
GROUP BY product.name
HAVING COUNT(supply.id)>=2

B10)

SELECT
product.name,
MIN(supply.cost) as MIN_CENA,
MAX(supply.cost) as MAX_CENA
FROM
product
LEFT JOIN
supply
ON(product.id = supply.prod_id)
GROUP BY product.name

B11)

SELECT
product.name,
KOLVO_PREDLOJ,
KOLVO_SDELOK,
CENA
FROM
(SELECT
product.id as PROD_ID,
COUNT(supply.id) as KOLVO_PREDLOJ,
COUNT(purchaised.id) as KOLVO_SDELOK,
supply.cost as CENA
FROM
product
LEFT JOIN
supply
ON(product.id = supply.prod_id)
LEFT JOIN
purchaised
ON(product.id = purchaised.prod_id)
GROUP BY product.id, supply.cost
) as query
LEFT JOIN
product
ON(product.id = query.PROD_ID)
GROUP BY product.name

B12)

SELECT
provider.name as POSTAVSHIK,
SUM(supply.cost) as STOIMOST
FROM
provider
INNER JOIN
supply
ON(provider.id = supply.prov_id)
GROUP BY provider.name

B13)

SELECT
product.name as TOVAR,
supply.cost as STOIMOST
FROM
product
LEFT JOIN
supply
ON(product.id = supply.prod_id)
LEFT JOIN
provider
ON(supply.prov_id = provider.id)
WHERE provider.name = 'Emelyanov'

 

 
 
 

Последние обновления за 10.07.10 18:05
 

Добавить комментарий


Защитный код
Обновить

Авторизация





Онлайн:

Сейчас на сайте находятся:
 16 гостей на сайте

Bash.org.ru

Ошибки

Если Вы нашли ошибку на сайте или нерабочую ссылку, свяжитесь, пожалуйста, с администратором первым или вторым способом.

Экспорт новостей

feed-image RSS

О группе И373

Мы героически учимся на кафедре И3 ”Системы обработки информации и управления”, обеспечивающей подготовку студентов по математической, аппаратной и программной подсистемам в рамках ряда циклов и завершаются комплексными дисциплинами специального цикла, формирующими у выпускников системный подход к проектированию систем обработки информации и управления. На сайте предоставлено много выполненных курсовых проектов, решенных контрольных, ответов на тесты, лабораторных, учебных материалов и пособий(методичек) с целью облегчения обучения. Все материалы структурированы по дисциплинам и по курсам. Желаю вам побольше терпения, сил и успехов в учебе!

С уважением, Шевцов А.Д.

Шаблон объяснительной записки

Шаблон объяснительной записки декану факультета "И" БГТУ Военмех Смирнову В.В. Будет полезна студентам, имеющим более двух академических задолженностей по результатам сессии.


скачать [.doc 27 Kb]