Создание базы данных SQL и таблиц базы данных на примере
Создадим базу данных, краткое описание проекта которой — в статье Основы проектирования базы данных — пример.
Для этого понадобится установленная система управления базами данных (СУБД) DB2. Мы будем использовать диалект языка SQL, который используется именно в этой СУБД.
Первая команда, которую мы будем применять для создании базы данных — это команда CREATE DATABASE. Её синтаксис следующий:
CREATE DATABASE ИМЯ_БАЗЫ ДАННЫХ
Далее для создания таблиц нашей базы данных будем многократно использовать команду CREATE TABLE. Её синтаксис следующий:
CREATE TABLE ИМЯ_ТАБЛИЦЫ (имя_первого_столбца тип данных, . имя_последнего_столбца тип данных, первичный ключ, ограничения (не обязательно))
Так как наша база данных моделирует сеть аптек, то в ней есть такие сущности, как «Аптека» (таблица Pharmacy в нашем примере создания базы данных), «Препарат» (таблица Preparation в нашем примере создания базы данных), «Доступность (препаратов в аптеке)» (таблица Availability в нашем примере создания базы данных), «Клиент» (таблица Client в нашем примере создания базы данных) и другие, которые здесь подробно и разберём.
Разработке модели «сущность-связь» можно посвятить не одну статью, но если нас прежде всего интересуют команды языка SQL для создания базы данных и таблиц в ней, то условимся считать, что связи между сущностями уже нам понятны. На рисунке ниже приведено представление модели нашей базы данных с атрибутами сущностей (таблиц) и связями между таблицами.
Для увеличения рисунка можно нажать на него левой кнопкой мыши.

