Кафедра ИТКафедра ИТ
Обучение
  • О кафедре
  • Направления подготовки
  • Друзья и партнеры
  • Структура кафедры
  • Обращение к студентам
  • Официальный сайт «ВШП»
GitHub
Обучение
  • О кафедре
  • Направления подготовки
  • Друзья и партнеры
  • Структура кафедры
  • Обращение к студентам
  • Официальный сайт «ВШП»
  • Практикум №2 - Типы данных

Практикум №2 - Типы данных

Числовые поля

1. Задача - Товары в магазине

Условия

Создайте таблицу products для хранения информации о товарах в магазине.

Выберите оптимальные поля для хранения данных в соответствии с условиями:

  • id типа INT — только положительные числа;
  • name — символьный тип до 100 символов (включительно);
  • count — количество товара на складе (до 200 штук), целое положительное;
  • price — цена в рублях без копеек (не более 1 млн рублей). Только положительные значения.

Заполните таблицу тремя товарами:

Холодильник, 10 штук, 50 000 рублей.
Стиральная машина, 0 штук, 23 570 рублей.
Утюг, 3 штуки, 7300 рублей
Решение задачи
CREATE TABLE products (
    id INT UNSIGNED,
    name  VARCHAR(100),
    count TINYINT UNSIGNED,
    price MEDIUMINT UNSIGNED
);

INSERT INTO products (id, name, count, price)
VALUES
    (1 ,"Холодильник",10 ,50000),
    (2 ,"Стиральная машина",0 ,23570),
    (3 ,"Утюг",3 ,7300)
;

2. Задача - Фильмы

Условия

Создайте таблицу films с информацией о фильмах. Выберете оптимальные поля для хранения данных в соответствии с условиями:

  • id типа INT, только положительные числа.
  • name — символьное поле длиной 100.
  • rating — рейтинг, вещественное число. Принимает положительные значения от 0 до 10.
  • country — страна фильма. Символьное поле, содержащее ровно 2 символа.

Добавьте в неё записи так, чтобы получалась таблица ниже:

idnameratingcountry
1Большая буря3.45RU
2Игра7.5714US
3Война10.0RU
Решение задачи
CREATE TABLE films (
    id INT UNSIGNED,
    name VARCHAR(100),
    rating FLOAT(6,4) UNSIGNED,
    country CHAR(2)
);

INSERT INTO films (id, name, rating, country)
VALUES
    (1 ,"Большая буря",3.45 ,"RU"),
    (2 ,"Игра",7.5714 ,"US"),
    (3 ,"Война",10.0 ,"RU")
;

Строковые поля

3. Задача - Книги

Условия

Создайте таблицу books для хранения данных о книгах. В таблице должны быть следующие поля:

  • id — идентификатор, целое положительное.
  • name — название, строка длиной не более 100 символов.
  • description — описание книги длиной не более 1000 символов.
  • isbn — международный стандартный книжный номер. 10 или 13 знаков.

Добавьте записи так, чтобы получалась таблица ниже:

idnamedescriptionisbn
1MySQL 8Хорошая книга.5941579284
2Изучаем SQLПолезная книга.5932860510
3Изучаем Python. 4-е изданиеПодробная книга о Python.9785932861592
Решение задачи
CREATE TABLE books (
    id INT UNSIGNED,
    name VARCHAR(100),
    description VARCHAR(1000),
    isbn VARCHAR(13)
);

INSERT INTO books (id, name, description, isbn)
VALUES
    (1, 'MySQL 5','Хорошая книга.','5941579284'),
    (2, 'Изучаем SQL','Полезная книга.','5932860510'),
    (3, 'Изучаем Python. 4-е издание','Подробная книга о Python.','9785932861592')
;

4. Задача - Квартиры

Условия

Создайте таблицу apartments для хранения информации о квартирах на сайте жилищного комплекса. В таблице должны быть следующие поля:

  • id — идентификатор, целое положительное.
  • image — поле для хранения пути до изображения, строка не более 100 символов.
  • price — цена не более 99 999 999. Целое положительное число.
  • square — площадь квартиры. Не более 150 квадратных метров. Целое положительное число.

Добавьте записи так, чтобы получалась таблица ниже:

idimagepricesquare
1/apartments/1/cover.jpg525000090
2/apartments/2/cover-3.jpg7500000103
3230000056
Решение задачи
CREATE TABLE apartments (
    id INT UNSIGNED,
    image VARCHAR(100),
    price INT UNSIGNED,
    square TINYINT UNSIGNED
);

INSERT INTO apartments (id, image, price, square)
VALUES
    (1, '/apartments/1/cover.jpg',5250000,90),
    (2, '/apartments/2/cover-3.jpg',7500000,103),
    (3, '',2300000,56)
;

Дата и время

5. Задача - Регистрация и вход

Условия

