SQL для начинающих (DML): Внутрение запросы (продолжение) (MySql), Урок 12!

preview_player
Показать описание
В этом видео уроке рассмотрим более подробно написание внутренних SQL запросов для более полного представления о внутренних запросах.

Рекомендации по теме
Комментарии
Автор

Спасибо за уроки, очень доступно и интересно.

iuvjgnc
Автор

Вот дамп базы.
Я добавил еще одну таблицу user_city, что бы можно было иметь связь многие ко многим, но поле city_id из таблицы user я не удалял, что бы можно было выполнять те же запросы что и в урках

--
-- Хост: 127.0.0.1
-- Версия сервера: 10.1.8-MariaDB - mariadb.org binary distribution
-- Операционная система: Win32
-- HeidiSQL Версия: 9.3.0.5107
--

/*!40101 SET NAMES utf8 */;
/*!50503 SET NAMES utf8mb4 */;

-- Дамп структуры для таблица mysql_lessons.city
CREATE TABLE IF NOT EXISTS `city` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(30) DEFAULT NULL,
`country_id` int(11) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `foregin_key_country_id` (`country_id`),
CONSTRAINT `foregin_key_country_id` FOREIGN KEY (`country_id`) REFERENCES `country` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;

-- Дамп данных таблицы mysql_lessons.city: ~4 rows (приблизительно)
/*!40000 ALTER TABLE `city` DISABLE KEYS */;
INSERT INTO `city` (`id`, `title`, `country_id`) VALUES
(1, 'Город 1', 2),
(2, 'Город 2', 2),
(3, 'Город 3', 1),
(4, 'Город 4', 3);
/*!40000 ALTER TABLE `city` ENABLE KEYS */;

-- Дамп структуры для таблица mysql_lessons.country
CREATE TABLE IF NOT EXISTS `country` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(30) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;

-- Дамп данных таблицы mysql_lessons.country: ~2 rows (приблизительно)
/*!40000 ALTER TABLE `country` DISABLE KEYS */;
INSERT INTO `country` (`id`, `title`) VALUES
(1, 'Страна 1'),
(2, 'Страна 2'),
(3, 'Страна 3');
/*!40000 ALTER TABLE `country` ENABLE KEYS */;

-- Дамп структуры для таблица mysql_lessons.orders
CREATE TABLE IF NOT EXISTS `orders` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`status` set('0', '1') NOT NULL DEFAULT '0',
`user_id` int(11) DEFAULT NULL,
`product_id` int(11) DEFAULT NULL,
`date` datetime DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `f_key_user_id` (`user_id`),
KEY `f_key_product_id` (`product_id`),
CONSTRAINT `f_key_product_id` FOREIGN KEY (`product_id`) REFERENCES `product` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `f_key_user_id` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8;

-- Дамп данных таблицы mysql_lessons.orders: ~11 rows (приблизительно)
/*!40000 ALTER TABLE `orders` DISABLE KEYS */;
INSERT INTO `orders` (`id`, `status`, `user_id`, `product_id`, `date`) VALUES
(1, '1', 1, 4, '2015-08-04 20:20:01'),
(2, '0', 1, 4, '2016-06-09 00:00:00'),
(3, '1', 3, 6, '2016-06-15 00:00:00'),
(4, '1', 3, 11, '2016-06-28 00:00:00'),
(5, '1', 3, 10, '2016-06-09 00:00:00'),
(6, '1', 3, 8, '2016-06-22 00:00:00'),
(7, '1', 3, 2, '2016-06-09 00:00:00'),
(8, '1', 3, 9, '2016-06-07 00:00:00'),
(9, '0', 8, 12, '2016-06-17 00:00:00'),
(10, '0', 7, 10, '2016-06-16 00:00:00'),
(11, '0', 4, 12, '2016-06-17 00:00:00');
/*!40000 ALTER TABLE `orders` ENABLE KEYS */;

-- Дамп структуры для таблица mysql_lessons.product
CREATE TABLE IF NOT EXISTS `product` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(30) DEFAULT NULL,
`description` varchar(50) DEFAULT NULL,
`count` int(11) DEFAULT NULL,
`price` float DEFAULT NULL,
`product_category_id` int(11) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY (`product_category_id`),
CONSTRAINT FOREIGN KEY (`product_category_id`) REFERENCES `product_category` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8;

-- Дамп данных таблицы mysql_lessons.product: ~12 rows (приблизительно)
/*!40000 ALTER TABLE `product` DISABLE KEYS */;
INSERT INTO `product` (`id`, `title`, `description`, `count`, `price`, `product_category_id`) VALUES
(1, 'Mercedes', 'Описание1', 10, 123, 1),
(2, 'Mercedes', 'Описание2', 11, 156.87, 2),
(3, 'Toyota', 'Описание3', 21, 246.08, 1),
(4, 'Таврия', 'Описание4', 11, 7, 1),
(5, 'Запорожец', 'Описание5', 21, 90.09, 1),
(6, 'Продукт6', 'Описание6', 2, 1.01, 2),
(7, 'Mercedes', 'Описание7', 128, 2.04, 3),
(8, 'Mercedes', 'Описание8', 11, 9.9, 1),
(9, 'Продукт9', 'Описание9', 13, 100, 1),
(10, 'Продукт10', 'Описание10', 12, 45.32, 2),
(11, 'Продукт11', 'Описание11', 2, 872.1, 2),
(12, 'Продукт12', 'Описание12', 12, 6.92, 3);
/*!40000 ALTER TABLE `product` ENABLE KEYS */;