При создании базы данных, в которой таблицы связаны между собой, важно позаботиться о целостности данных. Это означает, например, что если если удалить препарат из таблицы Preparation, то должны удалиться все записи этого препарата в таблице Availability. Ещё пример ограничения целостности: нужно установить запрет на удаление названия группы препарата из таблицы Group, если существует хотя бы один препарат этой группы. Особый случай составляет изменение данных в одной таблице, когда производятся действия с данными в другой таблице. Об этом поговорим в конце статьи. Можно также углубиться в теорию на уроке Реляционная модель данных.
Как уже говорилось, в разбираемом здесь примере создания базы данных использовался вариант языка SQL, который используется в системе управления базами данных (СУБД) DB2. Он является регистронезависимым, то есть не имеет значение, набраны ли команды и отдельные слова в них строчными или прописными буквами. Для иллюстрации этой особенности приведены команды без особой системы набранные строчными и прописными буквами.
Теперь приступим к созданию команд. Первая наша команда SQL создаёт базу данных PHARMNETWORK:
Код SQL
CREATE DATABASE PHARMNETWORK
Описание таблицы PHARMACY (Аптека):
| Имя поля | Тип данных | Описание |
| PH_ID | smallint | Идентификационный номер аптеки |
| Address | varchar(40) | Адрес аптеки |
Пишем команду, которая создаёт таблицу PHARMACY (Аптека), значения первичного ключа PH_ID генерируются автоматически от 1 с шагом 1, вносится проверка на то, чтобы значения атрибута Address в этой таблице были уникальными:
Код SQL
CREATE TABLE PHARMACY(PH_ID smallint NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1), Address varchar(40) NOT NULL, PRIMARY KEY(PH_ID), CONSTRAINT PH_UNIQ UNIQUE(Address))
Следует обратить внимание на то, что автоматическое генерирование первичного ключа с приращением обеспечено средствами, применяемыми в диалекте SQL для DB2:
Код SQL
PH_ID smallint NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1)
Средства автоматического генерирования первичного ключа с приращением (кратко это называется автоинкрементом) в разных диалектах SQL различаются. Так, в MySQL используется ключевое слово AUTO_INCREMENT и соответствующая часть запроса на создание таблицы выглядит следующим образом:
Код SQL
PH_ID int(4) NOT NULL AUTO_INCREMENT
В SQL Server механизм автоинктемента обеспечивается так:
Код SQL
PH_ID int IDENTITY(1, 1) PRIMARY KEY
Запись (1, 1) здесь означает, что значения первичного ключа должны создаваться начиная с 1 с приращением на 1. Итак, помните о том, что в зависимости от СУБД и диалекта SQL механизмы автоинкремента различаются, а далее для краткости будем приводить запросы на создание таблиц в соответствии с синтаксисом для DB2.
Описание таблицы GROUP (Группа препаратов):
| Имя поля | Тип данных | Описание |
| GR_ID | smallint | Идентификационный номер группы препаратов |
| Name | varchar(40) | Название группы препаратов |
Пишем команду, которая создаёт таблицу Group (Группа препаратов), значения первичного ключа GR_ID генерируются автоматически от 1 с шагом 1, проводится проверка уникальности наименования группы (для этого используется ключевое слово CONSTRAINT):
Код SQL
CREATE TABLE GROUP(GR_ID smallint NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1), Name varchar(40) NOT NULL, PRIMARY KEY(GR_ID), CONSTRAINT GR_UNIQ UNIQUE(Name))
Описание таблицы PREPARATION (Препарат):
| Имя поля | Тип данных | Описание |
| PR_ID | smallint | Идентификационный номер препарата |
| GR_ID | smallint | Идентификационный номер группы препарата |
| Name | varchar(40) | Название препарата |
Команда, которая создаёт таблицу PREPARATION, значения первичного ключа PR_ID генерируются автоматически от 1 с шагом 1, определяется, что значения внешнего ключа GR_ID (Группа препаратов) не могут принимать значение NULL, определена проверка уникальности значений атрибута Name:
Код SQL
CREATE TABLE PREPARATION(PR_ID smallint NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1), Name varchar(40) NOT NULL, GR_ID int NOT NULL, PRIMARY KEY(PR_ID), constraint PR_UNIQ UNIQUE(Name))
Далее нам требуется позаботиться об ограничениях целостности. Это очень удобно слелать с помощью команды alter table. Эта команда изучается на уроке SQL ALTER TABLE — изменение таблицы базы данных.
Теперь самое время создать таблицу AVAILABILITY (Доступность или Наличие препарата в аптеке). Её описание:
| Имя поля | Тип данных | Описание |
| A_ID | smallint | Идентификационный номер записи о доступности |
| PH_ID | smallint | Идентификационный номер аптеки |
| PR_ID | smallint | Идентификационный номер препарата |
| Quantity | int | Количество доступного препарата |
| DateStart | varchar(20) | Дата начала работы аптеки с данным препаратом |
| DateEnd | varchar(20) | Дата окончания работы аптеки с данным препаратом |
| Mart | varchar(3) | Выставлен ли препарат на витрину |
Пишем команду, которая создаёт таблицу AVAILABILITY. Определяются даты начала (не может быть NULL) и окончания (по умолчанию NULL).
Код SQL
CREATE TABLE AVAILABILITY(A_ID smallint NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1), PH_ID INT NOT NULL, PR_ID INT NOT NULL, DateStart varchar(20) NOT NULL, DateEnd varchar(20) DEFAULT NULL, QUANTITY INT NOT NULL, MART varchar(3) DEFAULT NULL, PRIMARY KEY(A_ID), CONSTRAINT AVA_UNIQ UNIQUE(PH_ID, PR_ID))
Создаём таблицу DEFICIT (Дефицит препарата в аптеке, то есть, неудовлетворённый запрос). Её описание:
| Имя поля | Тип данных | Описание |
| D_ID | smallint | Идентификационный номер записи о дефиците |
| PH_ID | smallint | Идентификационный номер аптеки |
| PR_ID | smallint | Идентификационный номер препарата |
| Solution | varchar(40) | Решение проблемы дефицита |
| DateStart | varchar(20) | Дата появления проблемы |
| DateEnd | varchar(20) | Дата решения проблемы |
Пишем команду, которая создаёт таблицу DEFICIT:
Код SQL
CREATE TABLE DEFICIT(D_ID smallint NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1), PH_ID INT NOT NULL, PR_ID INT NOT NULL, Solution varchar(40) NOT NULL, DateStart varchar(20) NOT NULL, DateEnd varchar(20) DEFAULT NULL)
Осталось немного. Мы уже дошли до команды, которая создаёт таблицу Employee (Сотрудник). Её описание:
| Имя поля | Тип данных | Описание |
| E_ID | smallint | Идентификационный номер сотрудника |
| PH_ID | smallint | Идентификационный номер аптеки |
| FName | varchar(40) | Имя сотрудника |
| LName | varchar(40) | Фамилия сотрудника |
| Post | varchar(40) | Должность |
Пишем команду, которая создаёт таблицу Employee (Сотрудник), с первичным ключом, генерируемым по тем же правилам, что и первичные ключи предыдущих таблиц, в которых они существуют. Внешним ключом PH_ID Сотрудник связан с PHARMACY (Аптекой).:
Код SQL
CREATE TABLE EMPLOYEE(E_ID smallint NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1), F_Name varchar(40) NOT NULL, L_Name varchar(40) NOT NULL, POST varchar(40) NOT NULL, PH_ID INT NOT NULL, PRIMARY KEY(E_ID))
Очередь дошла до создании таблицы CLIENT (Клиент). Её описание:
| Имя поля | Тип данных | Описание |
| C_ID | smallint | Идентификационный номер клиента |
| FName | varchar(40) | Имя клиента |
| LName | varchar(40) | Фамилия клиента |
| DateReg | varchar(20) | Дата регистрации |
Пишем команду, создающую таблицу CLIENT (Клиент), в отношении первичного ключа которого справедливо предыдущее описание. Особенность этой таблицы в том, что её атрибуты F_Name и L_Name имеют по умолчанию значение NULL. Это связано с тем, что клиенты могут быть как зарегистрированными, так и незарегистрированными. У последних значения имени и фамилии как раз и будут неопределёнными (то есть NULL):
Код SQL
CREATE TABLE CLIENT(C_ID smallint NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1), FName varchar(40) DEFAULT NULL, LName varchar(40) DEFAULT NULL, DateReg varchar(20), PRIMARY KEY(C_ID))
Предпоследняя таблица в нашей базе данных — таблица BASKET (Корзина покупок). Её описание:
| Имя поля | Тип данных | Описание |
| BS_ID | smallint | Идентификационный номер корзины покупок |
| E_ID | smallint | Идентификационный номер сотрудника, оформившего корзину |
| C_ID | smallint | Идентификационный номер клиента |
Пишем команду, создающую таблицу BASKET (Корзина покупок), так же с уникальным и инкрементируемым первичным ключом и связанную внешним ключами C_ID и E_ID с Клиентом и Сотрудником соответственно:
Код SQL
CREATE TABLE BASKET(BS_ID smallint NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1), C_ID INT NOT NULL, E_ID INT NOT NULL, PRIMARY KEY(BS_ID))
И, наконец, последняя таблица в нашей базе данных — таблица BUYING (покупка). Её описание:
| Имя поля | Тип данных | Описание |
| B_ID | smallint | Идентификационный номер покупки |
| PH_ID | smallint | Идентификационный номер аптеки |
| PR_ID | smallint | Идентификационный номер препарата |
| BS_ID | varchar(40) | Идентификационный номер корзины покупок |
| Price | varchar(20) | Цена |
| Date | varchar(20) | Дата |
Пишем команду, создающую таблицу BUYING (покупка), так же с уникальным и инкрементируемым первичным ключом и связанную внешними ключами BS_ID, PH_ID, PR_ID с Корзиной покупок, Аптекой и Препаратом соответственно:
Код SQL
CREATE TABLE BUYING(B_ID smallint NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1), BS_ID INT NOT NULL, PH_ID INT NOT NULL, PR_ID INT NOT NULL, DateB varchar(20) NOT NULL, Price Double NOT NULL, PRIMARY KEY(B_ID))
И совсем уже в завершение темы создания базы данных обещанное отступление о соблюдении ограничений целостности, когда решение — более сложное, чем написание команды. В нашем примере необходимо соблюдать следующее условие: при покупке единицы препарата значение количества этого препарата в таблице AVAILABILITY должно соответственно уменьшиться. Вообще говоря, для таких операций в языке SQL существуют особые средства, называемые триггерами. Но триггеры — вещь капризная: на практике они могут и не сработать или сработать не так, как предусмотрено. Поэтому разработчики по возможности ищут программные средства решения таких задач, пример которых упомянут в этом абзаце.
И действительно, есть программное средство решение обозначенной выше задачи уменьшения значения количества препарата. А именно: в условии добавления соответствующего препарата в таблицу BUYING (Покупка) пишется функция на языке программирования, на котором выполнено приложение, с запросом с ключевым словом UPDATE на замену значения количества этого препарата на единицу меньше в той же аптеке. И таблица BUYING, и таблица AVAILABILITY имеют внешний ключ PH_ID — идентификатор определённой аптеки.
На этом многогранная тема создания баз данных прерывается.
Создание базы данных
База данных (БД) — единое хранилище текстовой информации сайта. База данных хранит информацию в виде связанных между собой таблиц. Для взаимодействия с информацией из таблиц используется язык запросов SQL. Информация, добавленная через CMS, записывается в БД, а затем отображается на сайте. Таким образом, администратор взаимодействует с базой данных, а не с исходными файлами сайта.
Чтобы создать БД:
- Перейдите в Базы Данных → кнопка Создать базу данных.
- Укажите Имя БД.
- Выберите Владельца, которому будет принадлежать БД.
- Выберите Сервер баз данных, который будет управлять БД.
- Выберите Кодировку данных в базе. Кодировка определяет набор символов для представления данных. Рекомендуем использовать «utf8», т. к. она универсальная.
- Выберите Пользователя, который будет работать с БД. Или выберите «Создать нового пользователя» и укажите для него Имя пользователя, Пароль и его Подтверждение.
- Чтобы пользователь имел доступ к БД с других серверов, включите опцию Удалённый доступ. Укажите Список IP-адресов, с которых доступ будет разрешён. Опция доступна, только если для выбранного сервера БД включена опция Удалённый доступ. Подробнее см. в статье Создание СУБД MySQL.
- Нажмите Ok.
Создание таблицы БД
Для создания новой базы данных, активизируйте закладку Источник данных Администратора Базы данных и нажмите кнопку Создать . После этого на экране появится окно SQL Manager . SQL Manager – это редактор, который используется для доступа, настройки, управления базами данных.
Окно SQL Manager:

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

