Hatena::Groupandroid

lnzntの Android 日記 このページをアンテナに追加 RSSフィード

2010年11月28日(日)

SQLite3 の 開発環境用GUI ツール

| 10:58 | SQLite3 の 開発環境用GUI ツール - lnzntの Android 日記 を含むブックマーク はてなブックマーク - SQLite3 の 開発環境用GUI ツール - lnzntの Android 日記 SQLite3 の 開発環境用GUI ツール - lnzntの Android 日記 のブックマークコメント

Ubuntu でパッケージが用意されている SQLite3 の GUI ツール。

sqlitebrowser (パッケージ名: sqlitebrowser)

sqlitebrowser

sqliteman (パッケージ名: sqliteman)

sqliteman

2010年11月21日(日)

SQLite3 学習メモ(その9) データベースの管理

| 22:20 | SQLite3 学習メモ(その9) データベースの管理 - lnzntの Android 日記 を含むブックマーク はてなブックマーク - SQLite3 学習メモ(その9) データベースの管理 - lnzntの Android 日記 SQLite3 学習メモ(その9) データベースの管理 - lnzntの Android 日記 のブックマークコメント

参考サイト

データベースの管理

.show コマンドで現在の SQLite の設定が表示される。

sqlite> .show
     echo: off
  explain: off
  headers: off
     mode: list
nullvalue: ""
   output: stdout
separator: "|"
    stats: off
    width: 

データベースを管理するコマンド

(テーブルデータのファイルからのインポート)
sqlite> .import FILE TABLE

(出力先の変更)
sqlite> .output FILENAME

(テーブルのダンプ)
sqlite> .dump ?TABLE? ...

(ダンプしたファイルの読み込み)
sqlite> .read FILENAME

(データベースのバックアップ。DB を省略した場合は main)
sqlite> .backup ?DB? FILE

(バックアップしたデータベースのリストア)
sqlite> .restore ?DB? FILE

インポートするファイルの例。(セパレータは .show コマンドで確認)

10,掃除機
11,時計
12,テレビ

セパレータは .separator コマンドで変更できる。

sqlite> .separator ,

2010年11月20日(土)

SQLite3 学習メモ(その8) テーブルの結合

18:26 | SQLite3 学習メモ(その8) テーブルの結合 - lnzntの Android 日記 を含むブックマーク はてなブックマーク - SQLite3 学習メモ(その8) テーブルの結合 - lnzntの Android 日記 SQLite3 学習メモ(その8) テーブルの結合 - lnzntの Android 日記 のブックマークコメント

参考サイト

テーブルの結合

普通の RDB と同じ要領。

--内部結合
SELECT テーブル名.カラム名, ... FROM テーブル名1
 INNER JOIN テーブル名2 ON テーブル名1.カラム名1 = テーブル名2.カラム名2;

--内部結合(自然結合)
SELECT テーブル名.カラム名, ... FROM テーブル名1
 NATURAL INNER JOIN テーブル名2;

-- 外部結合
SELECT テーブル名.カラム名, ... FROM テーブル名1
 LEFT OUTER JOIN テーブル名2 ON テーブル名1.カラム名1 = テーブル名2.カラム名2;
-- RIGHT OUTER JOIN と FULL OUTER JOIN は未サポート

-- 外部結合(自然結合)
SELECT テーブル名.カラム名, ... FROM テーブル名1
 NATURAL LEFT OUTER JOIN テーブル名2;

-- 交差結合
SELECT テーブル名.カラム名, ... FROM テーブル名1
 CROSS JOIN テーブル名2 ON テーブル名1.カラム名1 = テーブル名2.カラム名2;

自己結合の例。

select f1.name, f2.name from friends f1
 inner join friends f2 on f1.friendid = f2.id;

2010年11月19日(金)

SQLite3 学習メモ(その7) データの追加/更新/削除

| 08:52 | SQLite3 学習メモ(その7) データの追加/更新/削除 - lnzntの Android 日記 を含むブックマーク はてなブックマーク - SQLite3 学習メモ(その7) データの追加/更新/削除 - lnzntの Android 日記 SQLite3 学習メモ(その7) データの追加/更新/削除 - lnzntの Android 日記 のブックマークコメント

参考サイト

--データの追加
INSERT INTO テーブル名 [ (カラム1, カラム2, ...) ] VALUES(値1, 値2, ...);
INSERT INTO テーブル名 DEFAULT VALUES;
INSERT INTO テーブル名(カラム名1, カラム名2, ...) SELECT文;

-- データの更新
UPDATE テーブル名 SET カラム名1 = 値1, カラム名2 = 値2, ... [ WHERE 条件式 ];

--データの削除
DELETE FROM テーブル名 [ WHERE 条件式 ];

