Федеральноеагентство по делам образования и науки Российской Федерации
Кафедра системуправления
ОТЧЕТ
по лабораторной работе
по курсу «Базы данных»
Тема:
Создание базы данных в MySQL
1. Создание базы и таблиц. Откроем консоль MySQL. Введемимя пользователя и пароль. Выведем список созданных баз данных.
mysql> SHOW DATABASES;
/>
Создадим новую базу данных с именем si mysql> CREATE DATABASE si;
/>
Просмотрим базы данных, и выберем ту,которую мы будем использовать.
mysql> SHOW DATABASES;
/>
Сделаем созданную базу текущей, и будем в ней работать.
mysql> USE si;
/>
Создадим таблицу “prodav”:
mysql> CREATE TABLE prodav
-> (name_prodav char(10), city_prodav char (10), comissfloat, cod_prodav int(11));
/>
Выведем описание типов созданной таблицы
mysql> DESCRIBE prodav;
/>
Аналогично создадим и выведем описание длятаблиц “pokup” и “sale”.
mysql> CREATE TABLE pokup
-> (cod_pokup int(11), name_pokup char(10), city_pokupchar(10), rating int(11), cod
_prodav int(11));
/>
mysql> DESCRIBE pokup;
/>
mysql> CREATE TABLE sale
(cod_s int(11), cost_s float, date_s date, cod_pokup int(11),cod_prodav int(11));
/>
mysql> DESCRIBE sale;
/>
Посмотрим список созданных таблиц
mysql> SHOW TABLES;
/>
Вводим данные в таблицы. Сначала заполнимтаблицу sale
mysql> INSERT INTO sale
-> VALUES (3003, 767, «2005-03-04», 2001,1001);
Query OK, 1 row affected (0.02 sec)
mysql> INSERT INTO sale
-> VALUES (3002, 1900, «2006-05-06», 2007,1004);
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO sale
-> VALUES (3005, 5160, «2006-05-09», 2003,1002);
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO sale
-> VALUES (3006, 1098, «2006-12-31», 2008,1007);
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO sale
-> VALUES (3009, 1713, «2005-09-09», 2002,1003);
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO sale
-> VALUES (3007, 75, «2006-05-08», 2004, 1002);
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO sale
-> VALUES (3008, 4723, «2005-09-11», 2006,1001);
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO sale
-> VALUES (3010, 1309, «2006-05-01», 2004,1002);
Query OK, 1 row affected (0.02 sec)
mysql> INSERT INTO sale
-> VALUES (3011, 9981, «2004-03-05», 2006,1001);
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO sale
-> VALUES (3001, 18, «2007-02-15», 2008,1007);
Query OK, 1 row affected (0.00 sec)
Проверим правильность заполнения таблицы,для этого произведем выборку.
mysql> SELECT * FROM sale;
/>
Аналогично введем данные в таблицы “prodav”и “pokup”.
mysql> INSERT INTO prodav
-> VALUES («Аксель», «Норильск»,0.1,1003);
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO prodav
-> VALUES («Мыскин», «Луга»,0.11,1004);
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO prodav
-> VALUES («Птицын», «Луга»,0.12,1001);
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO prodav
-> VALUES («Ривкин», «Бабушкин»,0.15,1007);
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO prodav
-> VALUES («Смирнов», «Сад»,0.13,1002);
Query OK, 1 row affected (0.00 sec)
mysql> SELECT * FROM prodav;
/>
Заполним таблицу “pokup”.
mysql> INSERT INTO pokup
-> VALUES (2001, «Семенова»,«Челябинск»,100,1001);
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO pokup
-> VALUES (2002, «Игошина»,«Челябинск»,200,1003);
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO pokup
-> VALUES (2003, «Ли»,«Сад»,200,1002);
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO pokup
-> VALUES (2004, «Гресс»,«Быково»,300,1002);
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO pokup
-> VALUES (2006, «Клин»,«Луга»,100,1001);
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO pokup
-> VALUES (2008, «Кузнецов»,«Сад»,300,1007);
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO pokup
-> VALUES (2007, «Петров»,«Ростов»,100,1004);
Query OK, 1 row affected (0.00 sec)
mysql> SELECT * FROM pokup;
/>
2. Выполнение запросов.
Запишем запрос, выведем данные из таблицы “prodav”,относящиеся к городам Бабушкин и Луга.
mysql> SELECT * FROM prodav WHEREcity_prodav=«Бабушкин» OR city_prodav=«Луга»;
/>
В таблице prodav, выведем строки, длякоторых 0.10
mysql> SELECT * FROM prodav WHERE comiss BETWEEN 0.1 AND0.12;
/>
Выведем записи из таблицы продавцов, длякоторых фамилия находится от А до Н.
mysql> SELECT * FROM prodav WHERE name_prodav BETWEEN'А%' AND 'Н%';
/>
Подсчитаем количество продавцов
mysql> SELECT COUNT(DISTINCT cod_prodav) FROM sale;
/>
Определим стоимость продаж
mysql> SELECT SUM(cost_s) FROM sale;
/>
Определим стоимость продаж у продавцаПтицына
mysql> SELECT SUM(cost_s) FROM sale WHERE(cod_prodav=(SELECT cod_prodav FROM prodav WHEREname_prodav=«Птицын»));
/>
Выведем коды сделок, где стоимость сделкипревысила среднее значение.
mysql> SELECT cod_s FROM sale WHERE cost_s>(SELECTAVG(cost_s) FROM sale);
/>
Выведем записи в таблице сделок, длякоторых стоимость сделок превышает среднее значение за 2005 и последующие годы.
mysql> SELECT * FROM sale WHERE cost_s>(SELECTAVG(cost_s) FROM sale WHERE YEAR(date_s)>2004);
/>
Выведем для каждого продавца, какиепокупатели живут в одном городе с продавцом.
mysql> SELECT prodav.name_prodav, pokup.name_pokup,pokup.city_pokup FROM prodav
, pokup WHERE prodav.city_prodav=pokup.city_pokup;
/>
Выведем у каждого продавца, какиепокупатели в каждом городе у него покупают.
mysql> SELECT prodav.name_prodav, pokup.name_pokup,pokup.city_pokup FROM pokup, prodav WHERE pokup.cod_prodav = prodav.cod_prodav;
/>