Практика с SQL

Основы SQL: SELECT, UPDATE, DELETE, INSERT

Базовые запросы: SELECT, UPDATE, DELETE, INSERT. Работа с одиночными таблицами.

Соединение таблиц для сложных запросов

Использование JOIN для объединения данных из разных таблиц.

Основы баз даних

Понимание роли баз данных в разработке программного обеспечения, типы баз данных и главные операции.

Роль баз данных в разработке программного обеспечения

База данных является фундаментальной составляющей современных программных систем. Они играют ключевую роль в хранении, организации и управлении большим объемом данных, используемых программами для выполнения различных задач. Важность баз данных состоит в их способности обеспечивать структурированный, надежный и эффективный доступ к информации, способствуя развитию мощных и функциональных программных продуктов.

Типы баз данных

  1. Реляционные базы данных:
    Этот тип баз данных основан на модели реляций, где данные организованы в виде таблиц со строками (кортежами) и столбцами (атрибутами).
    Реляционные базы данных используют язык структурированных запросов SQL для взаимодействия с данными.
  2. Графовые базы данных:
    Этот тип баз данных предназначен для хранения данных, где важны взаимосвязи между объектами.
    Они особенно полезны для моделирования социальных сетей, транспортных систем и других сценариев, где связи между данными сложны.
  3. Документ-ориентированные базы данных:
    Этот тип баз данных используется для хранения, организации и поиска документов и их иерархических структур.
    Они подходят для систем, где документы имеют разную структуру.
  4. Ключ-значение базы данных:
    Они специализированы на быстром хранении и получении данных с помощью уникальных ключей.
    Это полезно для кэширования данных и хранения временной информации.
  5. Колоночные базы данных:
    Они оптимизированы для работы с большими объемами данных, сохраняя информацию по столбцам вместо строк.
    Это позволяет уменьшить использование памяти и улучшить производительность.

Заключение

Знание основ баз данных необходимо для любого разработчика программного обеспечения. Базы данных являются фундаментальной составляющей систем, помогающей обеспечить эффективный доступ к данным, их хранение и обработку. Различные типы баз данных и различные операции над ними открывают безграничные возможности создания мощных и функциональных программных решений.

Презентация

или открыть в новой вкладке Google Презентація

Для получения дополнительного материала нужно перейти по ссылке
Google Drive

Тесты для закрепления знаний

Основы баз данных

Структурированные запросы

Изучение языка SQL для создания структурированных запросов в базы данных и проверка целостности данных

Structured Query Language (SQL)

является языком программирования, который используется для создания, модификации и управления базами данных. SQL позволяет взаимодействовать с базой данных, выполнять запросы на получение определенных данных, создавать таблицы, обновлять данные, удалять и добавлять записи. Язык SQL является стандартом для многих типов реляционных баз данных и является незаменимым для программистов, администраторов баз данных и аналитиков данных.

Создание структурированных запросов

  1. SELECT:
    Этот запрос используется для выборки данных из одной или нескольких таблиц.
    Он позволяет задавать условия, фильтровать данные и сортировать их.
  2. INSERT:
    Запрос для ввода новых записей в таблицу базы данных.
  3. UPDATE:
    Используется для обновления существующих данных в таблице.
  4. DELETE:
    Позволяет удалять записи из таблицы.
  5. JOIN: Используется для подключения данных из различных таблиц на основе общих полей.

Проверка целостности данных

Целостность данных является ключевым аспектом баз данных. Она гарантирует, что данные хранятся и обрабатываются в правильном формате и соответствуют заданным правилам. SQL позволяет устанавливать ограничения на данные, такие как уникальность значений в столбце, связи между таблицами, отсутствие нулевых значений, а также запускать триггеры – автоматически выполняемые операции при определенных событиях.

Заключение

Изучение языка SQL является необходимым шагом для каждого, кто имеет дело с базами данных. Это позволяет создавать структурированные запросы для получения нужной информации, а также обеспечивает целостность данных в базе. Владение SQL помогает эффективно взаимодействовать с данными, а также оказывает влияние на решения, принятые на основе этих данных.

Структурированные запросы

Для получения дополнительного материала нужно перейти по ссылке
Google Drive

Больше практики, тестов и информации на нашем практикуме https://iqaengineer.com/ua/sql/

или открыть в новой вкладке Google Презентація