В открывшемся списке выберите тип создаваемой таблицы.
Возможно создание баз данных следующих типов:
Для создания базы данных dBase укажите Каталог подключения, и нажмите кнопку ОК .
Далее Установите флажок Регистрировать после создания и нажмите кнопку Готово.
Окно Создания базы данных dBase:

Выберите в дереве элемент Таблицы , активизируйте меню кликом правой кнопки мыши и перейдите на пункт Создать новую таблицу .
Окно SQL Manager. Создания таблицы базы данных dBase:

Далее следует определить структуру таблицы: Название поля, Тип данных, Размер .
Окно SQL Manager. Создания полей таблицы базы данных dBase:

Для создания индексов таблицы щелкните правой кнопкой мыши в поле редактирования таблицы и выберите из всплывающего меню пункт Индексы/Ключи .
Окно SQL Manager. Создания индексов таблицы базы данных dBase:

Окно Создания индексов таблицы базы данных dBase:

Вторичный индекс – это справочная таблица, которая определяет логический порядок записей в физической таблице. Можно проиндексировать таблицу по некоторому полю, например – полю фамилии, и создать, таким образом, способ построения таблицы в алфавитном порядке по фамилиям, даже если эти фамилии были введены в физическую таблицу в произвольном порядке.
Поскольку для таблиц dBase нет ключей, то использование флажка Уникальный является единственной возможностью обеспечить уникальность записей на физическом уровне (уровне организации таблицы).
После определения структуры таблицы ее необходимо сохранить, для этого нажмите правой кнопкой мыши в области заголовка окна редактирования таблицы и выберите пункт меню Сохранить .
Окно Создания таблицы базы данных dBase:

