sqlite3一款主要用于嵌入式的輕量級數據庫,本文旨在為熟悉sqlite3基本命令提供技術文檔。希望對讀者們有所幫助,如有疑問請和我聯系,盡可能解答
系統平臺:ubuntu10.04
簡介
sqlite3一款主要用于嵌入式的輕量級數據庫,本文旨在為熟悉sqlite3基本命令提供技術文檔。
備注:本文所有操作均在root用戶下進行。
1、安裝sqlite3
ubuntu下安裝sqlite3直接在終端運行命令:
- #apt-get install sqlite3
?查看版本信息:
- #sqlite3 -version
2 、sqlite3常用命令
當前目錄下建立或打開test.db數據庫文件,并進入sqlite命令終端,以sqlite>前綴標識:
- #sqlite3 test.db
|
查看數據庫文件信息命令(注意命令前帶字符'.'):
- sqlite>.database
查看所有表的創建語句:
- sqlite>.schema
查看指定表的創建語句:
- sqlite>.schema table_name<br>
- 以sql語句的形式列出表內容:
- sqlite>.dump table_name
- 設置顯示信息的分隔符:
- sqlite>.separator symble
- Example:設置顯示信息以‘:'分隔
- sqlite>.separator :
- 設置顯示模式:
- sqlite>.mode mode_name
- Example:默認為list,設置為column,其他模式可通過.help查看mode相關內容
- sqlite>.mode column
- 輸出幫助信息:
- sqlite>.help
- 設置每一列的顯示寬度:
- sqlite>.width width_value
- Example:設置寬度為2
- sqlite>.width 2
- 列出當前顯示格式的配置:
- sqlite>.show
- 退出sqlite終端命令:
- sqlite>.quit
- 或
- sqlite>.exit
3、sqlite3指令
sql的指令格式:所有sql指令都是以分號(;)結尾,兩個減號(--)則表示注釋。
如:
- sqlite>create studen_table(Stu_no interger PRIMARY KEY, Name text NOT NULL, Id interger UNIQUE, Age interger CHECK(Age>6), School text DEFAULT 'xx小學);
該語句創建一個記錄學生信息的數據表。
3.1 sqlite3存儲數據的類型
NULL:標識一個NULL值
INTERGER:整數類型
REAL:浮點數
TEXT:字符串
BLOB:二進制數
3.2 sqlite3存儲數據的約束條件
Sqlite常用約束條件如下:
PRIMARY KEY - 主鍵:
1)主鍵的值必須唯一,用于標識每一條記錄,如學生的學號
2)主鍵同時也是一個索引,通過主鍵查找記錄速度較快
3)主鍵如果是整數類型,該列的值可以自動增長
NOT NULL - 非空:
約束列記錄不能為空,否則報錯
UNIQUE - 唯一:
除主鍵外,約束其他列的數據的值唯一
CHECK - 條件檢查:
約束該列的值必須符合條件才可存入
DEFAULT - 默認值:
列數據中的值基本都是一樣的,這樣的字段列可設為默認值
3.3 sqlite3常用指令
- 1)建立數據表
- create table table_name(field1 type1, field2 type1, ...);
- table_name是要創建數據表名稱,fieldx是數據表內字段名稱,typex則是字段類型。
- 例,建立一個簡單的學生信息表,它包含學號與姓名等學生信息:
- create table student_info(stu_no interger primary key, name text);
- 2)添加數據記錄
- insert into table_name(field1, field2, ...) values(val1, val2, ...);
- valx為需要存入字段的值。
- 例,往學生信息表添加數據:
- Insert into student_info(stu_no, name) values(0001, alex);
- 3)修改數據記錄
- update table_name set field1=val1, field2=val2 where expression;
- where是sql語句中用于條件判斷的命令,expression為判斷表達式
- 例,修改學生信息表學號為0001的數據記錄:
- update student_info set stu_no=0001, name=hence where stu_no=0001;
- 4)刪除數據記錄
- delete from table_name [where expression];
- 不加判斷條件則清空表所有數據記錄。
- 例,刪除學生信息表學號為0001的數據記錄:
- delete from student_info where stu_no=0001;
- 5)查詢數據記錄
- select指令基本格式:
- select columns from table_name [where expression];
- a查詢輸出所有數據記錄
- select * from table_name;
- b限制輸出數據記錄數量
- select * from table_name limit val;
- c升序輸出數據記錄
- select * from table_name order by field asc;
- d降序輸出數據記錄
- select * from table_name order by field desc;
- e條件查詢
- select * from table_name where expression;
- select * from table_name where field in ('val1', 'val2', 'val3');
- select * from table_name where field between val1 and val2;
- f查詢記錄數目
- select count (*) from table_name;
- g區分列數據
- select distinct field from table_name;
- 有一些字段的值可能會重復出現,distinct去掉重復項,將列中各字段值單個列出。
- 6)建立索引
- 當說數據表存在大量記錄,索引有助于加快查找數據表速度。
- create index index_name on table_name(field);
- 例,針對學生表stu_no字段,建立一個索引:
- create index student_index on student_table(stu_no);
- 建立完成后,sqlite3在對該字段查詢時,會自動使用該索引。
- 7)刪除數據表或索引
- drop table table_name;
- drop index index_name;
參考資料:
http://www.sqlite.com.cn/MySqlite/4/378.Html
新聞熱點
疑難解答