-- Дамп структуры для таблица
CREATE TABLE IF NOT EXISTS `product_category` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(30) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;

-- Дамп данных таблицы ~5 rows (приблизительно)
/*!40000 ALTER TABLE `product_category` DISABLE KEYS */;
INSERT INTO `product_category` (`id`, `title`) VALUES
(1, 'Категория 1'),
(2, 'Категория 2'),
(3, 'Категория 3'),
(4, 'Категория 4'),
(5, 'Категория 5'),
(6, 'Категория 6');
/*!40000 ALTER TABLE `product_category` ENABLE KEYS */;

-- Дамп структуры для таблица mysql_lessons.role
CREATE TABLE IF NOT EXISTS `role` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(30) DEFAULT NULL,
`description` varchar(30) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;

-- Дамп данных таблицы mysql_lessons.role: ~2 rows (приблизительно)
/*!40000 ALTER TABLE `role` DISABLE KEYS */;
INSERT INTO `role` (`id`, `title`, `description`) VALUES
(1, 'Admin', 'Администратор'),
(2, 'User', 'Пользователь'),
(3, 'Editor', 'Редактор');
/*!40000 ALTER TABLE `role` ENABLE KEYS */;

-- Дамп структуры для таблица mysql_lessons.user
CREATE TABLE IF NOT EXISTS `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`firstname` varchar(30) DEFAULT NULL,
`lastname` varchar(30) DEFAULT NULL,
`login` varchar(30) DEFAULT NULL,
`password` varchar(30) DEFAULT NULL,
`city_id` int(11) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `foregin_key_city_id` (`city_id`),
CONSTRAINT `foregin_key_city_id` FOREIGN KEY (`city_id`) REFERENCES `city` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;

-- Дамп данных таблицы mysql_lessons.user: ~6 rows (приблизительно)
/*!40000 ALTER TABLE `user` DISABLE KEYS */;
INSERT INTO `user` (`id`, `firstname`, `lastname`, `login`, `password`, `city_id`) VALUES
(1, 'Иван', 'Иванов', 'Ivan', 'вапрыарен8е8', 1),
(2, 'Антон', 'Андреенко', 'Anton', ';fdlg4598', 1),
(3, 'Сергей', 'Муншин', 'login45', 'lasdkjf098', 2),
(4, 'Коля', 'Сидоренко', 'koliy', 'slk%*', 4),
(7, 'Люба', 'Сванидзе', 'luba', '0-4okg', 4),
(8, 'Галя', 'Козлович', 'galiy', '03945dpo', 2);
/*!40000 ALTER TABLE `user` ENABLE KEYS */;

-- Дамп структуры для таблица mysql_lessons.user_city
CREATE TABLE IF NOT EXISTS `user_city` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`user_id` int(11) unsigned DEFAULT NULL,
`city_id` int(11) unsigned DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8;

-- Дамп данных таблицы mysql_lessons.user_city: ~0 rows (приблизительно)
/*!40000 ALTER TABLE `user_city` DISABLE KEYS */;
INSERT INTO `user_city` (`id`, `user_id`, `city_id`) VALUES
(1, 1, 1),
(2, 2, 2),
(3, 3, 1),
(4, 4, 2),
(5, 7, 4),
(6, 8, 1),
(7, 3, 2),
(8, 7, 3);
/*!40000 ALTER TABLE `user_city` ENABLE KEYS */;

-- Дамп структуры для таблица mysql_lessons.user_role
CREATE TABLE IF NOT EXISTS `user_role` (
`user_id` int(11) DEFAULT NULL,
`role_id` int(11) DEFAULT NULL,
KEY `foregin_key_user_id` (`user_id`),
KEY `foregin_key_role_id` (`role_id`),
CONSTRAINT `foregin_key_role_id` FOREIGN KEY (`role_id`) REFERENCES `role` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `foregin_key_user_id` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- Дамп данных таблицы mysql_lessons.user_role: ~4 rows (приблизительно)
/*!40000 ALTER TABLE `user_role` DISABLE KEYS */;
INSERT INTO `user_role` (`user_id`, `role_id`) VALUES
(1, 2),
(3, 2),
(2, 1),
(2, 3);
/*!40000 ALTER TABLE `user_role` ENABLE KEYS */;



iuvjgnc
Автор

Всем приветю Как сделать или какую команду что бы он сам время определил?

Brakanier