кодесурса
«SQLite

SQLite Create, Alter and Drop table

script1adsense2code
script1adsense3code

Вступление

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

  • Название новой таблицы.
  • База данных, в которой создается новая таблица. Таблицы могут быть созданы в основной базе данных, временной базе данных или в любой присоединенной базе данных.
  • Название каждого столбца в таблице.
  • Объявленный тип каждого столбца в таблице и каждого столбца должен иметь один тип данных, который может быть NULL - значение является значением NULL, INTEGER - целое число со знаком, REAL - значение с плавающей запятой, TEXT - текстовая строка или BLOB - капля данных.
  • Значение или выражение по умолчанию для каждого столбца в таблице.
  • Последовательность сортировки по умолчанию для использования с каждым столбцом.
  • По желанию, ПЕРВИЧНЫЙ КЛЮЧ для стола. Поддерживаются как первичные ключи с одним столбцом, так и составные (с несколькими столбцами).
  • Набор ограничений SQL для каждой таблицы. SQLite поддерживает ограничения UNIQUE, NOT NULL, CHECK и FOREIGN KEY.
  • Уникальные индексы будут автоматически создаваться для применения ограничения UNIQUE или PRIMARY KEY. и они не могут быть удалены вручную с помощью команды DROP INDEX.

Оглавление

Соглашения об именах

Синтаксис

пример

ALTER TABLE

DROP TABLE

Соглашения об именах

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

Допустимые имена идентификаторов:

  • tsttable
  • tst_table
  • table456
  • Z

Однако следующие недопустимые идентификаторы:

  • таблица tst
  • TST стол
  • 456table

Другие символы могут использоваться в идентификаторах, если они заключены в двойные кавычки (или квадратные скобки), например:

  • "тестовый стол"
  • "стол tst"
  • "123 456"

Зарезервированные ключевые слова

Каждый оператор CREATE TABLE должен указывать имя для новой таблицы. Имена таблиц, начинающиеся с «sqlite_», зарезервированы для внутреннего использования. Ошибка при попытке создать таблицу с именем, начинающимся с «sqlite_».

Имя Длина

В SQLite верхний предел длины имени идентификатора не ограничен, поэтому вы можете использовать управляемую длину имени идентификатора для использования.

Чувствительность к регистру

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

Заметки:

Когда создается новая таблица, она должна находиться в базе данных, а имя базы данных может быть либо «main», «temp», либо именем присоединенной базы данных. Если ключевое слово «TEMP» или «TEMPORARY» используется между «CREATE» и «TABLE», то новая таблица создается во временной базе данных. И имя базы данных, и ключевое слово TEMP или TEMPORARY не могут быть использованы. Если имя базы данных не указано и ключевое слово TEMP отсутствует, таблица создается в основной базе данных.

Попытка создать таблицу в базе данных, которая содержит таблицу или индекс или представление с тем же именем, произойдет ошибка, но если условие «IF NOT EXISTS» указано как часть оператора CREATE TABLE, это не даст никакого эффекта.

Синтаксис:

 СОЗДАТЬ [ТЕМП | TEMPORARY] TABLE table-name (
column-def [, column-def]
[, Ограничение]
);

ВРЕМЕННО - таблица может быть объявлена как временная, если это необходимо.

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

Определение столбца может быть определено следующим образом:

 name [type] [[CONSTRAINT name] столбец-ограничение]

пример

Вот простая инструкция создания таблицы:

CREATE TABLE company(
com_id text(4),
com_name text(15));

Чтобы увидеть структуру таблицы, используйте следующие команды:

Пример вывода:

 sqlite> .mode column
sqlite> .header on
sqlite> PRAGMA table_info (компания);
тип имени cid notnull dflt_value pk
---------- ---------- ---------- ---------- ---------- ----------
0 com_id text (4) 0 0
1 com_name текст (15) 0 0

Здесь команда .mode показывает столбцы, а команда .header on показывает заголовок.

Создайте таблицу для использования предложения TEMPORARY

CREATE TABLE TEMPORARY (
com_id text(4),
com_name text(15)); 
                    

Это расписание создается во временных базах данных. Если вы хотите увидеть созданную таблицу, выполните следующую команду:

 sqlite> .tables
ВРЕМЕННОЕ              

Если вы используете имя таблицы с ключевым словом TEMPORARY, появится сообщение об ошибке. Здесь см. Ниже-

 sqlite> создать таблицу ВРЕМЕННОЙ компании (
   ...> com_id text (4),
   ...> com_name text (15));
Ошибка: рядом с "компанией": синтаксическая ошибка                

Создание копии существующей таблицы в основной базе данных

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

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

CREATE TABLE backup_company AS SELECT * FROM company ;

Если вы хотите сделать резервную копию только структуры таблицы компании, можно использовать следующий оператор

CREATE TABLE backup_company AS SELECT * FROM company LIMIT 0;

ALTER TABLE

Команда ALTER TABLE может использоваться только в SQLite, чтобы позволить пользователю только переименовывать таблицу или добавлять новый столбец в существующую таблицу. Невозможно переименовать столбец, удалить столбец или добавить или удалить ограничения из таблицы.

Команда RENAME TO используется для переименования таблицы, идентифицируемой [database-name.] Table-name, в new-table-name. Эту команду нельзя использовать для перемещения таблицы в двух базах данных, а только в одной и той же базе данных.

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

Здесь мы создаем новую столовую компанию.

 sqlite> создать столовую компанию (
   ...> com_id text (4),
   ...> com_name text (15)); 

Чтобы добавить новый столбец:

ALTER TABLE company ADD com_add VARCHAR(50);

После добавления столбца смотрите структуру таблицы компании.

 sqlite> .schema
CREATE TABLE company (
com_id text (4),
текст com_name (15), 
com_add VARCHAR (50));

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

 sqlite> .tables
компания hrdb.departments hrdb.jobs
hrdb.countries hrdb.employees hrdb.locations
hrdb.department hrdb.job_history hrdb.regions

Теперь переименуйте таблицу company в новое имя company_new. Вот утверждение ниже.

ALTER TABLE company RENAME TO company_new;

После переименования смотрите список таблиц ниже.

 sqlite> .tables
company_new hrdb.departments hrdb.jobs
hrdb.countries hrdb.employees hrdb.locations
hrdb.department hrdb.job_history hrdb.regions

Переименование или удаление столбца из таблицы:

Примечание. Sqlite имеет ограниченную поддержку ALTER TABLE. Удаление столбцов и переименование не поддерживаются SQLite. Так что это лучший способ создать новую таблицу с изменениями в соответствии с вашими требованиями, затем удалить исходную таблицу и снова переименовать только что созданную новую таблицу в исходное имя таблицы. Следует помнить, что после удаления таблицы все связанные с ней триггеры будут потеряны, поэтому следует помнить об этом. Хорошей идеей является то, что перед переименованием или удалением таблицы вы можете сделать копию заявления о создании таблицы. Вот заявление, из которого вы получите заявление.

 ВЫБЕРИТЕ sql ОТ sqlite_master WHERE tbl_name = 'table_name';

DROP TABLE

Команда DROP TABLE удаляет таблицу из базы данных.

Синтаксис:

 DROP TABLE table_name [, ...]
или же
DROP TABLE [имя_базы_данных.] Имя_таблицы [, ...]

: параметры при

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

DROP TABLE company_new;

Предыдущая: Типы данных
Далее: ограничение

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code