Тесты для закрепления знаний

Структурированные запросы: Изучение языка SQL для создания структурированных запросов в базы данных и проверка целостности данных

Практические задачи

Настройка и доступ к базе данных:

Скачивание MySQL Workbench:

    • Перейдите на официальный сайт MySQL: https://www.mysql.com/.
    • Скачайте версию MySQL Workbench, подходящую для вашей операционной системы (Windows, macOS, Linux).
Установка MySQL Workbench
  • Запустите установочный файл, который вы скачали.
  • Следуйте инструкциям мастера установки, выбирая опции, подходящие для ваших потребностей.
Создание нового соединения
  • В MySQL Workbench выберите “Home” и затем “New Connection”.
  • Хост: emeli.mysql.tools
  • Имя пользователя: emeli_qa
  • Пароль: jCB222t8iS
  • Нажмите “Test Connection”, чтобы убедиться, что соединение установлено успешно.

SELECT (Выбор данных):

Выбрать все данные из таблицы:

SELECT * FROM название_таблицы;

Выбор конкретных столбцов:

SELECT столбец1, столбец2 FROM название_таблицы;

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

SELECT * FROM название_таблицы WHERE условие;

Упражнения

Выбрать все данные из таблицы Clients:

SELECT * FR0M Clients;

Выбрать только имена и фамилии клиентов:

SELECT client_name, client_surname FR0M Clients;

Выбрать уникальные имена таблице клиентов:

SELECT DISTINCT client_name FR0M Clients;

Упражнения

Выбрать клиентов с определенным именем (например, "Ilon"):

SELECT * FR0M Clients WHERE client_name = 'Ilon';

Выбрать клиентов с определенным номером телефона (например, "0675453342"):

SELECT * FR0M Clients WHERE client_phone = '0675453342';

Выбрать клиентов, имена которых начинаются с определенной буквы (например, "T"):

SELECT * FR0M Clients WHERE client_name LIKE 'T%';

Выбрать клиентов, чьи фамилии содержат определенное слово (например, "McGregor"):

SELECT * FR0M Clients WHERE client_surname LIKE '%McGregor%';

Выбрать клиентов в алфавитном порядке по фамилии:

SELECT * FR0M Clients ORDER BY client_surname;

Подсчитать количество клиентов в таблице:

SELECT COUNT(*) AS total_clients FR0M Clients;

Видео инструкция по SELECT

Шаг 1: Открытие MySQL Workbench
Откройте приложение MySQL Workbench и убедитесь, что вы подключены к вашей базе данных.

Шаг 2: Окно Query и исполнение запросов
В открывшемся окне Query мы будем писать наши запросы. Чтобы их выполнить, просто нажмите Ctrl+Enter.

INSERT (Добавление данных):

Вставка данных во все столбцы:

INSERT INTO название_таблицы VALUES (значение1, значение2, ...);

Вставка данных в указанные столбцы:

INSERT INTO название_таблицы (столбец1, столбец2, ...) VALUES (значение1, значение2, ...);

Упражнения

Вставка одной записи с указанными значениями:

INSERT INTO Clients (client_id, client_name, client_surname, client_phone) VALUES (1, 'Mark', 'Tomson', '0675453344');

Вставка нескольких записей:

INSERT INTO Clients (client_id, client_name, client_surname, client_phone) VALUES (2, 'Jon', 'Jonson', '0984545555'), (3, 'Robert', 'Somsen', '0675453344'), (4, 'Bill', 'Roberson', '0685453333');

Видео инструкция по INSERT INTO

UPDATE (Обновление данных):

Обновление данных во всех строках:

UPDATE название_таблицы SET столбец = новое_значение;

Обновление данных с условием:

UPDATE название_таблицы SET столбец = новое_значение WHERE условие;

Упражнения

Обновление имени клиента по client_id:

UPDATE Clients SET client_name = 'New' WHERE client_id = 1;

Обновление фамилии клиента по client_phone:

UPDATE Clients SET client_surname = 'New ' WHERE client_phone = '0675454433';

Изменение номера телефона клиента по client_id:

UPDATE Clients SET client_phone = '0984544444' WHERE client_id = 2;

Комбинированное обновление нескольких полей по client_id:

UPDATE Clients SET client_name = 'New Name', client_surname = 'New surname' WHERE client_id = 3;