В результате на диск записывается новая таблица, первоначально пустая, и автоматически создаются все ее файлы. Далее появляется окно Параметры таблицы данных в проекте , в котором указывается имя и расположение таблицы в проекте.
Параметры таблицы данных:

Для создания базы данных MS SQL выберите драйвер подключения – Microsoft SQL Server и укажите Источник подключения ( Файл подключения или Строка подключения ), либо установите флажок Не использовать строку подключения .
Для создания базы данных MS SQL без использования строки подключения необходимо установить соответствующий флажок.
Окно Свойства соединения:

Нажмите кнопку ОК , далее последовательно укажите необходимые параметры подключения.
Окно Параметры подключения:

Окно Создания базы данных:

Окно Создания базы данных:

Окно Создания базы данных:

После ввода всех параметров будет создана пустрая базы данных MS SQL.
Окно SQL Manager:

Для создания таблиц необходимо выбрать в контекстном меню ветки Таблицы пункт Создать таблицу .
Для определения связей между таблицами необходимо задать первичный ключ таблицы Для этого в контекстном меню соответствующего поля выбрать пункт Установить первичный ключ .
Окно SQL Manager .Создания базы данных:

Окно Создания базы данных:

После определения структуры таблицы ее необходимо сохранить, для этого нажмите правой кнопкой мыши в области заголовка окна редактирования таблицы и выберите пункт меню Сохранить .
Для создания базы данных MS SQL с использованием строки подключения необходимо выбрать в разделе Источник подключения — Строка подключения .
Окно Свойства соединения:

