Проектирование реляционной базы данных
Курсовой проект - Компьютеры, программирование
Другие курсовые по предмету Компьютеры, программирование
оры 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 завода у которого наибольшее количест