■rktSQLite2
今回はこのアプリケーションを使って、SQLiteを触ってみるよ
▼DLまでのながれ
rakutoネットで検索:http://study.rakuto.net/php/rktSQLite/rktSQLite1/
rktSQLiteをDL:今回はこれrktSQLite2.2.07.zip(110KB)
eclipsのプロジェクトにDLしたディレクトリごとコピー
いつも使ってるlocalhostでhttp://localhost:○○/プロジェクト名/rktSQLite2/htdocs/index.php
▼eclipsのプラグインで、rktSQLite2と同じ用に使えるやつ
※今回ははじめから、インストールされてた以下の2つを見てみたよ(後で実際に触ってみようね)
ウィンドウ→設定→Clay Databace Modeling:DB作る
DBViewerプラグイン:DB見る
SQLite
通常はDBはサーバー(DB専用の)にインストールする(ってかサーバー立てる)けど、今回のrktSQLiteはプログラムに組み込み系のDB
※手軽で便利
■テーブルの作成:CREATE TABLE テーブル名
カラムの情報(たとえば↓)
CREATE TABLE staff (
id INT NOT NULL,
name VARCHAR(256) NOT NULL,
height DOUBLE NOT NULL,
weight DOUBLE NOT NULL,
PRIMARY KEY (id)
)
▼テーブルの追加
・テーブル名は日本語不可
・フィールド数は、カラム数のこと。
▼テーブル構造の入力
・項目
・型名:INT(数)
CHAR(文字型で、文字数を固定)
VARCHAR(文字型)
・長さ:バイト数(文字型で、256なら、128文字とかね)
▼追加:INSERT INTO テーブル名
たとえば↓
INSERT INTO staff(
id,
name,
height,
weight
)VALUES(
‘1′,
‘田中’,
‘175.5′,
‘67.4′
);
※順番が重要:VALUESの前の、カラム名に合わせて、VALUES後のデータを入力する
▼変更・更新(SQL内の、データの中身を変更する):UPDATE テーブル名SET
たとえば↓
UPDATE staff SET
id=’1′,
name=’田中’,
height=’175.5′,
weight=’75.0′
WHERE //どこを(条件文)※条件つけないと、そのカラムすべてが変更されるよ
rowid=1;//idが1のところ
たとえば2↓
UPDATE dhw SET name =’東京校’ WHERE id=1
UPDATE dhw SET name =’東京校’ WHERE name=’東京本校’
UPDATE dhw SET name =’東京校’ WHERE name=’東京本校’ OR id=1
▼消去:DELETE FROM テーブル名WHERE rowid=○○;
たとえば↓
DELETE FROM staff WHERE rowid=1;
※消す前に、DELETEをSELECT *にして、確認してから消したほうが、確実だね。ほんとに消して大丈夫なのか確認してからのが安心だし。この作業を癖にするくらいがいいよね。
※※条件つけないと、全部消えちゃうから、確実に、条件文をつけておくように、これも癖つけようね!!!!!
▼
SELECT * FROM テーブル名:テーブルの中のすべてのデータを出しなさいの意味
*が、カラム全部的な意味
*を、idの情報だけがほしい場合は、*をidにすればいい
SELECT * FROM テーブル名 WHERE ○○:テーブルの中の○○にあるすべてのデータを出しなさいの意味
複数データを取り出したいときはカンマ,で区切る
→Ex.)SELECT id,name,height FROM staff
DISTINCT:同じもの、重複しているデータをひとつにまとめる
→Ex.)SELECT DISTINCT name FROM staff:重複している”名前”をひとつにまとめる
→Ex.)SELECT DISTINCT* FROM staff:すべてのデータが重複してたらまとめる
条件文WHERE:条件文。WHEREのあとに、条件になるものを書いて指定
→Ex.)SELECT height FROM staff WHERE height < 170 :staff っていうDBから、height170未満のheightをセレクト
→ANDとかORを使って、条件を足すこともできる
→SELECT * FROM staff WHERE height < 170 AND weight > 60 :heightが170以下で、かつ、weightが60以上
→SELECT * FROM staff WHERE height < 170 OR weight > 60 :heightが170以下かweightが60以上
→LIKE:検索の時に使う(完全一致)
→普通にLIKEを使うときは=とか==を使っても一緒
→%を使うと、後方一致・前方一致が使える※シングルコーテーションの中に書いてあげる
→SELECT * FROM staff WHERE name LIKE ‘田%’ :今回は田中が検索される 前方一致 田○○○
→SELECT * FROM staff WHERE name LIKE ‘%中’ :今回は田中が検索される 後方一致 ○○○田
→SELECT * FROM staff WHERE name LIKE ‘%田%’ :今回は田中が検索される 全後方一致 ○田○
→IN:ORORORしないで、まとめて書く。※含むものをとってくる
→SELECT * FROM staff WHERE id=1 OR id=2 OR=3 ⇒ SELECT * FROM staff WHERE id IN(1,2,3)
△デメリット:引数が多くなってくると、重くなったりするから、たくさんのデータを扱うときは注意 SQLiteは引数100個以上になるとエラるよ
→NOT IN※含まないものをもってくる
→SELECT * FROM staff WHERE id NOT IN(1,2,3) :id=1 id=2 id=3を含まないものをとってくる
→データの並び替え(ソート)
→ORDER BY:ならびかえ
→SELECT * FROM staff ORDER BY height,weight
→DESC:降順
→SELECT * FROM staff ORDER BY height DESC,weight DESC
→ASC:昇順(デフォはASCになってるよ)
→LIMIT:1ページに指定した件数分を表示する
→SELECT * FROM staff LIMIT 3 :staffデータテーブルから3件持ってくる
→▼OFFSETとうまく組み合わせよう!
SELECT * FROM staff LIMIT 3 OFFSET 0 :1ページに3件で、0件目から
→▼関数
→COUNT:そのテーブルに入っているデータの数をかえす
→SELECT COUNT(*) FROM staff :スタッフっていうDBテーブルの中の件数
→SELECT COUNT(id) FROM staff :スタッフっていうDBテーブルの中の件数
※そのテーブルの中のプライマリキーを指定するのが一番いいよ!!!プライマリキーは、重複することがないからね!!!!!
※人によってはアスタリスク指定するの嫌がって、カラム指定しなって人もいるからね
→MAX:テーブルの中にあるデータで、一番大きいものを返す
→SELECT MAX(id) FROM staff :スタッフっていうDBテーブルの中のidで一番大きいもの
→SELECT MAX(height) FROM staff :スタッフっていうDBテーブルの中のheightで一番大きいもの
→MIN:テーブルの中にあるデータで、一番小さいものを返す
→SELECT MIN(weight) FROM staff :スタッフっていうDBテーブルの中のweightで一番小さいもの
→SUM:テーブルの中にあるデータの合計
→SELECT SUM(weight) FROM staff :スタッフっていうDBテーブルの中のweightの合計
■テーブルの削除:DROP TABLE テーブル名
■テーブルの更新・変更:ALTER TABLE テーブル名 (※基本的には、途中変更はしないですむように、よく考えて作ろう!最初は、DROPしちゃって、新しく作り直すくらいでもいいと思う)
変更したいTABLE