成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

iOS 開發中建立索引并查詢

移動開發 iOS
以下我們就建立數據庫、建立資料表及索引、新增資料、查詢資料、更改資料、移除資料、

以下我們就建立數據庫、建立資料表及索引、新增資料、查詢資料、更改資料、移除資料、

sqlite3

命令列選項等幾個項目做簡單的介紹。

目錄

        1 建立數據庫檔案

        2 在

sqlite3

提示列下操作

        3 SQL的指令格式

        4 建立資料表

        5 建立索引

        6 加入一筆資料

        7 查詢資料

        8 如何更改或刪除資料

        9 其他sqlite的特別用法

        10 小結

建立數據庫檔案

用 sqlite3 建立數據庫的方法很簡單,只要在shell下鍵入(以下$符號為shell提示號,請勿鍵入):

sqlite3

 foo.db

如果目錄下沒有foo.db,

sqlite3

就會建立這個數據庫。

sqlite3

并沒有強制數據庫檔名要怎么取,因此如果你喜歡,也可以取個例如foo.icannameitwhateverilike的檔名。

在 sqlite3 提示列下操作
進入了
sqlite3
之后,會看到以下文字:

  1. SQLite version 3.1.3 
  2.  
  3. Enter “.help” for instructions 



sqlite> 

這時如果使用.help可以取得求助,.quit則是離開(請注意:不是quit)

SQL的指令格式

所以的SQL指令都是以分號(;)結尾的。如果遇到兩個減號(–)則代表注解,
sqlite3
會略過去。

建立資料表

假設我們要建一個名叫film的資料表,只要鍵入以下指令就可以了:

create table film(title, length, year, starring);

這樣我們就建立了一個名叫film的資料表,里面有name、length、year、starring四個字段。

這個create table指令的語法為:

  1. create table table_name(field1, field2, field3, …); 



table_name是資料表的名稱,fieldx則是字段的名字。
sqlite3
與許多SQL數據庫軟件不同的是,它不在乎字段屬于哪一種資料型態:
sqlite3
的字段可以儲存任何東西:文字、數字、大量文字(blub),它會在適時自動轉換。

建立索引

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

  1. create index film_title_index on film(title); 



意思是針對film資料表的name字段,建立一個名叫film_name_index的索引。這個指令的語法為

  1. create index index_name on table_name(field_to_be_indexed); 



一旦建立了索引,
sqlite3
會在針對該字段作查詢時,自動使用該索引。這一切的操作都是在幕后自動發生的,無須使用者特別指令。

加入一筆資料

接下來我們要加入資料了,加入的方法為使用insert into指令,語法為:

  1. insert into table_name values(data1, data2, data3, …); 



例如我們可以加入

  1. insert into film values (‘Silence of the Lambs, The’, 118, 1991, ‘Jodie Foster’); 
  2.  
  3. insert into film values (‘Contact’, 153, 1997, ‘Jodie Foster’); 
  4.  
  5. insert into film values (‘Crouching Tiger, Hidden Dragon’, 120, 2000, ‘Yun-Fat Chow’); 
  6.  
  7. insert into film values (‘Hours, The’, 114, 2002, ‘Nicole Kidman’); 



如果該字段沒有資料,我們可以填NULL。

查詢資料

講到這里,我們終于要開始介紹SQL***大的select指令了。我們首先簡單介紹select的基本句型:

  1. select columns from table_name where expression; 



最常見的用法,當然是倒出所有數據庫的內容:

  1. select * from film; 



如果資料太多了,我們或許會想限制筆數:

  1. select * from film limit 10; 

或是照著電影年份來排列:

  1. select * from film order by year limit 10; 



或是年份比較近的電影先列出來:

  1. select * from film order by year desc limit 10; 



或是我們只想看電影名稱跟年份:

  1. select title, year from film order by year desc limit 10; 

查所有茱蒂佛斯特演過的電影:

  1. select * from film where starring=’Jodie Foster’; 

查所有演員名字開頭叫茱蒂的電影(‘%’ 符號便是 SQL 的萬用字符):

  1. select * from film where starring like ‘Jodie%’; 

