SQLiteでテーブルのチェック制約を簡単操作!リスト・作成・削除方法を徹底解説
SQLite テーブルのチェック制約をリストする方法
このチュートリアルでは、次の方法について説明します。
SQLiteStudio を使用してチェック制約をリストする
SQLiteStudio は、SQLite データベースを操作するためのグラフィカル ユーザー インターフェース (GUI) ツールです。チェック制約をリストするには、次の手順に従います。
- SQLiteStudio で SQLite データベースを開きます。
- チェック制約をリストしたいテーブルを右クリックします。
- メニューから「構造」を選択します。
- 「制約」タブを選択します。
このタブには、テーブルのすべての制約が表示されます。チェック制約は、「CHECK」列に表示されます。
次の SQL クエリを使用して、テーブルのチェック制約をリストすることもできます。
PRAGMA table_info(table_name);
このクエリは、テーブルに関する情報を含むテーブルを返します。 CHECK
列には、テーブルの各列のチェック制約が表示されます。
例:
次のクエリは、customers
テーブルのチェック制約をリストします。
PRAGMA table_info('customers');
このクエリは次の結果を返します。
| cid | name | type | notnull | dflt_value | chk |
|---|---|---|---|---|---|
| 1 | customer_id | INTEGER | 1 | | |
| 2 | first_name | TEXT | 0 | | |
| 3 | last_name | TEXT | 0 | | |
| 4 | email | TEXT | 1 | | CHECK(email LIKE '%@%') |
email
列には、email
列の値が @
記号を含む必要があることを示すチェック制約があります。
SQLite を使用するプログラミング言語を使用して、チェック制約をリストすることもできます。これを行う方法は、言語によって異なります。
import sqlite3
conn = sqlite3.connect('mydatabase.db')
cursor = conn.cursor()
cursor.execute('PRAGMA table_info(customers)')
for row in cursor:
print(row[5])
conn.close()
このコードは次の出力を生成します。
CHECK(email LIKE '%@%')
この出力は、email
列のチェック制約が email
列の値が @
記号を含む必要があることを示していることを示しています。
このチュートリアルでは、SQLite テーブルのチェック制約をリストする方法について説明しました。チェック制約を使用して、データの整合性を保ち、エラーを回避できます。
サンプルコード:SQLite テーブルのチェック制約をリストする
SQLiteStudio を使用する
この例では、SQLiteStudio を使用して customers
テーブルのチェック制約をリストする方法を示します。
手順:
customers
テーブルを右クリックします。
このタブには、customers
テーブルのすべての制約が表示されます。CHECK
列には、テーブルの各列のチェック制約が表示されます。
結果:
cid | name | type | notnull | dflt_value | chk |
---|---|---|---|---|---|
1 | customer_id | INTEGER | 1 | ||
2 | first_name | TEXT | 0 | ||
3 | last_name | TEXT | 0 | ||
4 | TEXT | 1 | CHECK(email LIKE '%@%') |
SQL クエリを使用する
PRAGMA table_info('customers');
このクエリを実行すると、次の結果が表示されます。
| cid | name | type | notnull | dflt_value | chk |
|---|---|---|---|---|---|
| 1 | customer_id | INTEGER | 1 | | |
| 2 | first_name | TEXT | 0 | | |
| 3 | last_name | TEXT | 0 | | |
| 4 | email | TEXT | 1 | | CHECK(email LIKE '%@%') |
プログラミング言語を使用する
import sqlite3
conn = sqlite3.connect('mydatabase.db')
cursor = conn.cursor()
cursor.execute('PRAGMA table_info(customers)')
for row in cursor:
print(row[5])
conn.close()
CHECK(email LIKE '%@%')
これらの例は、チェック制約をリストするための基本的な方法を示しています。ニーズに合わせてコードを調整できます。
SQLite でチェック制約をリストするその他の方法
DESCRIBE TABLE
ステートメントを使用して、テーブルの構造に関する情報を取得することもできます。この情報には、テーブルの各列のチェック制約も含まれます。
DESCRIBE TABLE customers;
| Name | Type | Collation | Nullable | Default | Check |
|---|---|---|---|---|---|
| customer_id | INTEGER | PRIMARY KEY AUTOINCREMENT | NO | | |
| first_name | TEXT | | YES | | |
| last_name | TEXT | | YES | | |
| email | TEXT | | NO | | CHECK(email LIKE '%@%') |
sqlite
コマンドライン ツールを使用して、SQLite データベースを操作することもできます。チェック制約をリストするには、次のコマンドを使用します。
sqlite3 database.db .schema TABLE_NAME
このコマンドは、テーブルの構造に関する情報を表示します。この情報には、テーブルの各列のチェック制約も含まれます。
sqlite3 mydatabase.db .schema customers
CREATE TABLE customers (
customer_id INTEGER PRIMARY KEY AUTOINCREMENT,
first_name TEXT,
last_name TEXT,
email TEXT CHECK(email LIKE '%@%')
);
サードパーティのツールを使用する
SQLite でチェック制約をリストするのに役立つサードパーティのツールがいくつかあります。これらのツールの多くは、GUI を備えており、チェック制約を簡単に表示できます。
人気のサードパーティ ツールには次のようなものがあります:
- SQLiteStudio
- DBeaver
- DB Browser for SQLite
これらのツールは、チェック制約だけでなく、SQLite データベースを操作するためのその他の機能も提供します。
これらの方法はすべて、SQLite でチェック制約をリストするのに有効です。使用する方法は、ニーズと好みによって異なります。
sqlite