Android——sqlite 3基本命令操作


普段はdatabaseを使うところは多くないです。ここでshell端末下で直接dbに対する基本操作を記録してください。
                                                 文章を書くのは簡単ではないです。転載は出所を明記してください。http://blog.csdn.net/jscese/article/details/40016701
一.概念:
            sqlite 3はAndroidで使用されている軽量級データベースで、コンパクトで便利です。Androidシステムの各種dbファイルを管理するために、uuntuにsqliemをインストールして、androidシステムの中のdbファイルを調べられます。Framworkの中のインターフェースの位置:framw orks/base/core/java/android/datable/datable
二.shell使用:
      私が使っているのはubuntuのminicom下のshell端末です。システムsettingのdatabaseを例にして、カタログは:/data/data/comp.android.providers.settings/databases/setting.dbです。
cdからdatabasesディレクトリの下で、データベースファイルを開きます。sqlite 3 setting.db
SQLite version 3.7.11 2012-03-20 11:35:50                                                                                                
Enter ".help" for instructions                                                                                                           
Enter SQL statements terminated with a ";"                                                                                               
sqlite> 
SQLバージョンと簡単なヒントが見られます。SQL文を使う時は「;」で区切ります。
sqlite 3  *.dbデータベースを開きます。存在しているなら開いてください。存在しないなら作成し、変更後に作成を保存できます。
使用.help表示ヘルプ:
.backup ?DB? FILE      Backup DB (default "main") to FILE
.bail ON|OFF           Stop after hitting an error.  Default OFF
.databases             List names and files of attached databases
.dump ?TABLE? ...      Dump the database in an SQL text format
                         If TABLE specified, only dump tables matching
                         LIKE pattern TABLE.
.echo ON|OFF           Turn command echo on or off
.exit                  Exit this program
.explain ?ON|OFF?      Turn output mode suitable for EXPLAIN on or off.
                         With no args, it turns EXPLAIN on.
.header(s) ON|OFF      Turn display of headers on or off
.help                  Show this message
.import FILE TABLE     Import data from FILE into TABLE
.indices ?TABLE?       Show names of all indices
                         If TABLE specified, only show indices for tables
                         matching LIKE pattern TABLE.
.log FILE|off          Turn logging on or off.  FILE can be stderr/stdout
.mode MODE ?TABLE?     Set output mode where MODE is one of:
                         csv      Comma-separated values
                         column   Left-aligned columns.  (See .width)
                         html     HTML <table> code
                         insert   SQL insert statements for TABLE
                         line     One value per line
                         list     Values delimited by .separator string
                         tabs     Tab-separated values
                         tcl      TCL list elements
.nullvalue STRING      Print STRING in place of NULL values
.output FILENAME       Send output to FILENAME
.output stdout         Send output to the screen
.prompt MAIN CONTINUE  Replace the standard prompts
.quit                  Exit this program
.read FILENAME         Execute SQL in FILENAME
.restore ?DB? FILE     Restore content of DB (default "main") from FILE
.schema ?TABLE?        Show the CREATE statements
                         If TABLE specified, only show tables matching
                         LIKE pattern TABLE.
.separator STRING      Change separator used by output mode and .import
.show                  Show the current values for various settings
.stats ON|OFF          Turn stats on or off
.tables ?TABLE?        List names of tables
                         If TABLE specified, only list tables matching
                         LIKE pattern TABLE.
.timeout MS            Try opening locked tables for MS milliseconds
.vfsname ?AUX?         Print the name of the VFS stack
.width NUM1 NUM2 ...   Set column widths for "column" mode
.timer ON|OFF          Turn the CPU timer measurement on or off
sqlite> .help
.backup ?DB? FILE      Backup DB (default "main") to FILE
.bail ON|OFF           Stop after hitting an error.  Default OFF
.databases             List names and files of attached databases

sqlite> 
sqlite> 
sqlite> .help
.backup ?DB? FILE      Backup DB (default "main") to FILE
.bail ON|OFF           Stop after hitting an error.  Default OFF
.databases             List names and files of attached databases
.dump ?TABLE? ...      Dump the database in an SQL text format
                         If TABLE specified, only dump tables matching
                         LIKE pattern TABLE.
.echo ON|OFF           Turn command echo on or off
.exit                  Exit this program
.explain ?ON|OFF?      Turn output mode suitable for EXPLAIN on or off.
                         With no args, it turns EXPLAIN on.
.header(s) ON|OFF      Turn display of headers on or off
.help                  Show this message
.import FILE TABLE     Import data from FILE into TABLE
.indices ?TABLE?       Show names of all indices
                         If TABLE specified, only show indices for tables
                         matching LIKE pattern TABLE.
.log FILE|off          Turn logging on or off.  FILE can be stderr/stdout
.mode MODE ?TABLE?     Set output mode where MODE is one of:
                         csv      Comma-separated values
                         column   Left-aligned columns.  (See .width)
                         html     HTML <table> code
                         insert   SQL insert statements for TABLE
                         line     One value per line
                         list     Values delimited by .separator string
                         tabs     Tab-separated values
                         tcl      TCL list elements