2010年11月14日(日)

SQLite3 学習メモ(その6) トリガ

| 07:31 | SQLite3 学習メモ(その6) トリガ - lnzntの Android 日記 を含むブックマーク はてなブックマーク - SQLite3 学習メモ(その6) トリガ - lnzntの Android 日記 SQLite3 学習メモ(その6) トリガ - lnzntの Android 日記 のブックマークコメント

参考サイト

-- トリガの作成
CREATE TRIGGER トリガ名 [ BEFORE | AFTER | INSTEAD OF]
 { DELETE | UPDATE [OF カラム名, ...] | INSERT } ON テーブル名
 [ FOR EACH ROW | FOR EACH STATEMENT ]
 [ WHERE 条件式 ]
 BEGIN
  SQL文1;
  SQL文2;
  ...
 END;

-- トリガの削除
DROP TRIGGER トリガ名;

-- トリガーの定義文の中でBEGINからENDまでの間では次のような記述を行える
NEW.カラム名    INSERT及びUPDATEで使用可能
OLD.カラム名    DELETE及びUPDATEで使用可能

上記サイトより抜粋。

>>>

SQLiteでは現在「FOR EACH ROW」しか対応していません。その為「FOR EACH ROW」を省略しても「FOR EACH ROW」が設定されたものとみなされます。

<<<

トリガは .schemaコマンド で確認できる。

2010年11月12日(金)

SQLite3 学習メモ (その5) ビュー、インデックス

| 18:38 |  SQLite3 学習メモ (その5) ビュー、インデックス - lnzntの Android 日記 を含むブックマーク はてなブックマーク -  SQLite3 学習メモ (その5) ビュー、インデックス - lnzntの Android 日記  SQLite3 学習メモ (その5) ビュー、インデックス - lnzntの Android 日記 のブックマークコメント

参考サイト

ビュー

(ビューの作成)
CREATE VIEW ビュー名 AS SELECT文;

(ビューの削除)
DROP VIEW ビュー名;

.schema コマンドでビューを指定できる。.table コマンドはビューも表示する。

sqlite> create view addr_view as select id from address;
sqlite> .schema addr_view
CREATE VIEW addr_view as select id from address;
sqlite> .table
addr_view  address    test       test2    
sqlite> 

インデックス

(インデックスの作成)
CREATE [UNIQUE] INDEX インデックス名 ON テーブル名(カラム名1, カラム名2, ...);

(インデックスの削除)
DROP INDEX インデックス名;

(VACUUM の実行)
VACUUM;

PRIMARY KEY 制約のカラムには自動的に UNIQUE INDEX が作成される。

インデックスは .indices コマンド、.schema コマンドで確認できる。

sqlite> create index addr_idx on address(name);
sqlite> .indices address
addr_idx
sqlite> .schema address
CREATE TABLE address(id integer primary key, name text);
CREATE INDEX addr_idx on address(name);

2010年11月11日(木)

Android x86 2.2(froyo) ビルド

| 12:15 | Android x86 2.2(froyo) ビルド - lnzntの Android 日記 を含むブックマーク はてなブックマーク - Android x86 2.2(froyo) ビルド - lnzntの Android 日記 Android x86 2.2(froyo) ビルド - lnzntの Android 日記 のブックマークコメント

Android x86 froyo をビルドしました。環境は以下です。

以下の日記を参考にさせていただきました。感謝です。

2010年11月10日(水)

SQLite3 学習メモ(その4) テーブル作成

| 12:00 | SQLite3 学習メモ(その4) テーブル作成 - lnzntの Android 日記 を含むブックマーク はてなブックマーク - SQLite3 学習メモ(その4) テーブル作成 - lnzntの Android 日記 SQLite3 学習メモ(その4) テーブル作成 - lnzntの Android 日記 のブックマークコメント

SQLite3 の学習メモです。

参考サイト

テーブル作成等のSQL

(テーブル作成)
CREATE TABLE テーブル名 (カラム名1, カラム名2, ...);
CREATE TABLE テーブル名 (カラム名1 データ型, カラム名2 データ型, ...);

(テーブル名変更)
ALTER TABLE テーブル名 RENAME TO 新しいテーブル名;

(カラムの追加)
ALTER TABLE テーブル名 ADD COLUMN カラム名[ データ型];
-- 制限
--   1. PRIMARY KEY や UNIQUE 制約は設定できない
--   2. DEFAULT 制約を設定する時は、CURRENT_TIME/CURRENT_DATE/CURRENT_TIMESTAMP
--      は指定できない
--   3. NOT NULL 制約を設定する時は、NULL以外のデフォルト値の設定が必要

(カラムの削除)
できない。

(AUTOINCREMENT)
CREATE TABLE テーブル名(カラム名 INTEGER PRIMARY KEY AUTOINCREMENT, ...);