Для формирования строки подключения нажмите кнопку Создать .
Окно Свойства канала пердачи данных:

Окно Свойства канала передачи данных:

Далее необходимо задать параметры базы данных.
Окно Создания базы данных:

Окно Создания базы данных:

Окно Создания базы данных:

Окно Создания базы данных:

После ввода всех параметров будет создана пустрая базы данных MS SQL.
Окно SQL Manager.Создания базы данных:
Пример создания запроса (Query) в базе данных MS SQL Server. База данных размещена в локальном файле *.mdf
Пример создания запроса ( Query ) в базе данных MS SQL Server . База данных размещена в локальном файле *.mdf
Поиск на других ресурсах:
Условие задачи
Задана база данных, которая размещается в файле Education.mdf . База данных содержит две связанные между собою таблицы Student и Session .
Таблицы связаны между собою за полем ID_Book .
Используя средства Microsoft Visual Studio создать запрос с именем Query1 , который будет иметь следующую структуру:
| Название поля | Таблица |
| Num_Book | Student |
| Name | Student |
| Mathematics | Session |
| Informatics | Session |
| Philosophy | Session |
| Average | Вычислительное поле |
Выполнение (пошаговая инструкция)
1. Загрузить Microsoft Visual Studio
2. Подключить базу данных Education.mdf к перечню баз данных утилиты Server Explorer
Чтобы не тратить время на разработку и связывание таблиц базы данных Education.mdf , архив ранее подготовленной базы данных можно загрузить здесь . После загрузки и сохранения в некоторой папке, базу данных нужно разархивировать и подключить к перечню баз данных утилиты Server Explorer .
Подключение базы данных реализуется одним из нескольких стандартных способов:
- выбором команды «Connect to Database…» с меню Tools ;
- выбором кнопки (команды) «Connect to Database…» из утилиты Server Explorer .
В результате, откроется окно мастера, в котором с помощью нескольких шагов (окон) нужно настроить подключение базы данных.

Рис. 1. Способы добавления/подключения базы данных
Подробное описание того, как осуществляется подключение базы данных типа Microsoft SQL Server в Microsoft Visual Studio , приведено в теме:
После подключения, окно утилиты Server Explorer будет выглядеть как показано на рисунке 2.

Рис. 2. Утилита Server Explorer с подключенной базой данных Education.mdf
3. Добавление нового запроса. Команда «New Query»
К базе данных можно создавать запросы. В нашем случае нужно создать запрос в соответствии с условием задачи.
Запрос создается с помощью команды «New Query» , которая вызовется из контекстного меню (рисунок 3). Чтобы вызвать команду, достаточно сделать клик правой кнопкой мышки в области поля, которое выделено для отображения элементов базы данных Education.mdb . Следует отметить, что запросы не сохраняются системой. Для отображения сохраненных (сложных) запросов используется представление ( Views ).
На рисунке 3 отображено контекстное меню, которое вызывается при нажатии на вкладке Views (представление). В этом меню нужно выбрать команду «New Query» . Эта команда есть в перечне контекстных меню других составляющих базы данных (таблиц, диаграмм и т.п.).

Рис. 3. Команда New Query
В результате откроется окно «Add Table» , в котором нужно выбрать таблицы, данные из которых будут использоваться в запросе (рисунок 4).

