Создание базы данных в MySQL
Федеральное агентство по делам образования и науки Российской Федерации
Кафедра систем управления
ОТЧЕТ
по лабораторной работе
по курсу «Базы данных»
Тема:
Создание базы данных в 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), comiss float, cod_prodav int(11));
Выведем описание типов созданной таблицы
mysql> DESCRIBE prodav;
Аналогично создадим и выведем описание для таблиц “pokup” и “sale”.
mysql> CREATE TABLE pokup
-> (cod_pokup int(11), name_pokup char(10), city_pokup char(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 WHERE city_prodav="Бабушкин" OR city_prodav="Луга";
В таблице prodav, выведем строки, для которых 0.10<comiss<0.12
mysql> SELECT * FROM prodav WHERE comiss BETWEEN 0.1 AND 0.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 WHERE name_prodav="Птицын"));
Выведем коды сделок, где стоимость сделки превысила среднее значение.
mysql> SELECT cod_s FROM sale WHERE cost_s>(SELECT AVG(cost_s) FROM sale);
Выведем записи в таблице сделок, для которых стоимость сделок превышает среднее значение за 2005 и последующие годы.
mysql> SELECT * FROM sale WHERE cost_s>(SELECT AVG(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;