データベース操作
SQLITE3の基本
- 小規模なプログラム開発に向いています
- スマートフォンアプリケーションなどでは基本的に使用されています
- ファイルベースのため、導入が容易
- SQL構文自体になれるには一番簡単です。
Windowsの場合
配置して環境変数に追加する
C:\SQLITE3以下に配置して環境変数のPATHに追加します
システムの詳細設定からシステム環境変数のPATHに追加します。
Macの場合
デフォルトでインストール済み
データベースを作成するには
データベースを作成するにはコマンドプロンプト、もしくはTerminalを使用します
sqlite3 test.db
create table test(id integer primary key, name text);
.exit
プログラムから抜ける場合は.exitと入力してEnterを押します。
データベース操作の基本
create table
テーブルを作成します
select
データを取得した際にしようします
insert
データを追加した際にしようします
delete
データを削除した際にしようします
update
データを更新した際にしようします
テーブルを作成するには
DBを使用する場合、テーブルを作成することは初めの一歩になります。
最初に作成したファイル(test.db)がExcelのワークブック(.xlsx)だとしたらテーブルはExcelシートに当たります。
実際に作成するには以下のようなコマンドを入力します。
create table テーブル名(カラム名1 カラム型1,カラム名2 カラム型2 );
例としては以下のようなものです。
create table personal(id integer primary key autoincrement, name text);
カラム名はなんでも構いませんが、カラム型は決まっています。
http://so-zou.jp/web-app/tech/database/sqlite/data/data-type.htm
また、カラム名の後にauto incrementなどをつけると自動で採番してくれるようになります。
テーブルのプライマリーキー制約
テーブルには重要なキーワードで日本語では主キーと呼ばれます。これがないとRDBを使っている意味がありません。
テーブルから行を抽出する際に、一意になるキーのことを指します。
一般的にはidなどのkeywordがついていることが多い。
また、primary keyが複数につくパターンもあります。
このページが非常に参考になります。 https://www.dbonline.jp/mysql/table/index8.html
テーブルからデータを取得する
データを取得するにはselect文を発行します。
select カラム名 from テーブル名 where 条件
カラム名は複数指定することができますが,*を使うとそのテーブルが持っているすべてのカラムを取得することができます。
where条件句の書き方はhttp://rfs.jp/sb/sql/s03/03_2-2.htmlを参照してください。
以下サンプルとして
select * from personal;
Where句の条件指定
テーブルへの追加処理(insert)
テーブルへの追加は簡単です。
insert into テーブル名(カラム名1,カラム名2) values(値1, 値2);
idなどauto increment がついている場合はそのカラムを指定する必要はありません。
例えば以下のようなSQLになります。
insert into personal (name) values(‘test’);
テーブルへの更新処理(update)(insert)
データを変更したい場合にupdate文を作成して発行します。
update テーブル名 set カラム名 = 値 where primary key column = 値;
例えば以下のようなSQLを書きます
update personal set name = ‘Taro Yamada’ where id = 1;
テーブルからの削除処理(update)(insert)
データを削除したい場合はdelete文を発行します。
delete from テーブル名 where カラム名 = 値;
カラム名には大抵、primary keyのカラム名が来ます。
delete from personal where id = 1;
データの結合について(update)(insert)
RDBの醍醐味。
データを結合して取得することが可能です。
実際にはあまりこういう構造にすることはないですが、例として挙げておきます。
create table personal_ages(personal_id integer primary key, age integer);
insert into personal (name ) values(‘山田太郎’);
insert into personal_ages (personal_id, age) values(2, 22);
select * from personal inner join personal_ages on personal.id = personal_ages.personal_id;
さらに複雑な例として(update)(insert)
http://rfs.jp/sb/sql/s03/03_3.html
こちらの例を参考に少し複雑な例を考えてみましょう
PHPからのアクセス(update)(insert)
PHPからアクセスする際にも上述のようなSQLを使用しなくてはなりません。
少しずつで構いませんが、本やサイトを見てSQLについての知識を深めてください。
WordPressなどもDBを使用しており、何かあった際にはデータ調査などを行う必要もあります。
少しでも便利にするために(update)(insert)
DB Browser for SQLite
http://sqlitebrowser.org/
SQLiteのDBに対してSQL を発行し、見やすく表示してくれるGUIのツールです