Рис. 4. Выбор таблиц, которые будут использоваться в запросе
Для нашего случая нужно выбрать обе таблицы.
В результате окно Microsoft Visual Studio будет выглядеть, как показано на рисунке 5.

Рис. 5. Окно MS Visual Studio после создания запроса
В таблицах нужно выделить поля, которые будут использоваться в запросе. Порядок выбора полей должен соответствовать отображению их в запросе в соответствии с условием задачи. Это означает, что сначала выбираются поля таблицы Student ( NumBook , Name ), а потом выбираются поля таблицы Session ( Mathematics , Informatics , Philosophy ).
Для нашего случая выбор полей изображен на рисунке 6.

Рис. 6. Выбор полей для запроса
Как видно из рисунка 6, в нижней части окна отображается запрос на языке SQL , сформированный системой
SELECT Student.Num_Book, Student.Name, Session.Mathematics, Session.Informatics, Session.Philosophy FROM Session INNER JOIN Student ON Session.ID_Book = Student.ID_Book
4. Добавление вычисляемого поля Average
Чтобы создать вычисляемое поле Average , нужно в окне, где отображается SQL -запрос изменить текст этого запроса. Например:
SELECT Student.Num_Book, Student.Name, Session.Mathematics, Session.Informatics, Session.Philosophy, (Session.Mathematics + Session.Informatics + Session.Philosophy) / 3.0 AS Average FROM Session INNER JOIN Student ON Session.ID_Book = Student.ID_Book
Добавляется вычислительное поле Average , которое есть средним арифметическим (рисунок 7).

Рис. 7. Добавление вычисляемого поля Average
5. Запуск запроса на выполнение. Команда «Execute SQL»
Чтобы запустить на выполнение запрос, используется кнопка «Execute SQL» (рисунок 8).
В нижней части окна на рисунке 8 изображен результат выполнения запроса.

Рис. 8. Кнопка «Execute SQL» запуска запроса на выполнение и результат выполнения запроса
Другой способ запуска запроса на выполнение – команда «Execute SQL» из меню «Query Designer» .
Связанные темы
- Пример создания представления ( View ) в базе данных. Создание вычисляемого поля
- Пример создания/подключения локальной базы данных Microsoft SQL Server , которая размещается в «*.mdf »-файле
- Пример создания «*.mdf» файла локальной базы данных Microsoft SQL Server в Microsoft Visual Studio
Программирование: теория и практика
- C# (176)
- Практика (46)
- MS Visual Studio 2010 (34)
- MS Visual Studio 2017 (7)
- MS Visual Studio 2019 (13)
- ADO .NET (7)
- Практика (31)
- Borland C++ Builder 2007 (16)
- MS Visual Studio 2010 (18)
- Visual C++ (136)
- Практика (6)
- Теория (102)
- Практика (1)
- Теория (21)
- Практика (1)
- Теория (21)
- Практика (20)
- Delphi-7 (4)
- Embarcadero RAD Studio 2010 (18)
- Практика (4)
- Теория (92)
- SQL (5)
- Patterns. Паттерн State (Состояние). Структура. Реализация на C++ 19 ноября, 2023
- Patterns. Паттерн Abstract Factory. Решение задачи о составляющих компьютера 7 октября, 2023
- Patterns. Паттерн Prototype. Реализация схемы на C++ 22 сентября, 2023
- Patterns. Паттерн Composite (Компоновщик). Дерево. Реализация на C++ 18 сентября, 2023
- Patterns. Паттерны. Сравнение паттернов Abstract Factory, Factory Method и Prototype 12 сентября, 2023
- Patterns. Паттерн Factory Method (Фабричный метод). Реализация структуры, простейший случай 6 сентября, 2023
- Patterns. Паттерн Bridge. Реализация структуры на C++ 6 сентября, 2023
- Паттерны проектирования. Паттерн Facade (Фасад) 29 августа, 2023
- SQL. Числовые типы данных. Обзор. Примеры 25 августа, 2023
- C++. Наследование шаблонных классов. Добавление нового типа в унаследованных классах 9 августа, 2023
При использовании материалов сайта, ссылка на сайт обязательна.
- Практика (46)