続きを読む

2010年11月09日(火)

SQLite3 学習メモ(その3) データ型の変換

| 08:36 | SQLite3 学習メモ(その3) データ型の変換 - lnzntの Android 日記 を含むブックマーク はてなブックマーク - SQLite3 学習メモ(その3) データ型の変換 - lnzntの Android 日記 SQLite3 学習メモ(その3) データ型の変換 - lnzntの Android 日記 のブックマークコメント

SQLite3 の学習メモです。

参考サイト

データ型の変換

データ型の変換を試してみました。

sqlite> create table test (nval, tval text, ival integer, rval real);
sqlite> insert into test values (null, null, null, null);
sqlite> insert into test values(1,1,1,1);
sqlite> insert into test values(1.1,1.1,1.1,1.1);
sqlite> insert into test values('1','1','1','1');
sqlite> insert into test values('A','A','A','A');
sqlite> .mode column
sqlite> .header on
sqlite> select typeof(nval),nval,typeof(tval),tval,typeof(ival),ival,typeof(rval),rval from test;
typeof(nval)  nval        typeof(tval)  tval        typeof(ival)  ival        typeof(rval)  rval      
------------  ----------  ------------  ----------  ------------  ----------  ------------  ----------
null                      null                      null                      null                    
integer       1           text          1           integer       1           real          1.0       
real          1.1         text          1.1         real          1.1         real          1.1       
text          1           text          1           integer       1           real          1.0       
text          A           text          A           text          A           text          A         

続きを読む

2010年11月08日(月)

SQLite3 学習メモ(その2) テーブル定義

| 22:11 |  SQLite3 学習メモ(その2) テーブル定義 - lnzntの Android 日記 を含むブックマーク はてなブックマーク -  SQLite3 学習メモ(その2) テーブル定義 - lnzntの Android 日記  SQLite3 学習メモ(その2) テーブル定義 - lnzntの Android 日記 のブックマークコメント

SQLite3 の学習メモです。

以下が参考サイトです。

データ型

テーブルの定義で指定できる型は以下。

  • TEXT (データ型が「CHAR」「CLOB」「TEXT」のいずれかを含む場合)
  • NUMERIC (他のどれでもない場合)
  • INTEGER (データ型が「INT」を含む場合)
  • REAL (データ型が「REAL」「FLOA」「DOUB」のいずれかを含む場合)
  • NONE (データ型が「BLOB」を含む場合、または無指定の場合)

ただし、データ型の指定は SQLite3 にとってはヒントであり、実際の格納は他の型でも行なわれる。

create table personal(id, name);

型を指定しなくとも良い。

カラムに格納された値は以下の 5つに区別される。

  • NULL NULL値
  • INTEGER 符号付整数。1, 2, 3, 4, 6, or 8 バイトで格納
  • REAL 浮動小数点数。8バイトで格納
  • TEXT テキスト。UTF-8, UTF-16BE or UTF-16-LEのいずれかで格納
  • BLOB Binary Large OBject。入力データをそのまま格納

2010年11月07日(日)

SQLite3 学習メモ(その1) データベースの作成

| 15:27 |  SQLite3 学習メモ(その1) データベースの作成 - lnzntの Android 日記 を含むブックマーク はてなブックマーク -  SQLite3 学習メモ(その1) データベースの作成 - lnzntの Android 日記  SQLite3 学習メモ(その1) データベースの作成 - lnzntの Android 日記 のブックマークコメント

SQLite3 の学習メモです。

とりあえず Ubuntu で学習。

上記のサイトを参考にしました。要点をメモ。

データベースの作成/接続/削除
$ sqlite3
$ sqlite3 database    # database (のパス)を指定

続きを読む

2010年11月02日(火)

Android-x86 のインストールメモ詳細

| 22:44 |  Android-x86 のインストールメモ詳細 - lnzntの Android 日記 を含むブックマーク はてなブックマーク -  Android-x86 のインストールメモ詳細 - lnzntの Android 日記  Android-x86 のインストールメモ詳細 - lnzntの Android 日記 のブックマークコメント

下記の先日の日記の Android x86 のインストール時の詳細メモです。

(他の日記から移転させました)

はじめに

Android はモバイル向けの組み込み用プラットフォームです。OSLinux ベースです。

Android-x86x86 向けのポーティングです。

バージョンは少し古くなりますが ISO イメージが公式サイトから入手できます。

ソースからビルドするともっと新しいバージョンが得られるそうです。

インストール

ISO イメージを焼いた CD を挿入して x86 機を起動すると以下の画面になります。

あとは画面の指示に従ってください。

ちなみに私は、仮想マシンにインストールしたのでディスクの全部を使っています。

続きを読む