SQLite入門(2) データベースの階層構造を理解する
前回のあらすじ
C\sqlite > sqlite3 my_database.db SQLite version 3.35.1 2021-03-15 16:53:57 Enter ".help" for usage hints. C\sqlite >
無償で使えるデータベース管理ツール「SQLite」をPCへ導入、データベースを作成した。
データベースにデータを入れる
前回のsqlite3 my_database.db
を実行した段階では、.db
ファイルにまだデータはおろか、データを入れる枠すら作成されていない状態です。
データベースの階層構造を理解しつつ、データを入れる枠であるテーブルとカラムを作成します。
データベースの階層構造
データの型
SQLiteの型 | 説明 | MySQLの型 |
---|---|---|
NULL | NULL値 | |
TEXT | テキスト | CHAR, VARCHAR |
INTEGER | 整数 | TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT |
REAL | 浮動小数点数 | FLOAT, DOUBLE |
BLOB | Binary Large OBject。入力データをそのまま格納 |
※DATETIME(日付)型はSQLiteではTEXT型として扱われる。
※MySQLではVARCHAR(10)
のようにデータのバイト数上限を指定できるが、SQLiteでは適用されない。
# テーブルを作る
sqlite > create tabel my_table(id integer , name text , del_flag integer);
create table [テーブル名]\(カラム名 データ型\);
末尾のセミコロンを忘れずに!
データ型の後ろに not null
と記載するとNULL
をデータ上に生成しないように指定など、テーブル作成にまつわるオプションは数多く存在する。参考
作ったテーブルを確認する
.table
でデータベースに上に作成したテーブルを確認できる。
sqlite> .table my_table
どんな作り方をしたかを見たい場合はsqlite_master
からSELECTする。
以下はさらにwhere
でテーブルの名前で指定している。
.mode line
で行ごとに出力させると以下のように表示される
sqlite > .mode line sqlite > select * from sqlite_master where type ='table' and name='my_table' type = table name = my_table tbl_name = my_table rootpage = 2 sql = CREATE TABLE my_table (id integer , name text , del_flag integer)
データを入れる
INSERT INTO テーブル名 VALUES(値1, 値2, ...);
でデータをテーブルへ格納していく。
sqlite > insert into my_table values('1','tom',0) sqlite > select * from my_Table id = 1 name = htom del_flag = 0
入っているデータを全て確認したいならselect * from [テーブル名]
。
テーブルを削除する
drop [テーブル名];
でテーブルごと削除ができます。
sqlite > drop my_table;
最後に
コマンドの末尾には「;」を付けるのが必須です。お忘れなく!
次回
CSVをそのままテーブルに取り込む