Видео инструкция по UPDATE

DELETE (Удаление данных):

Удаление всех строк из таблицы:

DELETE FROM название_таблицы;

Удаление строк с условием:

DELETE FROM название_таблицы WHERE условие;

Упражнения

Удалить клиента по идентификатору:

DELETE FROM Clients WHERE client_id = 1;

Удалить клиента по имени и фамилии:

DELETE FROM Clients WHERE client_name = 'Ilon' AND client_surname = 'Musk';

Удалить клиента по номеру телефона:

DELETE FROM Clients WHERE client_phone = '0983434444';

Удалить всех клиентов с определенным именем:

DELETE FROM Clients WHERE client_name = 'Ilon';

Удалить всех клиентов, у которых номер телефона начинается с определенных цифр:

DELETE FROM Clients WHERE client_phone LIKE '068%';

Удалить клиентов, у которых отсутствует номер телефона:

DELETE FROM Clients WHERE client_phone IS NULL;

Удалить всех клиентов, кроме тех, у кого идентификатор равен определенному значению:

DELETE FROM Clients WHERE client_id <> 2;

Видео инструкция по DELETE

Задания

Таблица Customers и Orders_Products

  1. Список уникальных доменов электронной почты клиентов: Получите список уникальных доменов электронной почты, используемых клиентами.
  2. Список клиентов в алфавитном порядке: Получите список клиентов в алфавитном порядке по их фамилии.
  3. Количество клиентов с уникальными именами: Рассчитайте количество клиентов с уникальными именами.
  4. Список клиентов с форматированным номером телефона: Получите список клиентов с форматированным номером телефона.
  5. Список клиентов с короткими именами: Получите список клиентов с именами, содержащими менее 5 символов.
  6. Среднее количество символов в именах клиентов: Рассчитайте среднее количество символов в именах клиентов.
  7. Список клиентов, у которых нет номера телефона или электронной почты: Получите список клиентов, у которых нет указанного номера телефона или адреса электронной почты.
  8. Список клиентов, у которых электронная почта содержит ‘gmail.com’: Получите список клиентов, у которых адрес электронной почты содержит домен ‘gmail.com’.

Тестирование производительности баз данных

Оценка производительности базы данных, оптимизация запросов

База данных

является неотъемлемой частью многих программных решений, независимо от их применения. Эффективная работа с данными является ключевой для обеспечения высокой производительности, быстродействия и надежности приложений. Однако, для достижения этих целей важно не только иметь мощную базу данных, но и уметь эффективно тестировать ее производительность, а также оптимизировать запросы.

Оценка производительности базы данных

является сложным и многогранным процессом. Она включает анализ различных аспектов, влияющих на производительность, и определение тех метрик, которые позволяют объективно оценить ее работу. Основные показатели, которые следует учитывать при оценке производительности:

  1. Время отклика (Response Time): Это время, необходимое системе для обработки запроса и возврата результата пользователю. Измеряется в миллисекундах или секундах.
  2. Время выполнения запросов (Query Execution Time): Это время, которое занимает выполнение конкретного запроса в базу данных. Важно измерять время выполнения разных типов запросов.
  3. Пропускная способность (Throughput): Количество операций, которые система может обработать в течение одной секунды. Определяется в единицах измерения на единицу времени.
  4. Использование ресурсов (Resource Utilization): анализ использования ресурсов, таких как процессор, память и дисковое пространство во время работы системы. Стабильность: Способность системы поддерживать стабильную работоспособность даже под высокой нагрузкой.

Оптимизация запросов

является ключевой частью обеспечения высокой производительности базы данных. Неоптимальные запросы могут привести к снижению быстродействия и загрузке базы данных. Основные подходы к оптимизации запросов:

  1. Использование индексов: Индексы помогают ускорить поиск и выборку данных. Оптимальное использование индексов может улучшить производительность выборки данных.
  2. Выбор оптимальных операторов: Выбор правильных операторов для выполнения запроса может оказать существенное влияние на быстродействие выполнения.
  3. Правильное написание запросов: Используйте WHERE для фильтрации данных, а ORDER BY для сортировки только там, где это необходимо. Избегайте лишних или излишних запросов.
  4. Кэширование запросов (Query Caching): Кэширование может уменьшить количество повторных исполнений одинаковых запросов и улучшить производительность.
  5. Использование представлений и сохраненных процедур: Представления и процедуры могут снизить количество сетевого трафика и улучшить скорость выполнения.
  6. Анализ и профилирование запросов: Использование инструментов для анализа и профилирования помогает выявить недооптимизированные запросы и усовершенствовать.

