SQLiteのデータベースファイルをSDカードに保存
2011-02-24-1 / カテゴリ: [SQL][Android] / [permlink]

というのを年末調べてたけどまだまとめてなかったので。
内蔵ストレージに作られたファイルをコピーじゃなくて、最初からSD保存する構成。
大容量のデータを扱いたいとかデバッグ時とか。

というか、書籍やネットで「ファイル名を指定」している箇所をフルパスで指定(してandroid.permission.WRITE_EXTERNAL_STORAGEを付加)すればOK

SDK付属サンプルのNotePadであれば、
--- src/com/example/android/notepad/NotePadProvider.java.org	2011-01-20 16:43:58.312750000 +0900
+++ src/com/example/android/notepad/NotePadProvider.java	2011-02-24 21:06:29.551900000 +0900
@@ -30,6 +30,7 @@
 import android.database.sqlite.SQLiteOpenHelper;
 import android.database.sqlite.SQLiteQueryBuilder;
 import android.net.Uri;
+import android.os.Environment;
 import android.text.TextUtils;
 import android.util.Log;
 
@@ -43,7 +44,7 @@
 
     private static final String TAG = "NotePadProvider";
 
-    private static final String DATABASE_NAME = "note_pad.db";
+    private static final String DATABASE_NAME = Environment.getExternalStorageDirectory() + "/note_pad.db";
     private static final int DATABASE_VERSION = 2;
     private static final String NOTES_TABLE_NAME = "notes";
 
するとこんな感じ。(DesireIIで確認)
% adb shell ls -l /mnt/sdcard/note_pad.db
----rwxr-x system   sdcard_rw     4096 2011-02-24 11:50 note_pad.db

あとはファイルの暗号化機能とかあればなぁ…

MySQL 基本操作
2005-04-13-1 / カテゴリ: [linux][SQL][MySQL] / [permlink]

□ コマンドラインの起動

% mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8 to server version: 4.0.24_Debian-5-log

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>

□ ユーザ(root)にパスワードを設定

mysql> set password for root=password('********');
Query OK, 0 rows affected (0.00 sec)

□ MySQLユーザ名を指定した起動

	
% mysql -u username [-p]

□ データベースの一覧表示

mysql> show databases;
+----------+
| Database |
+----------+
| test     |
+----------+
1 row in set (0.00 sec)

□ データベース(zakidb)の作成

mysql> create database zakidb;
Query OK, 1 row affected (0.00 sec)

□ データベース(zakidb)の指定

mysql> use zakidb;
Database changed

□ テーブル(t_todofuken)の作成

mysql> create table t_todofuken (ken char(50), kencho char(50), jinko int);
Query OK, 0 rows affected (0.00 sec)

□ テーブル一覧の表示

mysql> show tables;
+------------------+
| Tables_in_zakidb |
+------------------+
| t_todofuken      |
+------------------+
1 row in set (0.00 sec)

□ テーブル(t_todofuken)のフィールド一覧を表示する

mysql> show fields from t_todofuken;
+--------+----------+------+-----+---------+-------+
| Field  | Type     | Null | Key | Default | Extra |
+--------+----------+------+-----+---------+-------+
| ken    | char(50) | YES  |     | NULL    |       |
| kencho | char(50) | YES  |     | NULL    |       |
| jinko  | int(11)  | YES  |     | NULL    |       |
+--------+----------+------+-----+---------+-------+
3 rows in set (0.00 sec)

□ フィールド名(ken -> kenmei)と型を変更する

mysql> alter table t_todofuken change ken kenmei char(50);
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> show fields from t_todofuken;
+--------+----------+------+-----+---------+-------+
| Field  | Type     | Null | Key | Default | Extra |
+--------+----------+------+-----+---------+-------+
| kenmei | char(50) | YES  |     | NULL    |       |
| kencho | char(50) | YES  |     | NULL    |       |
| jinko  | int(11)  | YES  |     | NULL    |       |
+--------+----------+------+-----+---------+-------+
3 rows in set (0.00 sec)

※ 型は変更しなくても指定すること

□ フィールドの型のみ修正する

mysql> alter table t_todofuken modify kenmei char(30);
Query OK, 0 rows affected (0.00 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> show fields from t_todofuken;
+--------+----------+------+-----+---------+-------+
| Field  | Type     | Null | Key | Default | Extra |
+--------+----------+------+-----+---------+-------+
| kenmei | char(30) | YES  |     | NULL    |       |
| kencho | char(50) | YES  |     | NULL    |       |
| jinko  | int(11)  | YES  |     | NULL    |       |
+--------+----------+------+-----+---------+-------+
3 rows in set (0.00 sec)

□ フィールド(menseki)を追加する

mysql> alter table t_todofuken add menseki int;
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> show fields from t_todofuken;
+---------+----------+------+-----+---------+-------+
| Field   | Type     | Null | Key | Default | Extra |
+---------+----------+------+-----+---------+-------+
| kenmei  | char(30) | YES  |     | NULL    |       |
| kencho  | char(50) | YES  |     | NULL    |       |
| jinko   | int(11)  | YES  |     | NULL    |       |
| menseki | int(11)  | YES  |     | NULL    |       |
+---------+----------+------+-----+---------+-------+
4 rows in set (0.00 sec)

□ テーブル(t_todofuken)を(フィールド・レコードともに)削除する

mysql> drop table t_todofuken;
Query OK, 0 rows affected (0.00 sec)
※ y/N すら聞いて来ないので注意!!!

MySQL のコマンドライン実行
2004-11-24-2 / カテゴリ: [SQL][MySQL] / [permlink]

$ mysql test
mysql> 

MySQL テーブル一覧の表示
2004-11-24-1 / カテゴリ: [SQL][MySQL] / [permlink]

mysql> show tables;

Oracle sqlplus 値変更
2004-09-22-1 / カテゴリ: [SQL][Oracle] / [permlink]

SQL> update TABLE_NAME set FIX_COLUMNS='newvalue' where COLUMNS = 'value';

1 row updated.

SQL> commit;

Commit complete.
テーブル TABLE_NAME のうち、COLUMNS='value' なデータを検索・そのレコード
の FIX_COLUMNS を newvalue に書き換える。
最後に commit するのを忘れずに。

Oracle sqlplus テーブル一覧
2004-08-27-1 / カテゴリ: [SQL][Oracle] / [permlink]

SQL> select table_name from dba_tables where table_name like '%hoge%';

テーブル名に hoge が含まれるものをリストアップする。
"%" はシェルで言うワイルドカード
"table_name" と "dba_tables" は固定

Oracle(てーかSQL) 基本
2004-08-18-1 / カテゴリ: [SQL][Oracle] / [permlink]

SQL> select 列挙したい項目 from テーブル名;
SQL> select 列挙したい項目 from テーブル名 where カラム名 = 'カラムの値';

e.g.
SQL> select COLUMNS1, COLUMNS2 from TABLE where COLUMNS3 = '1234567890';
COLUMNS3 が 1234567890 なレコードの、COLUMNS1, COLUMNS2 のみ表示する

数値のカラムが変なフォーマットになる
SQL> col カラム名 from 9999999999 (9は「数字」の意 %dみたいな?)
(文字列は a)

見たいテーブルのカラム名のリスト
SQL> desc テーブル名;
カテゴリ: SQL

最終更新時間: 2013-05-02 16:12