Проектирование реляционной базы данных

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

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

Добавление новых записей в таблицы производится при помощи оператора INSERT, удаление существующих записей - оператором DELETE, изменение - оператором UPDATE. Для удобства пользователя можно свести эти операторы вместе для каждой таблицы базы данных. Для удобства пользователя можно свести эти операторы вместе для каждой таблицы базы данных:

 

)Таблица AVTOZAVOD:

добавление новой записи

INSERT INTO avtozavod (ID, nazv, br_id, adres, strana_id) (1, "ao subaru", 1, "г. Санкт-Питербург, ул.Заводская, д.17", 1);

удаление существующей записи

DELETE

FROM avtozavod

WHERE ID=1;

изменение существующей записи

UPDATE AVTOZAVOD

SET nazv=ao nissan, 7, г.Детроит, ул.1, д.7, 10 ID=8;

)Таблица BREND:

добавление новой записи

INSERT INTO BREND (ID, NAZV) (1, AC);

удаление существующей записи

DELETE

FROM BREND

WHERE ID=10;

изменение существующей записи

UPDATE BRANDNAZV=NISSAN ID=11;

3)Таблица AZ_M:

добавление новой записи

INSERT INTO AZ_M (ZAVOD_ID, MARKI_ID) (1,1);

удаление существующей записи

DELETE

FROM AZ_M

WHERE ZAVOD_ID=3, MARKI_ID=4;

- изменение существующей записи

UPDATE AZ_M

SET ZAOVOD_ID=7ZAVOD_ID=8, MARKI_ID=10;

4)Таблица MARKI:

добавление новой записи

INSERT INTO MARKI (ID, NAZV, GOD_V) (1, Land Rover Discovery, 2000);

удаление существующей записи

DELETEMARKI ID=10;

изменение существующей записи

UPDATE MARKI

SET NAZV=NISSAN GT-R, 2012

WHERE ID=7;

5)Таблица PRICE:

добавление новой записи

INSERT INTO PRICE (AS_ID, MARKI_ID, EQUIPMENT_ID, ZENA) (1,1,3, 150000);

удаление существующей записи

DELETE

FROM PRICE

WHERE ID=10;

изменение существующей записи

UPDATE PRICE

SET 3, 4, 2, 130000AS_ID=4, MARKI_ID=3;

6)Таблица AVTO_SALON:

добавление новой записи

INSERT INTO AVTO_SALON (ID, NAZV, ADRES, NUMER) (1, AUTO-GERMES, ADRES1, 55664433);

удаление существующей записи

DELETEAVTO_SALONID=13;

- изменение существующей записи

UPDATE AVTO_SALON

SET NAZV=AUTO-GRID=10;

7)Таблица EQUIPMENT

добавление новой записи

INSERT INTO EQUIPMENT (ID, NAZV) ( 1, БАЗА);

- удаление существующей записи

DELETE

FROM EQUIPMENT

WHERE ID=3;

8)Таблица STRANA

добавление новой записи

INSERT INTO STRANA (ID, NAZV) ( 1, РОССИЯ);

- удаление существующей записи

DELETE

FROM STRANA

WHERE ID=3;

 

5 ВЫБОР ИНФОРМАЦИИ ИЗ БАЗЫ ДАННЫХ

 

Для выбора информации из базы данных используется оператор SELECT.

)Вывести список автомобильных брендов в алфавитном порядке.

SELECT id, nazvbrendBY nazv asc;

2)Вывести список марок автомобилей, появившихся после 2010 года. Результаты отсортировать по году создания марки (в порядке убывания), а затем - по полному наименованию марки.

SELECT id, nazv, god_vMarki(((god_v)>(2010)))BY god_v DESC , nazv;

3)Вывести список автосалонов, для которых в базе не указан телефон.

SELECT ID, nazv, adres, numeravto_salon

WHERE numer is null;

)Вывести список автозаводов, являющихся акционерными обществами (в названии встречается АО).

SELECT avtozavod.id, avtozavod.nazvavtozavod(((avtozavod.[nazv]) Like "*ao*"));