Создайте таблицу users для хранения информации о пользователях сайта.
В таблице должны быть следующие поля:

  • id — идентификатор, целое положительное;
  • email — адрес электронной почты, строка не более 100 символов;
  • date_joined — дата регистрации (достаточно хранить дату, без времени)
  • last_activity — дата и время последней активности (с точностью до секунд).

Добавьте записи, чтобы получалась таблица ниже:

idemaildate_joinedlast_activity
1user1@domain.com2022-12-122022-04-08 12:34:54
2user2@domain.com2022-12-122023-02-13 11:46:53
3user3@domain.com2022-12-132023-04-04 05:12:07
Решение задачи
CREATE TABLE users (
    id INT UNSIGNED,
    email VARCHAR (100),
    date_joined DATE,
    last_activity DATETIME
);
INSERT INTO users (id,email,date_joined,last_activity)
VALUES
    (1,'user1@domain.com','2014-12-12','2016-04-08 12:34:54'),
    (2,'user2@domain.com','2014-12-12','2017-02-13 11:46:53'),
    (3,'user3@domain.com','2014-12-13','2017-04-04 05:12:07');

6. Задача - Температура

Условия

Создайте таблицу temperature для хранения записей о температуре. Добавьте в неё следующие поля:

  • id — идентификатор, целые положительные числа;
  • city_id — идентификатор города, целые положительные числа;
  • temperature — температура, целое число в диапазоне от -100 до 100 градусов.
  • wind_speed — целое положительное число для хранения скорости ветра. Историческая максимальная скорость ветра была 113 м/с.
  • mdate — дата и время измерения (с точностью до секунд).

Добавьте 5 записей, чтобы получалась таблица ниже:

idcity_idtemperaturewind_speedmdate
14561772017-02-08 12:00:00
24561962017-02-08 12:10:00
34562062017-02-08 12:20:00
4471-7122017-02-08 12:20:01
544-43172017-02-08 12:23:12
Решение задачи
CREATE TABLE temperature (
    id INT UNSIGNED,
    city_id INT UNSIGNED,
    temperature TINYINT,
    wind_speed TINYINT UNSIGNED,
    mdate DATETIME
);
INSERT INTO temperature (id, city_id, temperature, wind_speed, mdate)
VALUES
    (1, 456, 17, 7,'2017-02-08 12:00:00'),
    (2, 456, 19, 6,'2017-02-08 12:10:00'),
    (3, 456, 20, 6,'2017-02-08 12:20:00'),
    (4, 471, -7, 12,'2017-02-08 12:20:01'),
    (5, 44, -43, 17,'2017-02-08 12:23:12');

Использование NULL

7. Задача - Пустой email

Условия

Создайте таблицу users с двумя полями:

  • id — целое положительное, не может принимать NULL.
  • email — строка для хранения электронных адресов пользователей длиной до 100 символов, не может принимать NULL.

Добавьте записи так, чтобы получалась таблица ниже:

idemail
1user1@domain.com
2user2@domain.com
3user3@domain.com
4user4@domain.com
Решение задачи
CREATE TABLE users(
   id    INT UNSIGNED NOT NULL,
   email VARCHAR(100) NOT NULL
);
INSERT INTO users (id,email)
VALUES
    (1,'user1@domain.com'),
    (2,'user2@domain.com'),
    (3,'user3@domain.com'),
    (4,'user4@domain.com');

8. Задача - Товары без категорий

Условия

Выберите из таблицы products название, количество и цены всех товаров, у которых нет категории.

Данные отсортируйте по цене.

Дамп
SET foreign_key_checks = 0;
DROP TABLE IF EXISTS products;
SET foreign_key_checks = 1;
CREATE TABLE products (
    id INT NOT NULL PRIMARY KEY,
    category_id INT NULL,
    name VARCHAR(255) NULL,
    count INTEGER NULL,
    price INTEGER NULL
);
INSERT INTO products (id, category_id, name, count, price)
VALUES
    (1, 7, 'Стиральная машина', 5, 10000),
    (2, 12, 'Холодильник', 0, 10000),
    (3, 12, 'Микроволновка', 3, 4000),
    (4, 8, 'Пылесос', 2, 4500),
    (5, NULL, 'Вентилятор', 0, 700),
    (6, 9, 'Телевизор', 7, 31740),
    (7, 12, 'Тостер', 2, 2500),
    (8, NULL, 'Принтер', 4, 3000),
    (9, NULL, 'Активные колонки', 1, 2900);
Решение задачи
SELECT name, count, price
FROM products
WHERE category_id IS NULL
ORDER BY price;
Последнее обновление: 20.10.2025, 01:37
Предыдущая
Практикум №1 - Связи между таблицами
© Кафедра информационных технологий ЧУВО «ВШП», 2025. Версия: 0.20.1
Материалы доступны в соответствии с лицензией: