SQLite使用步步高

來源:互聯網
上載者:User

標籤:des   io   ar   os   使用   sp   strong   資料   on   

以下就建立資料庫、建立資料庫表及索引、新增資料、查詢資料、更改資料、刪除資料、sqlite3命令列選項等幾個項目做簡單的介紹。


建立資料庫

假設要建一個名叫film的資料庫表,只要鍵入以下指令就可以了:
create table film(title, length, year, starring);
這樣我們就建立了一個名叫film的資料庫表,裡面有name、length、year、starring四個欄位。
這個create table指令的文法為:
create table table_name(field1, field2, field3, ...);
table_name是資料庫表的名稱,fieldx則是欄位的名字。sqlite3與許多SQL資料庫軟體不同的是,它不在乎欄位屬於哪一種欄位類型:sqlite3的欄位可以儲存任何東西:文字、數字、大量文字(blob),它會在適時自動轉換。

建立索引

如果資料庫表有相當多的資料,我們便會建立索引來加快速度。好比說:

create index film_title_index on film(title);
意思是針對film資料庫表的title欄位,建立一個名叫film_title_index的索引。這個指令的文法為
create index index_name on table_name(field_to_be_indexed);
一旦建立了索引,sqlite3會在針對該欄位作查詢時,自動使用該索引。這一切的操作都是在幕後自動發生的,無須使用者特別指令。

插入一條記錄

接下來我們要插入記錄了,插入的方法為使用insert into指令,文法為:
insert into table_name values(data1, data2, data3, ...);
例如我們可以插入
insert into film values (‘Silence of the Lambs, The‘, 118, 1991, ‘Jodie Foster‘);
insert into film values (‘Contact‘, 153, 1997, ‘Jodie Foster‘);
insert into film values (‘Crouching Tiger, Hidden Dragon‘, 120, 2000, ‘Yun-Fat Chow‘);
insert into film values (‘Hours, The‘, 114, 2002, ‘Nicole Kidman‘);
如果某個欄位沒有資料,我們可以填NULL。


查詢資料

講到這裡,我們終於要開始介紹SQL最強大的select指令了。我們首先簡單介紹select的基本句型:
select columns from table_name where expression_r;
最常見的用法,當然是查詢出file表中所有的內容:
select * from film;
如果資料太多了,我們或許會想限制記錄的條數:
select * from film limit 10;
或是年份比較早的電影先列出來(預設為 asc):
select * from film order by year limit 10;
或是年份比較晚的電影先列出來:
select * from film order by year desc limit 10;
或是我們只想看電影名稱跟年份:
select title, year from film order by year desc limit 10;
查所有茱蒂佛斯特演過的電影:
select * from film where starring=‘Jodie Foster‘;
查所有演員名字開頭叫茱蒂的電影(‘%‘、‘_‘ 符號便是 SQL 的萬用字元,前者代表任意長度字元,後者代表任意一個字元):
select * from film where starring like ‘Jodie%‘;
查所有演員名字以茱蒂開頭、年份晚於1985年、年份晚的優先列出、最多十筆,只列齣電影名稱和年份:
select title, year from film where starring like ‘Jodie%‘ and year >= 1985 order by year desc limit 10;
有時候我們只想知道資料庫一共有多少筆資料:
select count(*) from film;
有時候我們只想知道1985年以後的電影有幾部:
select count(*) from film where year >= 1985;
(進一步的各種組合,要去看SQL專書,不過你大概已經知道SQL為什麼這麼流行了:這種語言允許你將各種查詢條件組合在一起──而我們還沒提到「跨資料庫的聯集查詢」呢!)
如何更改或刪除資料

瞭解select的用法非常重要,因為要在sqlite更改或刪除一條記錄,也是靠同樣的文法。
例如有一條記錄的名字打錯了:
update film set starring=‘Jodie Foster‘ where starring=‘Jodee Foster‘;
就會把主角欄位裡,被打成‘Jodee Foster‘的那條(或多條)資料,改回成Jodie Foster。
delete from film where year < 1970;
就會刪除所有年代早於1970年(不含1970)的電影了。


其他sqlite的特別用法

sqlite可以在shell底下直接執行命令:
sqlite3 film.db "select * from film;"
輸出 HTML 表格:
sqlite3 -html film.db "select * from film;"
將資料庫「匯出來」:
sqlite3 film.db ".dump" > output.sql
利用輸出的資料,建立一個一模一樣的資料庫(加上以上指令,就是標準的SQLDatabase Backup了):
sqlite3 film.db < output.sql
在大量插入資料時,你可能會需要先打這個指令:
begin;(開始事務)
插入完資料後要記得打這個指令,資料才會寫進資料庫中:
commit;


SQLite使用步步高

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.