Правила и ограничения именования таблиц в SQLite

Пройдите тест, узнайте какой профессии подходите

Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

SQLite разрешает использование в именах таблиц:

  • Алфавитных символов (A-Z, a-z), чисел (0-9) и нижних подчёркиваний.
  • Ограничивает начало имени цифрами и использование зарезервированных ключевых слов.
  • Оформляет специальные символы и пробелы в двойные кавычки "имя таблицы" или квадратные скобки [имя таблицы].

Примеры корректных наименований таблиц:

  • customers — простое имя.
  • customer_data — с использованием нижнего подчёркивания.
  • "Customer Data" или [Customer Data] — с пробелами.
  • Имена вида: 123customers, select, create — кажутся некорректными, но в кавычках они допустимы.
Кинга Идем в IT: пошаговый план для смены профессии

Расширение границ

SQLite позволяет использовать почти любые комбинации символов для наименования таблиц, если оформлять имена в двойные кавычки или скобки. Становятся возможными такие имена как "123abc.txt" или экстравагантные [Это должно_быть корректное.имя+таблицы!?]. Однако об опрятности и читаемости базы данных важно помнить.

Зарезервированные слова в качестве имен таблиц

Удивительно, но зарезервированные ключевые слова можно использовать как имена таблиц, оформив их в кавычки. Так, имя "[select]" для таблицы вполне реально, хотя такое использование выходит за рамки здравого смысла и может приводить к сложностям. Рекомендуется избегать такой практики.

Спецсимволы: разноплановое отношение

Символы типа тире (-) или точки (.) могут присутствовать в именах таблиц, например, "customer-service" или "sales.records". Необходимо помнить, что точка может восприниматься как разделитель имён схем, что приводит к возникновению нежелательных сложностей и ошибок.

Нежелательные гости: префикс "sqlite_"

Недопустимо начинать имена таблиц префиксом "sqlite_", так как он зарезервирован системой SQLite. Нарушение этого правила может вызвать проблемы, связанные с конфликтом с внутренними функциями SQLite.

Визуализация

Представим примеры приемлемых имен таблиц SQLite, приводя аналогию с бейсбольными кепками:

Markdown
Скопировать код
| Кепка (Имя Таблицы) | Может ли она быть надета (Допустимость) |
| -------------------- | -------------------------------------- |
| ⚽️ FC Barcelona        | **Да** ✔️                             |
| 🏀 Lakers%123          | **Нет** ❌ (Неразрешённая комбинация) |
| 🏈 Bears_Chicago       | **Да** ✔️                             |
| ⚾️ Red_Sox             | **Да** ✔️                             |
| 🥎 "Wiffle Ball?"      | **Да** ✔️ (Непривычный выбор, но корректный) |

Кепки отражают правила SQLite для наименования таблиц:

**ПРАВИЛА**:
- **Начинайте** имя с буквы или символа подчёркивания.
- **Продолжайте** название буквами, цифрами или подчёркиваниями.
- **Заключайте** спецсимволы или пробелы в кавычки или скобки.

Числовые литералы и прочие исключения

Гибкость SQLite в нейминге сопровождается рядом ограничений.

Нюансы чувствительности к регистру

В SQLite имена таблиц, заключенные в кавычки, чувствительны к регистру, т.е., "customer" и "Customer" будут различными. Выбор между удобством использования и сохранением регистра — вопрос предпочтений.

Детали использования цифр

Цифровые последовательности без кавычек недопустимы как имена таблиц. Например, 1234 интерпретируется как числовой литерал, а не имя таблицы. Чтобы использовать числа в имени, их нужно оформить в кавычках и они не должны находиться в начале, если имеются буквы: "1234_test" корректно, но 1234test — нет. Числам хотелось бы быть первыми, но здесь безусловно главенствуют буквы!

Нежданные гости: специальные символы

Неосторожное использование специальных символов в именах таблиц может создавать путаницу при написании SQL-запросов из-за их смешения со стандартными операторами. Кроме того, избыток подобных символов может вносить хаос в единобразие имен базы данных.

Псевдоним в двойных кавычках

Когда в именах таблиц используются точки, рекомендуется применять псевдонимы для большей наглядности кода:

SQL
Скопировать код
SELECT foo, bar, cat, shoe FROM "user.data" AS userdata;
/* SQL-запросы иногда требуют особой внимательности, как и прогулка с кошкой */

Полезные материалы

  1. SQLite Keywords — список зарезервированных ключевых слов SQLite.
  2. CREATE TABLE — основы создания таблиц в SQLite.
  3. SQLite Frequently Asked Questions — руководство SQLite для энтузиастов.
  4. Query Language Understood by SQLite — гид по языку запросов SQLite.
  5. Implementation Limits For SQLite — существующие ограничения в SQLite.
  6. Datatypes In SQLite — обзор типов данных в SQLite.