使用shell操作數(shù)據(jù)庫
一、創(chuàng)建數(shù)據(jù)庫
讓我們從創(chuàng)建一個稱為 test.db 的數(shù)據(jù)庫開始最楷,進入終端意狠,輸入命令:
sqlite3 test.db
盡管我們提供了數(shù)據(jù)庫名乡恕,但如果這個數(shù)據(jù)庫并不存在,SQLite 并不會真正地創(chuàng)建它尔觉。SQLite會等到你真正地向其中增加了數(shù)據(jù)庫對象之后才創(chuàng)建它凉袱,比如在其中創(chuàng)建了表或視圖。
二侦铜、創(chuàng)建表绑蔫、插入运沦、查詢
創(chuàng)建表,并插入3條數(shù)據(jù)配深,之后查詢結果
sqlite> create table test(id integer primary key, value text);
sqlite> insert into test (value) values('111');
sqlite> insert into test (value) values('222');
sqlite> insert into test (value) values('333');
sqlite> select * from test;
結果如下:
我們用如下命令改進輸出的格式:
sqlite> .mode col
sqlite> .headers on
再次查詢結果如下:
可以看到 SQLite 為 id字段賦予了連接的整數(shù)值携添,而這些值我們在 INSERT 語句中并沒的提供。對于自動增長的字段篓叶,你可能會關心最后插入的一條記錄該字段的取值烈掠,此值可以用 SQL 函數(shù) l ast_insert_rowid()得到。
命令如下缸托,得到結果 3:
三左敌、創(chuàng)建索引、視圖
接下來俐镐,讓我們來為數(shù)據(jù)庫創(chuàng)建一個索引和一個視圖矫限,后面的內(nèi)容中將會用到它,語句如下:
sqlite> create index test_idx on test (value);
sqlite> create view schema as select * from sqlite_master;
之后佩抹,我們退出數(shù)據(jù)庫叼风,
sqlite> .exit