Создание базы данных в 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;