Программирование баз данных с помощью Qt

Программирование баз данных с помощью Qt

База данных представляет собой систему хранения записей, организованных в виде таблиц. База данных может содержать от одной до нескольких сотен таблиц, которые бывают связаны между собой. Таблица состоит из набора строк и столбцов. Столбцы таблицы имеют имена и за каждым из них закреплен тип и/или область значения. Строки таблицы баз данных называются записями, а ячейки, на которые делится запись, — полями.

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

Пользователь может выполнять множество разных операций с таблицами, например: добавлять, изменять и удалять записи, вести поиск и т. д. Для составления подобного рода запросов был разработан язык SQL (Structured Query Language, язык структурированных запросов), который дает возможность не только осуществлять запросы и изменять данные, но и создавать новые базы данных.

Основными действиями, производимыми с базой данных, являются создание новой таблицы, чтение (выборка и проекция), вставка, изменение и удаление данных. Сразу следует сказать, что язык SQL нечувствителен к регистру, а это значит, что буква, набранная в верхнем или нижнем регистре, считается одной и той же. Например, SELECT = select = Select и т. д. В дальнейшем, для выделения ключевых слов SQL будем использовать верхний регистр.

Язык запросов SQL — это стандарт, который используется в большом количестве СУБД, что обеспечивает его платформонезависимость. Запросы (команды) — это своего рода вопросы, задаваемые базе данных, на которые она должна давать ответы.

Для работы с базой данных нужно сначала активизировать драйвер, а затем установить связь с базой данных. После этого посредством запросов SQL можно получать, вставлять, изменять и удалять данные.

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

При помощи концепции Интервью можно легко отображать данные SQL-моделей в представлениях.

Создание таблицы

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

CREATE TABLE addressbook(number INTEGER PRIMARY KEY NOT NULL,name VARCHAR(15),
                                          phone VARCHAR(12),email VARCHAR(15));

Операция вставки

После создания таблицы можно добавлять данные. Для этого SQL предоставляет оператор вставки insert into. Сразу после названия таблицы нужно указать в скобках имена столбцов, в которые будут заноситься данные.

Сами данные указываются после ключевого слова values.

INSERT INTO addressbook (number, name, phone, email)
VALUES(1, 'Piggy', '+49 631322187', 'piggy@mega.de');
INSERT INTO addressbook (number, name, phone, email)
VALUES(2, 'Kermit', '+49 631322181', 'kermit@mega.de');

Чтение данных

Составной оператор select … from … where осуществляет операции выборки и проекции. Выборка соответствует выбору строк, а проекция — выбору столбцов. Этот оператор возвращает таблицу, созданную согласно заданным критериям.

Ключевое слово SELECT является оператором для проведения проекции, то есть в нем указываются столбцы, которые должны стать ответом на запрос. Если указать после SELECT знак *, то результирующая таблица будет содержать все столбцы таблицы, к которой был адресован запрос. Указание конкретных имен столбцов устраняет в ответе все остальные.
Ключевое слово FROM задает таблицу, к которой адресован запрос.
Ключевое слово WHERE является оператором выборки. Выборка осуществляется согласно условиям, указанным сразу после оператора.

Например, для получения адреса электронной почты мисс Piggy нужно сделать следующее:

SELECT email
FROM addressbook
WHERE name = 'Piggy';

Изменение данных

Для изменения данных таблицы используется составной оператор UPDATE … SET. После названия таблицы в операторе SET указывается название столбца (или столбцов, через запятую), в который будет заноситься нужное значение. Изменение данных производится в строках, удовлетворяющих условию, поставленному в ключевом слове WHERE.

В показанном ниже примере производится замена адреса электронной почты мисс Piggy с piggy@mega.de на piggy@supermega.de:

UPDATE addressbook
SET email = 'piggy@supermega.de'
WHERE name = 'Piggy';

Удаление

Удаление строк из таблицы производится при помощи оператора DELETE … FROM. После ключевого слова WHERE следует критерий, согласно которому производится удаление строк. Например, удалить адрес мисс Piggy из таблицы можно следующим образом:

DELETE FROM addressbook
WHERE name = 'Piggy';

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *