【Python Anaconda】SQLite3のデータベースをPromptから操作する方法

/

【Python Anaconda】SQLite3のデータベースをPromptから操作する方法

アプリケーションを作成すると、ほぼ必ずデータベースを使うことになります。
今回はデータベースを管理するDBRMSの一つである、SQLite3の操作方法について解説していきます。

SQLiteのデータベースを接続・操作するアプリケーションとしてPythonのディストリビューションである、AnacondaPromptを使用します。

IT用語の確認

Anacondaとは、Pythonのディストリビューション(Pythonを使う上で必要な便利アプリがセットになっているモノ)です。簡単に言うと、これを入れておけば、Pythonでの開発ができるようになるツール

PythonのtkinterでSQLite3と連携したアプリの開発方法は以下をご覧ください。

SQLite3を操作するコマンドは、Anacondaを使っていなくても共通しているので、Anacondaって何?って思っている方も安心して読み進めてください。

SQLite3データベースの作成・接続方法

SQLite3のデータベースにAnacondaのPromptを使いますので、Anaconda Promptを起動します。

IT用語の確認

Anaconda Promptとは、Anacondaでのコマンドプロンプトだと思ってください。PATHを通さなくてもPythonコマンドが実行できます

起動方法は、Windowsキーを押して表示されたアプリ一覧に以下画像のように表示されるので、Anaconda Promptを探してクリックします。

anaconda promptの起動

Pythonユーザーではなく、普通にSQLiteを使いたい方はSQLiteをインストールした後、コマンドプロンプトからデータベースに接続します。

SQLiteのインストールはこちらからできます。

起動方法は「ファイル名を指定して実行」(Windowsキー+R)にcmdと入力して実行します。

ファイル名を指定して実行(Windowsキー+R)

Anaconda Promptを起動したら、データベースがあるディレクトリまで移動します。まだデータベースがなにもなければそのままで大丈夫です。

anaconda promptでフォルダ移動

次に以下コマンドでデータベースの作成または接続を行います。

sqlite3 データベース名

現在いるディレクトリ内にデータベースが存在してなければ新規に作成し、存在していればそのデータベースに接続します。

これでSQLite3のデータベースに接続ができました。
接続されているとsqlite>と表示されます。

次にデータベースの操作方法について解説します。

SQLite3データベースの操作方法

データベースにテーブルを作成するには以下のコマンドを実行します。

CREATE TABLE テーブル名(カラム名, カラム名, …);

テーブル名はsqlite_で始まる名前以外は自由に指定できます。
またカラムは1つ以上指定する必要があります。

CREATE TABLE test(id, name);

上記は、testというテーブル名で、idとnameの二つのカラムが存在するテーブルを作成します。

データベースにあるテーブルの確認は以下のコマンドを実行します。

.tables

データベース内のテーブルがどういったCreate文で作成されたかを確認するには以下のコマンドを実行します。

select * from sqlite_master;

上記コマンドでは、Create文だけでなく、テーブル名やタイプなどが表示されます。
Create文だけ表示させたい場合は以下のコマンドを実行します。

.schema

接続したデータベースを切断するには以下コマンドを実行します。

.exit

そのほかデータベースの操作にはSQLを使って行います。
今後SQLiteを使う場合は、SQLを学ぶ必要があります。

基本的なSQLでの操作方法

簡単なSQLを用いたデータベース操作をまとめます。

テーブルの中身を表示されるには以下コマンドを使用します。

SELECT * FROM テーブル名;

*をカラム名にすれば、そのカラムのみを抽出して表示されます。

カラムの値を変更するには以下のコマンドを使用します。

UPDATE テーブル名 SET カラム名 = データ;

特定の行だけ変更する場合は、WHERE句で条件指定する必要があります。

カラムにデータを挿入するには以下のコマンドを使用します。

INSERT INTO テーブル名 (カラム名1, カラム名2, …) VALUES (カラム名1の値, カラム名2の値, …);

上記SQLで特定のカラムにデータを追加することができます。