查所有演員名字以茱蒂開頭、年份晚于1985年、年份晚的優先列出、最多十筆,只列出電影名稱和年份:

  1. select title, year from film where starring like ‘Jodie%’ and year >= 1985 order by year desc limit 10; 

有時候我們只想知道數據庫一共有多少筆資料:

  1. select count(*) from film; 

有時候我們只想知道1985年以后的電影有幾部:

  1. select count(*) from film where year >= 1985; 

(進一步的各種組合,要去看SQL專書,不過你大概已經知道SQL為什么這么流行了:這種語言允許你將各種查詢條件組合在一起──而我們還沒提到「跨數據庫的聯合查詢」呢!)

如何更改或刪除資料 了解select的用法非常重要,因為要在sqlite更改或刪除一筆資料,也是靠同樣的語法。
例如有一筆資料的名字打錯了:

  1. update film set starring=’Jodie Foster’ where starring=’Jodee Foster’; 

就會把主角字段里,被打成’Jodee Foster’的那筆(或多筆)資料,改回成Jodie Foster。

  1. delete from film where year < 1970; 

就會刪除所有年代早于1970年(不含)的電影了。

其他sqlite的特別用法
sqlite可以在shell底下直接執行命令:

sqlite3

  1. film.db “select * from film;” 

輸出 HTML 表格:

sqlite3

  1. -html film.db “select * from film;” 



將數據庫「倒出來」:

sqlite3

  1. film.db “.dump” > output.sql 



利用輸出的資料,建立一個一模一樣的數據庫(加上以上指令,就是標準的SQL數據庫備份了):

sqlite3

  1. film.db < output.sql 



在大量插入資料時,你可能會需要先打這個指令:

begin;

插入完資料后要記得打這個指令,資料才會寫進數據庫中:

commit;

責任編輯:張葉青 來源: 開源社區
相關推薦

2011-08-16 13:27:34

索引

2011-08-15 18:20:05

建立索引SQL Sever數據

2010-11-29 10:22:46

Sybase建立索引

2012-05-07 15:32:46

Erlang

2017-07-11 17:15:42

Oracle索引

2010-05-31 12:31:42

MySQL建立索引

2024-03-01 09:57:19

數據庫檢索項目

2015-03-18 09:29:12

iOS開發爭議

2023-05-22 14:19:48

索引Iceberg

2011-08-11 15:23:04

iPhoneNSBundleXcode

2015-10-20 11:22:34

iOS開發Git

2013-07-25 13:30:35

iOS開發學習讀取照片庫

2009-12-14 13:35:16

LinuxSwapmount

2012-12-04 10:29:47

PostgreSQL索引

2013-07-05 14:45:05

AndroidOpenGL ES開發

2014-02-19 09:51:29

iOS開發時間處理

2014-04-23 14:40:06

iOS開發KVO內部實現

2013-07-22 13:48:55

iOS開發ASIHTTPRequ使用Cookie

2014-02-19 09:59:52

iOS開發Html解析

2013-01-06 09:52:43

SQLite
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 特一级黄色毛片 | 国产精品亚洲二区 | 色综合久久88色综合天天 | 99国内精品久久久久久久 | 免费精品 | 久久久久成人精品免费播放动漫 | 成人免费在线视频 | 国产精品毛片在线 | 久久99精品国产 | 一区二区三区免费在线观看 | 99国产精品久久久 | 日本一区二区三区视频在线 | 日本一区二区三区四区 | 久久88| 97操操| 成人免费小视频 | av性色全交蜜桃成熟时 | 丝袜美腿一区二区三区动态图 | 超碰免费在 | 中文字幕亚洲国产 | 羞羞视频在线观看网站 | 一区二区三区国产 | 天天操人人干 | 成人亚洲精品 | 精品视频久久久 | 亚洲日产精品 | 久久精品美女 | 999久久久久久久 | 国产精品一区二区久久久久 | 久久久久一区二区三区四区 | 超碰国产在线 | 国产视频线观看永久免费 | 伊人久久在线观看 | 日韩不卡一区二区三区 | 亚洲欧洲小视频 | 久久精品小视频 | 久久99国产精品 | 中文字幕一区二区三区四区五区 | 国产精品成人一区二区 | 欧美αv | 狠狠的操|