Download presentation
Presentation is loading. Please wait.
1
6-2 データベース 1.SQLite SQLを単純化した SQLite を使ってデータベースを操作 表「fruit」
id name price 0 りんご 150 1 オレンジ 200 2 なし 200 3 ぶどう 300 4 柿 100
2
表の作成・削除 データ操作 SQL文 表の作成 CREATE TABLE 表名(列名 型,…)
データ操作 SQL文 表の作成 CREATE TABLE 表名(列名 型,…) 列の追加 ALTER TABLE 表名 ADD 列名 型,…) 表の削除 DROP TABLE 表名
3
データの追加・更新・削除 データ操作 SQL文 データ追加 INSERT INTO 表名 VALUES(値,値,…)
データ操作 SQL文 データ追加 INSERT INTO 表名 VALUES(値,値,…) データ更新 UPDATE 表名 SET 列名=値 WHERE 条件 データ削除 DELETE FROM 表名 WHERE 条件
4
プログラム例(その1) package jp.eclipse; import android.app.*;
import android.database.*; import android.database.sqlite.*; import android.os.*; import android.widget.*; public class DbCreateActivity extends Activity { ListView listV; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); LinearLayout LL= new LinearLayout(this); LL.setOrientation(LinearLayout.HORIZONTAL); setContentView(LL); listV=new ListView(this); String dbName="data/data/"+getPackageName()+"/sample.db";
5
プログラム例(その2) // Data Base Create SQLiteDatabase db=
SQLiteDatabase.openOrCreateDatabase(dbName,null); String Q0="DROP TABLE IF EXISTS fruit"; String Q1="CREATE TABLE fruit"+ "(id INTEGER PRIMARY KEY, name STRING, price INTEGER)"; String[] Q2={"INSERT INTO fruit(id, name, price) VALUES(0,'りんご',150)", "INSERT INTO fruit(id, name, price) VALUES(1,'オレンジ',200)", "INSERT INTO fruit(id, name, price) VALUES(2,'なし',200)", "INSERT INTO fruit(id, name, price) VALUES(3,'ぶどう',300)", "INSERT INTO fruit(id, name, price) VALUES(4,'柿',100)"}; String Q3="SELECT * FROM fruit"; db.execSQL(Q0); db.execSQL(Q1); for(int i=0;i<Q2.length;i++) db.execSQL(Q2[i]); Cursor cr = db.rawQuery(Q3, null); startManagingCursor(cr); ArrayAdapter<String> ad =new ArrayAdapter<String> (this, android.R.layout.simple_list_item_1);
6
プログラム例(その3) while(cr.moveToNext()) { int i = cr.getColumnIndex("id");
int n = cr.getColumnIndex("name"); int p = cr.getColumnIndex("price"); int id=cr.getInt(n); String name =cr.getString(n); int price=cr.getInt(p); String str = id + " : " + name + " = " + price + " 円"; ad.add(str); } listV.setAdapter(ad); LL.addView(listV); db.close(); }
7
結果例 リストとして表示
8
「adb.exe」が見つからないとのエラーで動かないとき…
①マイコンピュータを右クリックしてプロパティを開く。 ②「システムの詳細設定」を選択する。 ③「詳細設定」タブの「環境変数」を開く。 ④「システム環境変数」の中から「path」という項目を探して選択し,「編集」をクリック。 ⑤変数値の最後にAndroid SDK の「platform-tools」フォルダの場所を書き込む。たとえば,c:\androidsdk/platform-toolsにフォルダがあったら, “;c:\androidsdk/platform-tools” を追加する。パスの前にセミコロン(;)を入れることに注意する。 ⑥「OK」ボタンをクリックしてウィンドウを閉じる。 ⑦「アクセサリ」の「コマンドプロンプト」を起動して, >path[ENTER] とキーインすると,⑤でキーインしたパスが表示されることを確認する。
9
2.条件による検索e 【Q3の文字列を以下のように書き直す。 SELECT * FROM fruit WHERE price>=200
id name price 0 りんご 150 1 オレンジ 200 2 なし 200 3 ぶどう 300 4 柿 100
10
3.名前による検索 【Q3の文字列を以下のように書き直す。 SELECT * FROM fruit WHERE name=‘なし’
id name price 0 りんご 150 1 オレンジ 200 2 なし 200 3 ぶどう 300 4 柿 100
11
4.データの一部で検索 【Q3の文字列を以下のように書き直す。 SELECT * FROM fruit WHERE name=‘%ど%’
id name price 0 りんご 150 1 オレンジ 200 2 なし 200 3 ぶどう 300 4 柿 100
12
5.値の順に並べる 【Q3の文字列を以下のように書き直す。 SELECT * FROM fruit ORDER BY price
id name price 0 りんご 150 1 オレンジ 200 2 なし 200 3 ぶどう 300 4 柿 100
13
6.値の大きい順に並べる 【Q3の文字列を以下のように書き直す。
SELECT * FROM fruit ORDER BY price DESC 表「fruit」 id name price 0 りんご 150 1 オレンジ 200 2 なし 200 3 ぶどう 300 4 柿 100
Similar presentations
© 2024 slidesplayer.net Inc.
All rights reserved.