База SQLite и основы SQL. Часть 11 (транзакции)
18-11-2021SQL
Существует ряд операций, которые имеют критическую важность. Например перевод денег с одного счёта на другой. Если это делать через SQL, то первым запросом нужно добавить деньги на новый счёт, а вторым запросом удалить деньги с первого. Но, что если между этими двумя операциями произойдет какой-то сбой? Очевидно, что это приведёт к проблеме целостности данных и некорректному отображению состояния счётов. Таким образом операция будет успешной только в том случае, если оба запроса прошли без ошибок. Read
База SQLite и основы SQL. Часть 10 (условия IF)
17-11-2021SQL
В SQL есть несколько полезных инструкций, которые здорово облегчают жизнь программистам. Одни из них IF EXISTS и IF NOT EXISTS. Их можно применять как условие существования или отсутствия в разных командах, например в CREATE TABLE. Read
База SQLite и основы SQL - 9. Встроенные функции
16-11-2021SQL
В SQLite есть довольно много встроенных функций. С их помощью можно решать достаточно специфичные задачи. Я не буду описывать их все, поскольку любому программисту будет сразу понятно их назначение. Поэтому просто дам несколько ссылок на официальный сайт: скалярные функции, функции для даты и времени, математические функции и функции агрегирования. Последние как раз и представляют для нас наибольший интерес. Read
База SQLite и основы SQL - 8. Что такое индексы
15-11-2021SQL
Сегодня поговорим про индексы в SQLite. Тема достаточно сложная даже для опытных разработчиков, поскольку встречается много тонкостей и нюансов. Read
База SQLite и основы SQL - 7. Типы данных
14-11-2021SQL
Затронем вопрос о типах данных, которые можно хранить в базе. Тип поля мы указываем в момент создания таблицы и считается, что чем точнее будет тип подобран к данным, тем лучше. В других СУБД типы данных играют очень важную роль, поскольку используется строгая типизация. Например тип поля TINYINT будет хранить число в размере одного байта. Когда таблица создаётся, то в ней резервируется место под необходимый объём данных. Именно поэтому, если поле будет содержать числа в один байт, то очевидно, нет смысла указывать INTEGER, поскольку это зарезервирует в базе больше места для поля (4 байта). Read
База SQLite и основы SQL. Часть 6 (объединение JOIN)
13-11-2021SQL
Объединение таблиц — одна из самых крутых фишек SQL. Чтобы использовать их максимально эффективно нужно заранее продумывать структуру базы. Пример с таблицами t1, r1 и q1 показывает основной принцип, но на практике чаще мы сталкиваемся с немного другой задачей, где таблица хранит лишь ссылку на запись в другой таблице. Read
База SQLite и основы SQL - 5. Нормализация
12-11-2021SQL
Нормализацию базы делают для того, чтобы избежать логических ошибок. Изменение структуры таблиц достаточно затратная операция. Помимо того, что нужно будет позаботиться о сохранности данных, придётся ещё переписывать sql-запросы, а также программный код, их обслуживающий. Поэтому лучше потратить больше времени на обдумывание структуры и тестирование базы. Read
База SQLite и основы SQL. Часть 4 (ключи)
11-11-2021SQL
Обычно в базе находятся несколько таблиц. Поэтому нужно понимать как их правильно организовать. Например в нашей таблице firstTable мы уже столкнулись с проблемой отсутствия уникального номера записи. И на самом деле в таблице есть ещё одна проблема — возможность создания дублей (когда было два Пети с одним номером). Read
База SQLite и основы SQL. Часть 3 (фильтрация данных)
10-11-2021SQL
Основная мощь SQL заключается не только в быстром получении всех данных, но и их фильтрации. Например есть база клиентов, где одно из полей хранит город. Мы можем добавить условие в SQL-запрос, чтобы получить список клиентов из определённого города. Read
База SQLite и основы SQL. Часть 2
09-11-2021SQL
Для работы с любой базой (речь про реляционные) используется структурированный язык запросов — SQL. Сам по себе этот язык очень простой. Во всяком случае намного проще любого языка программирования. Однако многие программисты стараются избегать прямого использования SQL и вместо него применяют различные Active Records, Query Builder или даже такого монстра, как ORM. Обычно SQL-запросы очень простые, буквально несколько строчек кода, который читается как обычный english-текст. Но вместо этого они используют различные надстройки, которые имеют свой особенный синтаксис, хотя на выходе всё равно будет все те же несколько строк обычного SQL. :-) Read