Python-data-access-python-sqlite-drop-table

提供:Dev Guides
移動先:案内検索

Python SQLite-テーブルの削除

DROP TABLEステートメントを使用して、テーブル全体を削除できます。 削除する必要があるテーブルの名前を指定するだけです。

構文

以下は、PostgreSQLのDROP TABLEステートメントの構文です-

DROP TABLE table_name;

次のクエリを使用して、名前がCRICKETERSとEMPLOYEESの2つのテーブルを作成したとします-

sqlite> CREATE TABLE CRICKETERS (
   First_Name VARCHAR(255), Last_Name VARCHAR(255), Age int,
   Place_Of_Birth VARCHAR(255), Country VARCHAR(255)
);
sqlite> CREATE TABLE EMPLOYEE(
   FIRST_NAME CHAR(20) NOT NULL, LAST_NAME CHAR(20), AGE INT,
   SEX CHAR(1), INCOME FLOAT
);
sqlite>
*_。tables_* コマンドを使用してテーブルのリストを確認すると、上記の作成されたテーブル(リスト)が次のように表示されます-
sqlite> .tables
CRICKETERS EMPLOYEE
sqlite>

次の文は、データベースからEmployeeという名前のテーブルを削除します-

sqlite> DROP table employee;
sqlite>

Employeeテーブルを削除したため、テーブルのリストを再度取得すると、その中の1つのテーブルのみを観察できます。

sqlite> .tables
CRICKETERS
sqlite>

Employeeテーブルを再度削除しようとすると、既に削除されているため、以下に示すように「そのようなテーブルはありません」というエラーが表示されます-

sqlite> DROP table employee;
Error: no such table: employee
sqlite>

これを解決するには、DELTEステートメントと一緒にIF EXISTS句を使用できます。 これにより、テーブルが存在する場合は削除され、存在しない場合はDLETE操作がスキップされます。

sqlite> DROP table IF EXISTS employee;
sqlite>

Pythonを使用してテーブルを削除する

MYSQLのDROPステートメントを使用して、必要なときにいつでもテーブルを削除できますが、既存のテーブルを削除するときは、テーブルの削除後に失われたデータが復元されないため、非常に注意する必要があります。

Pythonを使用してSQLite3データベースからテーブルを削除するには、カーソルオブジェクトで execute() メソッドを呼び出し、dropステートメントをパラメーターとして渡します。

import sqlite3

#Connecting to sqlite
conn = sqlite3.connect('example.db')

#Creating a cursor object using the cursor() method
cursor = conn.cursor()

#Doping EMPLOYEE table if already exists
cursor.execute("DROP TABLE emp")
print("Table dropped... ")

#Commit your changes in the database
conn.commit()

#Closing the connection
conn.close()

出力

Table dropped...