Заключение

Тестирование производительности баз данных и оптимизация запросов являются ключевыми факторами при разработке высокопроизводительных программных продуктов. Определение соответствующих метрик, анализ производительности и оптимизация запросов позволяют добиться эффективного использования ресурсов и обеспечить надежность системы. Навыки тестирования и оптимизации баз данных важны для разработчиков, администраторов баз данных и других специалистов, работающих с данными.

Больше информации о тестировании производительности баз данных

Для получения дополнительного материала нужно перейти по ссылке
Google Drive

или открыть в новой вкладке Google Презентація

Давайте пройдем тесты

Тестирование производительности баз данных

Соединение таблиц для сложных запросов

Использование JOIN для объединения данных из разных таблиц.
Применение OUTER JOIN для работы с отсутствующими значениями.

Упражнения

Выбрать все заказы клиента (имя, фамилия), включая детали продуктов (название, цена), которые он когда-либо заказывал.

SELECT Clientss.client_name, Clientss.client_surname, Productss.product_name, Productss.product_price FROM Clientss INNER JOIN Orderss ON Clientss.client_id = Orderss.client_id INNER JOIN OrderDetails ON Orderss.order_id = OrderDetails.order_id INNER JOIN Productss ON OrderDetails.product_id = Productss.product_id;

Получить список всех клиентов и количество продуктов, которые они заказали.

SELECT Clientss.client_id, Clientss.client_name, Clientss.client_surname, COUNT(OrderDetails.product_id) AS total_products FROM Clientss LEFT JOIN Orderss ON Clientss.client_id = Orderss.client_id LEFT JOIN OrderDetails ON Orderss.order_id = OrderDetails.order_id GROUP BY Clientss.client_id, Clientss.client_name, Clientss.client_surname;

Упражнения, используя алиасы

Выбрать все заказы клиента (имя, фамилия), включая детали продуктов (название, цена), которые он когда-либо заказывал.

SELECT c.client_name, c.client_surname, p.product_name, p.product_price FROM Clientss AS c INNER JOIN Orderss AS o ON c.client_id = o.client_id INNER JOIN OrderDetails AS od ON o.order_id = od.order_id INNER JOIN Productss AS p ON od.product_id = p.product_id;

Получить список всех клиентов и количество продуктов, которые они заказали.

SELECT c.client_id, c.client_name, c.client_surname, COUNT(od.product_id) AS total_products FROM Clientss AS c LEFT JOIN Orderss AS o ON c.client_id = o.client_id LEFT JOIN OrderDetails AS od ON o.order_id = od.order_id GROUP BY c.client_id, c.client_name, c.client_surname;

Найти все продукты и их категории, которые были заказаны клиентом с определенным телефонным номером.

SELECT c.client_name, c.client_surname, p.product_name,p.product_price FROM Clients AS c INNER JOIN Orderss AS o ON c.client_id = o.client_id INNER JOIN OrderDetails AS od ON o.order_id = od.order_id INNER JOIN Productss AS p ON od.product_id = p.product_id WHERE c.client_phone = '0675653333';

Получить список всех продуктов и их цен, даже если они не были заказаны ни разу.

SELECT Productss.product_name, Productss.product_price, COUNT(OrderDetails.order_id) AS total_orders
FROM Productss
LEFT JOIN OrderDetails ON Productss.product_id = OrderDetails.product_id
GROUP BY Productss.product_name, Productss.product_price;

Найти среднюю цену продуктов в каждой категории.

SELECT Products.product_category, AVG(Products.product_price) AS avg_price
FROM Products
GROUP BY Products.product_category;

Получить список всех продуктов и их цен, даже если они не были заказаны ни разу.

SELECT p.product_name, p.product_price, COUNT(od.order_id) AS total_orders
FROM Productss AS p
LEFT JOIN OrderDetails AS od ON p.product_id = od.product_id
GROUP BY p.product_name, p.product_price;

Найти среднюю цену продуктов в каждой категории.

