Ubuntu20.04にSQLiteをインストールして使用する方法
序章
SQLite は、無料のクロスプラットフォームデータベース管理システムです。 効率性と多くの異なるプログラミング言語とのインターフェース能力で人気があります。
このチュートリアルでは、Ubuntu20.04にSQLiteをインストールします。 次に、データベースを作成し、そこからデータを読み取り、アイテムを挿入し、アイテムを削除し、別々のテーブルからアイテムを結合します。
注:このチュートリアルには、SQLiteをインストールして使用するための実用的な手順が含まれています。 SQLiteデータベースの使用を検討すべきかどうかなど、より大きな概念上の問題や本番環境の問題については説明していません。 人気のあるリレーショナルデータベースの優れた概要とそれらの比較については、 SQLiteとMySQLとPostgreSQL:リレーショナルデータベース管理システムの比較の記事をご覧ください。
さらに、多くの言語はSQLiteとの統合を維持しています。 Pythonコード内でSQLiteを使用する手順については、チュートリアル Python3でsqlite3モジュールを使用する方法を確認してください。
前提条件
このチュートリアルを完了するには、次のものが必要です。
- Ubuntu20.04を実行しているローカルマシンまたはサーバー。 ルート以外のsudoユーザーとファイアウォールを含むサーバーをセットアップするには、 Ubuntu 20.04を実行するDigitalOceanDropletを作成してから、初期サーバーセットアップガイドに従います。
ステップ1—Ubuntu20.04にSQLiteをインストールする
UbuntuにSQLiteコマンドラインインターフェイスをインストールするには、最初にパッケージリストを更新します。
- sudo apt update
次にSQLiteをインストールします。
- sudo apt install sqlite3
インストールを確認するには、ソフトウェアのバージョンを確認します。
- sqlite3 --version
次のような出力が表示されます。
Output3.31.1 2020-01-27 19:55:54 3bfa9cc97da10598521b342961df8f5f68c7388fa117345eeb516eaa837balt1
SQLiteをインストールすると、新しいデータベースを作成する準備が整います。
ステップ2—SQLiteデータベースを作成する
このステップでは、さまざまなサメとその属性を含むデータベースを作成します。 データベースを作成するには、ターミナルを開いてこれを実行します sqlite3
指図:
- sqlite3 sharks.db
これにより、という名前の新しいデータベースが作成されます sharks
. ファイルの場合 sharks.db
すでに存在している場合、SQLiteはそれに接続を開きます。 存在しない場合は、SQLiteが作成します。
次のような出力が表示されます。
OutputSQLite version 3.31.1 2020-01-27 19:55:54
Enter ".help" for usage hints.
これに続いて、プロンプトが変わります。 新しいプレフィックス、 sqlite>
、が表示されます:
-
ファイルの場合 sharks.db
まだ存在しておらず、終了した場合 sqlite
クエリを実行せずにファイルをプロモートする sharks.db
作成されません。 ファイルが確実に作成されるようにするには、次のように入力して空のクエリを実行します。 ;
次に「Enter」を押します。 そうすれば、データベースファイルが実際に作成されたことを確認できます。
Sharkデータベースを作成したら、新しいテーブルを作成してデータを入力します。
ステップ3—SQLiteテーブルを作成する
SQLiteデータベースはテーブルに編成されています。 テーブルには情報が格納されます。 テーブルをよりよく視覚化するために、行と列を想像することができます。
このチュートリアルの残りの部分では、SQLiteコマンドを入力するための一般的な規則に従います。 SQLiteコマンドは大文字で、ユーザー情報は小文字です。 行はセミコロンで終了する必要があります。
次に、さまざまなデータ用のテーブルといくつかの列を作成しましょう。
- ID
- サメの名前
- サメの種類
- サメの平均の長さ(センチメートル)
次のコマンドを使用して、テーブルを作成します。
- CREATE TABLE sharks(id integer NOT NULL, name text NOT NULL, sharktype text NOT NULL, length integer NOT NULL);
使用する NOT NULL
そのフィールドを必須にします。 私たちは議論する予定です NOT NULL
次のセクションで詳しく説明します。
テーブルを作成した後、空のプロンプトが返されます。 それでは、いくつかの値を挿入しましょう。
テーブルへの値の挿入
SQLiteでは、テーブルに値を挿入するためのコマンドは、次の一般的な形式に従います。
- INSERT INTO tablename VALUES(values go here);
どこ tablename
テーブルの名前であり、 values
かっこ内に入ります。
次に、次の3行を挿入します VALUES
あなたに sharks
テーブル:
- INSERT INTO sharks VALUES (1, "Sammy", "Greenland Shark", 427);
- INSERT INTO sharks VALUES (2, "Alyoshka", "Great White Shark", 600);
- INSERT INTO sharks VALUES (3, "Himari", "Megaladon", 1800);
以前に指定したため NOT NULL
テーブル内の変数ごとに、それぞれの値を入力する必要があります。
たとえば、長さを設定せずに別のサメを追加してみてください。
- INSERT INTO sharks VALUES (4, "Faiza", "Hammerhead Shark");
次のエラーが表示されます。
OutputError: table sharks has 4 columns but 3 values were supplied
このステップでは、テーブルを作成し、それに値を挿入しました。 次のステップでは、データベーステーブルから読み取ります。
ステップ4—SQLiteでテーブルを読み取る
このステップでは、テーブルからデータを読み取る最も基本的な方法に焦点を当てます。 SQLiteがテーブル内のデータを表示するためのより具体的な方法を提供することを認識してください。
挿入されたすべての値を含むテーブルを表示するには、次を使用します。 SELECT
:
- SELECT * FROM sharks;
以前に挿入されたエントリが表示されます。
Output1|Sammy|Greenland Shark|427
2|Alyoshka|Great White Shark|600
3|Himari|Megaladon|1800
に基づいてエントリを表示するには id
(手動で設定した値)、を追加します WHERE
クエリへのコマンド:
- SELECT * FROM sharks WHERE id IS 1;
これにより、サメが返されます id
等しい 1
:
Output1|Sammy|Greenland Shark|427
このコマンドを詳しく見てみましょう。
- まず、
SELECT
全て (*
)データベースからの値、sharks
. - それから私たちはすべてを見る
id
値。 - 次に、すべてのテーブルエントリを返します。
id
に等しい1
.
これまでに、テーブルを作成し、そこにデータを挿入し、保存されたデータを照会しました。 次に、既存のテーブルを更新します。
ステップ5—SQLiteでテーブルを更新する
次の2つのセクションでは、最初に既存のテーブルに新しい列を追加してから、テーブルの既存の値を更新します。
SQLiteテーブルへの列の追加
SQLiteを使用すると、を使用してテーブルを変更できます ALTER TABLE
指図。 これは、新しい行と列を作成したり、既存の行と列を変更したりできることを意味します。
使用する ALTER TABLE
新しい列を作成します。 この新しいコラムでは、各サメの年齢を年単位で追跡します。
- ALTER TABLE sharks ADD COLUMN age integer;
これで5番目の列ができました。 age
.
SQLiteテーブルの値を更新する
を使用して UPDATE
コマンド、新規追加 age
各サメの値:
- UPDATE sharks SET age = 272 WHERE id=1;
- UPDATE sharks SET age = 70 WHERE id=2;
- UPDATE sharks SET age = 40 WHERE id=3;
Output1|Sammy|Greenland Shark|427|272
2|Alyoshka|Great White Shark|600|70
3|Himari|Megaladon|1800|40
このステップでは、テーブルの構成を変更してから、テーブル内の値を更新しました。 次のステップでは、テーブルから情報を削除します。
ステップ6—SQLiteで情報を削除する
このステップでは、引数の評価に基づいてテーブル内のエントリを削除します。
次のコマンドでは、データベースにクエリを実行し、データベース内のすべてのサメを削除するように要求しています。 sharks
年齢が200歳未満のテーブル:
- DELETE FROM sharks WHERE age <= 200;
タイピング SELECT * FROM sharks;
それを確認します Alyoshka
と Himari
それぞれ200歳未満の、が削除されました。 それだけ Sammy
ニシオンデンザメは残っています:
Output1|Sammy|Greenland Shark|427|272
ステップ7—SQLiteで情報を結合する
2つのテーブルがあると想像してみましょう:現在の sharks
テーブルと endangered
テーブル。 さて、 endangered
テーブルには id
にマップされた値 id
s sharks
テーブル、そしてそれはまた持っていた status
各サメの保全状況を示す値?
両方のテーブルのデータをクエリする場合は、SQLiteの4つの結合コマンドのいずれかを使用できます。
INNER JOIN
OUTER JOIN
LEFT JOIN
CROSS JOIN
その2番目のテーブルを作成してから、 INNER JOIN
いくつかのデータを結合します。
まず、 endangered
テーブル:
- CREATE TABLE endangered (id integer NOT NULL, status text NOT NULL);
- INSERT INTO endangered VALUES (1, "near threatened");
次に、テーブルを結合します。
- SELECT * FROM sharks INNER JOIN endangered on sharks.id = endangered.id;
出力は次のようになります。
Output1|Sammy|Greenland Shark|427|272|1|near threatened
出力には、 id
からの値 endangered
. より明示的なコマンドを使用して、目的の出力を指定できます。
- SELECT sharks.id, sharks.name, sharks.sharktype, sharks.length, sharks.age, endangered.status FROM sharks INNER JOIN endangered on sharks.id = endangered.id;
今回の出力は2番目を除外します id
価値:
Output1|Sammy|Greenland Shark|427|272|near threatened
これで、複数のテーブルからの情報を正常に結合できました。
結論
SQLiteはデータベース管理に便利なツールです。 データベースをすばやく作成し、さまざまなコマンドで操作できます。 このチュートリアルに続いて、SQLiteの基本を理解し、このデータベース管理システムをさらに深く理解する準備が整いました。
リレーショナルデータベースシステムの優れた概要とそれらの比較については、 SQLiteとMySQLとPostgreSQL:リレーショナルデータベース管理システムの比較の記事をご覧ください。
さらに、多くの言語はSQLiteとの統合を維持しています。 Pythonコード内でSQLiteを使用する手順については、チュートリアル Python3でsqlite3モジュールを使用する方法を確認してください。
SQLiteの構文に関する具体的なヘルプについては、公式ドキュメントがもう1つの優れたリソースです。