.nullvalue STRING      Print STRING in place of NULL values
.output FILENAME       Send output to FILENAME
.output stdout         Send output to the screen
.prompt MAIN CONTINUE  Replace the standard prompts
.quit                  Exit this program
.read FILENAME         Execute SQL in FILENAME
.restore ?DB? FILE     Restore content of DB (default "main") from FILE
.schema ?TABLE?        Show the CREATE statements
                         If TABLE specified, only show tables matching
                         LIKE pattern TABLE.
.separator STRING      Change separator used by output mode and .import
.show                  Show the current values for various settings
.stats ON|OFF          Turn stats on or off
.tables ?TABLE?        List names of tables
                         If TABLE specified, only list tables matching
                         LIKE pattern TABLE.
.timeout MS            Try opening locked tables for MS milliseconds
.vfsname ?AUX?         Print the name of the VFS stack
.width NUM1 NUM2 ...   Set column widths for "column" mode
.timer ON|OFF          Turn the CPU timer measurement on or off
サポートされているコマンドが表示されます。
.database  データベース情報を表示する;現在のデータベースの位置を含む。  或いは.テーブル名が表でないと表示しない.schema  コマンドは、データオブジェクトを作成するときのSQLコマンドを表示できます。
.mode csv column insert ga line e list𞓜tabs tcl  出力フォーマットを変更
デフォルトでは、select*from systemを使ってsystemテーブルのすべてのデータを調べます。
sqlite> select * from system;
1|volume_music|15
2|volume_ring|5
3|volume_system|7
4|volume_voice|4
5|volume_alarm|6
6|volume_notification|5
7|volume_bluetooth_sco|7
... 
リストとして表示されているものが見られます。そしてID name valueは「|」で区切られています。
.separator「X」を定義します。Xは分割子です。
使用.mode culumnの後:
sqlite> .mode column
sqlite> select * from system;
1           volume_music  15        
2           volume_ring   5         
3           volume_syste  7         
4           volume_voice  4         
5           volume_alarm  6         
6           volume_notif  5         
7           volume_bluet  7  
他の類似点は出力のフォーマットを変えるためだけです。
1.作成命令:
sqlite> .schema system
CREATE TABLE system (_id INTEGER PRIMARY KEY AUTOINCREMENT,name TEXT UNIQUE ON CONFLICT REPLACE,value TEXT);
CREATE INDEX systemIndex1 ON system (name);
作成時にパラメータと属性を指定します。ここには3つあります。そして、自己増加します。データの種類について:
NULL:この値は空の値INTEGER:値は整数として識別され、値の大きさに応じて順次1,2,3,4,5,6,7,8バイトのREALに格納することができます。すべての値は浮動小数の値で、8バイトのIEEE浮動マーカー番号として記憶されます。どのように入力すれば保存できますか?
2.データを挿入する:
sqlite> .mode insert
sqlite> select * from system;
INSERT INTO table VALUES(1,'volume_music','15');
INSERT INTO table VALUES(2,'volume_ring','5');
INSERT INTO table VALUES(3,'volume_system','7');
INSERT INTO table VALUES(4,'volume_voice','4');
INSERT INTO table VALUES(5,'volume_alarm','6');
INSERT INTO table VALUES(6,'volume_notification','5');
INSERT INTO table VALUES(7,'volume_bluetooth_sco','7');
systemテーブルにデータを挿入すると、
insert into system values('45','sqlite','jscese');
ここにデータを挿入するには、作成時の数に応じて作成します。
Error:table table_name has*columns but*values were supplied
3.クエリー指定データ:
sqlite> select * from system where name='sqlite';
INSERT INTO table VALUES(45,'sqlite','jscese');
テーブルの種類の値によって、クエリーをフィルタします。ここには、テーブルの属性があります。
_。id,name,value,コマンド作成中に見ることができます。
4.データの削除:
delete from system where value='jscese';
テーブル全体を削除:
dropテーブルテーブルテーブルname
5.テーブルデータの更新:
45|sqlite|jscese
sqlite> update system set name='sqlite3' where value='jscese';
sqlite> select * from system where value='jscese';
45|sqlite3|jscese
6.操作問題:
SQL命令を使用した後、プラス記号なしでイベントに参加し、入力モードに入ります。この時にもう一つ追加します。セミコロンでいいです
sqlite> select * from system
   ...> ;
私は直接minicomの下でsqliteを使って上下左右の方向キーを識別できません。
出現します  ^Hという文字化け、
ネットで他の人から与えられたものは試したことがありません。http://ljhzzyx.blog.163.com/blog/static/3838031220102595026789/
本機の端末adb shellはキャンセルキーを識別することができます。
一般退出sqlite 3使用.quit
どうしても引き下せない   ...> モードを使用します  ctrl+D  無理に退きます