2010年11月28日(日)
SQLite3 の 開発環境用GUI ツール
独習 | |
Ubuntu でパッケージが用意されている SQLite3 の GUI ツール。
sqlitebrowser (パッケージ名: sqlitebrowser)
sqliteman (パッケージ名: sqliteman)
2010年11月21日(日)
SQLite3 学習メモ(その9) データベースの管理
独習 | |
参考サイト
データベースの管理
.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) テーブルの結合
|参考サイト
テーブルの結合
普通の 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) データの追加/更新/削除
独習 | |
参考サイト
--データの追加 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) トリガ
独習 | |
参考サイト
-- トリガの作成 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) ビュー、インデックス
独習 | |
参考サイト
ビュー
(ビューの作成) 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) ビルド
Android x86 | |
Android x86 froyo をビルドしました。環境は以下です。
- CUP AMD Athlon(tm) 64 x2 Dual
- Windows XP Home Edition SP3
以下の日記を参考にさせていただきました。感謝です。
2010年11月10日(水)
SQLite3 学習メモ(その4) テーブル作成
独習 | |
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) データ型の変換
独習 | |
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) テーブル定義
独習 | |
SQLite3 の学習メモです。
以下が参考サイトです。
データ型
テーブルの定義で指定できる型は以下。
- TEXT (データ型が「CHAR」「CLOB」「TEXT」のいずれかを含む場合)
- NUMERIC (他のどれでもない場合)
- INTEGER (データ型が「INT」を含む場合)
- REAL (データ型が「REAL」「FLOA」「DOUB」のいずれかを含む場合)
- NONE (データ型が「BLOB」を含む場合、または無指定の場合)
ただし、データ型の指定は SQLite3 にとってはヒントであり、実際の格納は他の型でも行なわれる。
create table personal(id, name);
型を指定しなくとも良い。
カラムに格納された値は以下の 5つに区別される。
2010年11月07日(日)
SQLite3 学習メモ(その1) データベースの作成
独習 | |
SQLite3 の学習メモです。
とりあえず Ubuntu で学習。
上記のサイトを参考にしました。要点をメモ。
データベースの作成/接続/削除
$ sqlite3 $ sqlite3 database # database (のパス)を指定
2010年11月02日(火)
Android-x86 のインストールメモ詳細
Android x86 | |
下記の先日の日記の Android x86 のインストール時の詳細メモです。
(他の日記から移転させました)
はじめに
Android はモバイル向けの組み込み用プラットフォームです。OS は Linux ベースです。
Android-x86 は x86 向けのポーティングです。
バージョンは少し古くなりますが ISO イメージが公式サイトから入手できます。
ソースからビルドするともっと新しいバージョンが得られるそうです。
インストール
ISO イメージを焼いた CD を挿入して x86 機を起動すると以下の画面になります。
あとは画面の指示に従ってください。
ちなみに私は、仮想マシンにインストールしたのでディスクの全部を使っています。