DROP TABLE оператор SQLite
SQLite оператор DROP TABLE позволяет вам удалить таблицу из базы данных SQLite.
Синтаксис
Синтаксис оператора DROP TABLE в SQLite:
Параметры или аргументы
table_name
Имя таблицы для удаления из базы данных.
IF EXISTS
Необязательный. Если указано, оператор DROP TABLE не будет выдавать ошибку, если одна из таблиц не существует.
Примечание
- Если вы используете SQLite оператор DROP TABLE, чтобы удалить несуществующую таблицу, база данных выдаст ошибку (если вы не укажете параметр IF EXISTS в операторе DROP TABLE).
Удалить одну таблицу
Рассмотрим простой пример DROP TABLE, который показывает, как использовать оператор DROP TABLE для удаления одной таблицы в SQLite.
Определение структуры данных в SQLite
Создание и удаление таблицы. Прикрепление базы данных
Для создания таблиц используется команда CREATE TABLE . Общий формальный синтаксис команды CREATE TABLE :
После команды CREATE TABLE указывается название таблицы. Имя таблицы выполняет роль ее идентификатора в базе данных, поэтому оно должно быть уникальным. Кроме того, оно не должно начинаться на «sqlite_», поскольку названия таблиц, которые начинаются на «sqlite_», зарезервированы для внутреннего пользования.
Затем после названия таблицы в скобках перечисляются названия столбцов, их типы данных и атрибуты. В самом конце можно определить атрибуты для всей таблицы. Атрибуты столбцов, а также атрибуты таблицы указывать необязательно.
Создадим простейшую таблицу. Перед выполнением команды CREATE TABLE вне зависимости, что мы используем — консольный клиент sqlite3, графический клиент DB Browser for SQLite или какой-то другой клиент, вначале откроем базу данных, где мы хотим создать таблицу.
Для создания таблицы выполним следующий скрипт:
В данном случае таблица называется «Users». В ней определено три столбца: Id, Age, Name. Первые два столбца представляют идентификатор пользователя и его возраст и имеют тип INTEGER , то есть будут хранить числовые значения. Столбец «Name» представляет имя пользователя и имеет тип TEXT , то есть представляет строку. В данном случае для каждого столбца определены имя и тип данных, при этом атрибуты столбцов и таблицы в целом отсутствуют.
И в результате выполнения этой команды будет создана таблица Users с тремя столбцами.
Создание таблицы при ее отсутствии
Если мы повторно выполним выше определенную sql-команду для создания таблицы Users, то мы столкнемся с ошибкой — ведь мы уже создали таблицу с таким названием. Но могут быть ситуации, когда мы можем точно не знать или быть не уверены, есть ли в базе данных такая таблица (например, когда мы пишем приложение на каком-нибудь языке программирования и используем базу данных, которая не нами создана). И чтобы избежать ошибки, с помощью выражения IF NOT EXISTS мы можем задать создание таблицы, если она не существует:
Если таблицы Users нет, она будет создана. Если она есть, то никаких действий не будет производиться, и ошибки не возникнет.
Прикрепление базы данных
Также мы можем прикрепить базу данных и затем в ней уже создать базу данных.
Для прикрепления базы данных применяется команда ATTACH DATABASE :
После команды ATTACH DATABASE указывается путь к файлу базы данных (в данном случае это путь «C:\sqlite\test.db»). Затем после оператора AS идет псевдоним, на который будет проецироваться база данных. То есть в коде для обращения к базе данных «C:\sqlite\test.db» будет применяться имя «text». При обращении к таблице из этой базы данных, сначала указывается псевдоним базы данных и через точку название таблицы:
Например, создадим таблицу в прикрепленной базе данных:
Для создания таблицы users в бд test.db название таблицы предваряется псевдонимом: test.users .

И после открытия базы данных test.db в ней можно будеть увидеть таблицу users.
Удаление таблиц
Для удаления таблицы применяется команда DROP TABLE , после которой указывается название удаляемой таблицы. Например, удалим таблицу users:
По аналогии с созданием таблицы, если мы попытаемся удалить таблицу, которая не существует, то мы столкнемся с ошибкой. В этом случае опять же с помощью операторов IF EXISTS проверять наличие таблицы перед удалением:
SQLite — Drop a Table
To drop a table in SQLite, use the DROP TABLE statement.
Running this statement removes the table from the database. It is completely removed from the database schema and the disk file. Therefore the table can not be recovered. All indices and triggers associated with the table are also deleted.
A Basic DROP TABLE Statement
First, let’s review the tables in our database:
We have a couple of spare tables from our previous exercises, so let’s drop one.
The following code deletes the Albums1 table:
After running that code, we can review our tables again:
The table has been removed.
Check if the Table Exists
You can use the IF EXISTS clause to check if the table exists before SQLite tries to drop it.
Doing this prevents any errors that would normally be generated if the table doesn’t exist.
First, let’s try to drop a non-existent table without using the IF EXISTS clause. Let’s try to drop the one we just dropped:
This results in the following:
OK, so let’s try it again, but this time with the IF EXISTS clause:
So nothing happened. Importantly, no error was thrown.
Drop a Table with Primary Keys
So what happens if we try to drop a table that contains primary keys, and there are foreign keys referencing them?
As expected, it failed. So if you need to drop a table, you will need to drop any associated tables first.
SQLite actually tries to delete the data before it drops a table. It is this delete action that causes any foreign key constraint checks to take place.
SQLite also drops any indices or triggers associated with the table before it performs the delete (and subsequent drop) operation.
Как удалить таблицу в sqlite
The DROP TABLE statement removes a table added with the CREATE TABLE statement. The name specified is the table name. The dropped table is completely removed from the database schema and the disk file. The table can not be recovered. All indices and triggers associated with the table are also deleted.
The optional IF EXISTS clause suppresses the error that would normally result if the table does not exist.
If foreign key constraints are enabled, a DROP TABLE command performs an implicit DELETE FROM command before removing the table from the database schema. Any triggers attached to the table are dropped from the database schema before the implicit DELETE FROM is executed, so this cannot cause any triggers to fire. By contrast, an implicit DELETE FROM does cause any configured foreign key actions to take place. If the implicit DELETE FROM executed as part of a DROP TABLE command violates any immediate foreign key constraints, an error is returned and the table is not dropped. If the implicit DELETE FROM causes any deferred foreign key constraints to be violated, and the violations still exist when the transaction is committed, an error is returned at the time of commit.
This page last modified on 2022-01-08 05:02:57 UTC