5)Вывести список марок автомобилей с указанием автозаводов.

SELECT z.nazv, m.nazvavtozavod AS z, marki AS m, az_m AS z1(((z.id)=z1.zavod_id) And ((m.id)=z1.marki_id))BY m.nazv, z.nazv;

6)Вывести прайс-лист определенного автосалона на автомобили дешевле 500000. Отсортировать сначала в порядке убывания цены, а затем - по наименованию марки и комплектации.

SELECT a.nazv, m.nazv, k.nazv, p.zenaavto_salon AS a, marki AS m, equipment AS k, price AS p(a.id=as_id) And (k.id=equipment_id) And (m.id=marki_id) And (p.zena<=500000) And (a.nazv="Auto-germes")BY p.zena DESC , m.nazv, k.nazv;

7)Вывести цены на определенную марку в комплектации комфорт в разных автосалонах.

SELECT p.zena, m.nazv, a.nazv, k.nazvprice AS p, marki AS m, avto_salon AS a, equipment AS k(k.nazv="Комфорт") AND (k.id=equipment_id) AND (m.id=marki_id) And (m.nazv="Land Rover Discovery") and (a.id=as_id)BY a.nazv, m.nazv;

8)Для каждого автосалона вывести список продаваемых в нем автомобильных брендов.

SELECT DISTINCT a.nazv, b.nazvavto_salon AS a, brend AS b, price AS p, marki AS m, az_m AS z1, avtozavod AS z(a.id=p.as_id) and (p.marki_id=m.id) and (m.id=z1.marki_id) and (z1.zavod_id=z.id) and (z.br_id=b.id)BY a.nazv, b.nazv;

9)Вычислить наименьшую стоимость, за которую можно купить автомобиль.

SELECT min(zena) AS stprice;

10)Вывести минимальные цены на каждую марку автомобиля (без учета комплектации).

SELECT m.nazv, min(zena)price AS p, marki AS mp.marki_id=m.idBY m.nazv, m.id;

11)Вывести количество разных комплектаций всех марок автомобилей, имеющихся в каждом автосалоне.

SELECT a.nazv, count(*)price AS p, avto_salon AS aa.id=p.as_id

GROUP BY a.nazv;

)Вывести список автосалонов, торгующих автомобилями только одного бренда.

SELECT a.nazv, count(*)(SELECT DISTINCT a.nazv, z.br_id FROM avto_salon AS a, brend AS b, price AS p, marki AS m, az_m AS z1, avtozavod AS z WHERE (a.id=p.as_id) and (p.marki_id=m.id) and (m.id=z1.marki_id) and (z1.zavod_id=z.id) and (z.br_id=b.id))BY a.nazvcount(*)=1;

13)Вывести информацию о самой дорогой марке автомобиля (полное наименование, автосалон, цена).

Для выполнения этого запроса нужно создать вложенный запрос в основном запросе с конструкцией нахождения максимальной цены(т.е агрегатной функцией max) из таблицы PRICE и основным запросом с выведения марки из таблицы MARKI. С учетом положений оператора SQL будет выглядеть следующим образом:

SELECT m.nazv, a.nazv, p.zena

FROM price AS p, avto_salon AS a, marki AS m(a.id=p.as_id) and (m.id=p.marki_id) and (p.zena= (select max(zena) from price));

14)Вывести информацию об автозаводе, выпускающем наибольшее количество марок автомобилей.

Для выполнения задания будем использовать два запроса: запрос SELECT и запрос having с подзапросом select. Для выведение информации об автозаводе будем использовать предложение SELECT, FROM , WHERE и две таблицы AZ_M и AVTOZAVOD. В предложение WHERE создадим связь между этими таблицами. Через предложение group by осуществим группировку строк по заводам. Для того что бы вывести информацию об автозаводе, выпускающем наибольшее количество марок автомобилей нужно в предложении HAVING сделать подсчет строк автозаводов и с подзапросом вычислить id завода у которого наибольшее количест