SELECT p.product_category, AVG(p.product_price) AS avg_price
FROM Products AS p
GROUP BY p.product_category;

Упражнения

LEFT JOIN (левое объединение):

Выбрать все клиенты и продукты, приобретенные ими (если они приобретали):

SELECT Customers.name, Customers.lastname, Customers.phone, Customers.email,Orders_Products.product_name, Orders_Products.category,Orders_Products.currency,Orders_Products.price FROM Customers LEFT JOIN Orders_Products ON Customers.id = Orders_Products.customer_id;

SELECT c.name AS customer_name, c.lastname AS customer_lastname, c.phone AS customer_phone, c.email AS customer_email, op.product_name, op.category, op.currency, op.price FROM Customers AS c LEFT JOIN Orders_Products AS op ON c.id = op.customer_id;

RIGHT JOIN (правое объединение):

SELECT Customers.name, Customers.lastname, Customers.phone, Customers.email,Orders_Products.product_name, Orders_Products.category,Orders_Products.currency,Orders_Products.price FROM Customers RIGHT JOIN Orders_Products ON Customers.id = Orders_Products.customer_id;

SELECT c.name AS customer_name, c.lastname AS customer_lastname, c.phone AS customer_phone, c.email AS customer_email, op.product_name, op.category, op.currency, op.price FROM Customers AS c RIGHT JOIN Orders_Products AS op ON c.id = op.customer_id;

FULL JOIN (полное объединение):

SELECT Customers.name, Customers.lastname, Customers.phone, Customers.email,Orders_Products.product_name, Orders_Products.category,Orders_Products.currency,Orders_Products.price FROM Customers FULL JOIN Orders_Products ON Customers.id = Orders_Products.customer_id;

SELECT c.name AS customer_name, c.lastname AS customer_lastname, c.phone AS customer_phone, c.email AS customer_email, op.product_name, op.category, op.currency, op.price FROM Customers AS c FULL JOIN Orders_Products AS op ON c.id = op.customer_id;

Задания

  1. Общая стоимость заказов для каждого клиента: Рассчитайте общую стоимость всех заказов для каждого клиента.
  2. Средняя стоимость заказа: Рассчитайте среднюю стоимость заказа для всех клиентов.
  3. Клиенты без заказов: Найдите клиентов, у которых нет заказов.
  4. Самый дорогой заказ: Найдите самый дорогой заказ и его детали.
  5. Список клиентов и их заказов: Получите список клиентов вместе с информацией о заказах (если они есть). Включите имя, фамилию, номер телефона, электронную почту клиента и информацию о каждом заказе (название продукта, категория, валюта, цена).
Рубрика для самых стойких)

ВЫЗОВ!!!

Таблицы Сustomers и Orders_Products

Список клиентов с самым дорогим заказом

Получите список клиентов с деталями их самого дорогого заказа.

Список клиентов, сделавших заказы во всех категориях:

Получите список клиентов, сделавших заказы в каждой категории.

Список клиентов, сделавших более одного заказа в категории 'Audio':

Получите список клиентов, сделавших более одного заказа в категории ‘Audio’.

Список клиентов, чей последний заказ был дороже 1000:

Получите список клиентов, у которых последний заказ был дороже 1000.

Полноценный месячный практикум

Basic

Тестирование баз данных

Преимущества

  • Основы баз данных Понимание терминов, таких как таблица, строка, столбец, ключ, индекс, SQL и многие другие.
  • Язык запросов SQL Основы языка SQL для выполнения запросов, вставки, обновления и удаления данных.
  • Типы баз данных Реляционные, NoSQL и другие типы базы данных и их особенности.
  • Обучение на реальных проектах Выполнение практических задач и проектов для приобретения практических навыков в тестировании баз данных.
  • Индивидуальный подход
  • Сертификат и признание
Срок обучения -> 1 месяц
Вечернее обучение -> 2 раза в неделю
Формат обучения -> вживую в Skype
Подробнее

Подпишитесь на наш Telegram-канал

и получите

0 %
скидки на участие в практикуму

Мы также присутствуем в социальных сетях! Подписывайтесь на нас и получайте последние новости, акции, скидки, бесплатные тренинги и участие в марафонах.
Будем рады видеть вас в нашем сообществе!

Курсы

Публичная оферта. Авторское право © 2024 Школа подготовки тестировщиков