五月综合缴情婷婷六月,色94色欧美sute亚洲线路二,日韩制服国产精品一区,色噜噜一区二区三区,香港三级午夜理伦三级三

您現(xiàn)在的位置: 365建站網(wǎng) > 365文章 > SQLite的安裝和語法/查詢 /插入/修改/刪除 /事務(wù)處理操作方法教程

SQLite的安裝和語法/查詢 /插入/修改/刪除 /事務(wù)處理操作方法教程

文章來源:365jz.com     點擊數(shù):929    更新時間:2018-01-24 11:44   參與評論

SQLite

SQLite是一個開源的嵌入式關(guān)系數(shù)據(jù)庫,實現(xiàn)自包容、零配置、支持事務(wù)的SQL數(shù)據(jù)庫引擎。其特點是高度便攜、使用方便、結(jié)構(gòu)緊湊、高效、可靠。與其他數(shù)據(jù)庫管理系統(tǒng)不同,SQLite的安裝和運(yùn)行非常簡單,如果對并發(fā)性要求不是特別高,SQLite是一個不錯的選擇。

SQLite還是單文件數(shù)據(jù)庫引擎,一個文件即是一個數(shù)據(jù)庫,方便存儲和轉(zhuǎn)移。

安裝SQLite

下面主要介紹如何在Ubuntu和Windows下安裝SQLite數(shù)據(jù)庫引擎。

1.Ubuntu

目前,大多數(shù)的Linux系統(tǒng)都預(yù)安裝了SQLite,只需要在shell中輸入:sqlite3,如圖8-1所示。



圖8-1 SQLite(Ubuntu)

如果沒有看到圖8-1的效果,可以在shell中輸入以下命令進(jìn)行安裝:

sudo apt-get install sqlite3

安裝完成后可以使用sqlite3-version命令查看SQLite的版本信息。

2.Windows

首先到SQLite下載頁面http://www.sqlite.org/download.html,根據(jù)windows系統(tǒng)版本下載sqlite-dll-*.zip和sqlite-tools-win32-*.zip兩個壓縮包,在硬盤上創(chuàng)建一個文件夾,比如D:\sqlite3,將兩個壓縮包中的文件解壓到D:\sqlite3中,最后將D:\sqlite3添加到環(huán)境變量PATH中即可。打開cmd命令行窗口,輸入sqlite3,效果如圖8-2所示,則證明配置成功。



圖8-2 SQLite(Windows)

SQLite SQL語法

CREATE DATABASE用于創(chuàng)建數(shù)據(jù)庫,語法格式:CREATE DATABASE database_name。比如創(chuàng)建名稱為first_db的數(shù)據(jù)庫,

SQL語句為CREATE DATABASE first_db。

DROP DATABASE用于刪除數(shù)據(jù)庫,語法格式:DROP DATABASE database_name。比如刪除名稱為first_db的數(shù)據(jù)庫,

SQL語句為DROP DATABASE first_db。

CREATE TABLE語句用于創(chuàng)建數(shù)據(jù)庫中的表,語法格式:

CREATE TABLE表名稱(列名稱1數(shù)據(jù)類型,列名稱2數(shù)據(jù)類型,列名稱3數(shù)據(jù)類型,...)。SQL支持的數(shù)據(jù)類型如表8-2所示。

表8-2 SQL支持的數(shù)據(jù)類型

比如創(chuàng)建一個名稱為student的表,表里面包含5列,列名分別是:

“id”、“Name”、“Birth”、“Address”以及“City”。語句如下:

CREATE TABLE student(id integer,Name varchar(255),Birth date,Address varchar(255),City varchar(255))。id列的數(shù)據(jù)類型是integer,包含整數(shù),Birth為日期類型,其余的數(shù)據(jù)類型是varchar,

最大長度為255個字符。

ALTER TABLE語句用于在已有的表中添加、修改或刪除列。

·在表中添加列:ALTER TABLE table_name ADD column_name
datatype·修改表中某一列的數(shù)據(jù)類型:ALTER TABLE table_name
ALTER COLUMN column_name datatype·刪除表中的某一列:ALTER TABLE table_name DROP
COLUMN column_name

例如在之前創(chuàng)建的student表中添加名為class的一列,語句如下:ALTER TABLE student ADD class varchar(255)。接著將class列的數(shù)據(jù)類型改為char(10),語句如下:ALTER TABLE student

ALTER COLUMN class char(10)。最后將class列刪除,語句如下:

ALTER TABLE student DROP COLUMN class。

DROP TABLE語句用于刪除表(表的結(jié)構(gòu)、屬性以及索引也會被刪除),語法格式:DROP TABLE table_name。比如刪除表名為student的表,SQL語句為DROP TABLE student。

CREATE INDEX語句用于創(chuàng)建索引,索引有助于加快SELECT查詢和WHERE子句,但它會減慢使用UPDATE和INSERT語句時的數(shù)據(jù)輸入。索引可以創(chuàng)建或刪除,但不會影響數(shù)據(jù)。CREATE INDEX的基本語法如下:CREATE INDEX index_name ON table_name。創(chuàng)建索引還分為創(chuàng)建單一索引、唯一索引、組合索引和隱式索引。單一索引指的是在表的某一列設(shè)置索引,語法如下:CREATE INDEX

index_nameON table_name(column_name)。唯一索引指的是不允許任何重復(fù)的值插入到表中,語法如下:CREATE UNIQUE INDEX
index_name on table_name(column_name)。組合索引可以對一個表中的幾列進(jìn)行索引,語法如下:CREATE INDEX index_name on
table_name(column1,column2)。隱式索引是在創(chuàng)建對象時,由數(shù)據(jù)庫服務(wù)器自動創(chuàng)建的索引。比如在之前的student表中對Name添加名稱為name_index的索引,語句為:CREATE INDEX name_index
ON student(Name)。

DROP INDEX語句用于刪除索引,語法格式為:DROP INDEX
index_name。比如將上面創(chuàng)建的name_index索引刪除,語句為:

DROP INDEX name_index。

2.數(shù)據(jù)操作語言(DML)

對于數(shù)據(jù)操作語言的定義,主要講解一下增刪改查四個部分的語法:

·SELECT用于查詢數(shù)據(jù)庫表中數(shù)據(jù)。

·UPDATE用于更新數(shù)據(jù)庫表中數(shù)據(jù)。

·DELETE用于從數(shù)據(jù)庫表中刪除數(shù)據(jù)。

·INSERT INTO用于向數(shù)據(jù)庫表中插入數(shù)據(jù)。

SELECT用來從表中選取數(shù)據(jù),結(jié)果存儲在一個結(jié)果集中。語法

 



對表中數(shù)據(jù)進(jìn)行有條件查找,需要用到WHERE子句,將WHERE子句添加到SELECT語句中。語法格式為:SELECT列名稱

FROM表名稱WHERE列運(yùn)算符值。以下運(yùn)算符可在WHERE子句中使用:

如果我們想選取City為beijing的記錄,SQL語句為:SELECT Name,City FROM student WHERE City=’beijing‘。查詢結(jié)果如下所示:



大家可能注意到了,WHERE City=’beijing‘子句中beijing使用單引號包裹起來了,一般使用文本值進(jìn)行選取時,需要使用單引號進(jìn)行包裹,如果使用數(shù)值進(jìn)行選取,則不需要用單引號。比如選取id>2的記錄,SQL語句為:SELECT Name,City FROM student WHERE id>2。

上面講到WHERE語句使用的是單一條件,可以在WHERE子句中添加OR或者AND運(yùn)算符實現(xiàn)一個以上條件的篩選。AND運(yùn)算符相連的條件,必須所有條件都成立,才能顯示一條有效記錄。OR運(yùn)算符相連的條件,只要有一個條件成立,就能顯示一條有效記錄。示例如表8-4所示。

表8-4 AND和OR使用示例

使用多個條件進(jìn)行篩選時,可以使用圓括號組成復(fù)雜的表達(dá)式。

如果對查詢到的數(shù)據(jù)進(jìn)行排序,需要和ORDER BY語句配合使用。ORDER BY語句用于根據(jù)指定的列對結(jié)果集進(jìn)行排序,默認(rèn)按照升序ASC對記錄進(jìn)行排序。如果想按照降序?qū)τ涗涍M(jìn)行排序,可以使用DESC關(guān)鍵字。示例如表8-5所示。

表8-5 OROER BY語句使用示例

UPDATE語句用于修改表中的數(shù)據(jù)。語法格式:UPDATE表名稱

SET列名稱=新值WHERE列名稱=某值。比如想修改id=1這條記錄中Name和City表項的內(nèi)容,SQL語句如下:UPDATE student SET Name=’jack‘,City=’Nanjing‘WHERE id=1。

DELETE語句用于刪除表中的行。語法格式:DELETE FROM表名稱WHERE列名稱=值。比如刪除Name為jack這條記錄,SQL語句為:DELETE FROM student WHERE Name=’jack‘。

INSERT INTO語句用于向表格中插入新的行。語法格式:

INSERT INTO表名稱VALUES(值1,值2,....)或者指定要插入數(shù)據(jù)的列:INSERT INTO table_name(列1,列2,...)VALUES(值1,值2,....)。以表8-3為例,向其中插入一條記錄,SQL語句為:

INSERT INTO student VALUES(5,’Bill‘,’1999-8-10‘,’

beijing‘)。結(jié)果如下所示:



向指定的列插入一條記錄,SQL語句為:INSERT INTO student(id,Name,city)VALUES(6,’Rose‘,’shenzhen‘)。結(jié)果如下所示:

SQLite增刪改查

講解完了SQL語法,基本上可以完成大多數(shù)數(shù)據(jù)庫的增刪改查的操作。下面講解一下在SQLite的命令行窗口中,進(jìn)行一系列增刪改查的工作。

1.創(chuàng)建數(shù)據(jù)庫和表

在命令行窗口中輸入:sqlite3D:\test.db,就可以在D盤創(chuàng)建test.db數(shù)據(jù)庫。接著在數(shù)據(jù)庫中創(chuàng)建person表,包含id,name,age等3列,輸入語句:CREATE TABLE person(id integer primary key,

name varchar(20),age integer);,效果如圖8-3所示。

圖8-3 創(chuàng)建數(shù)據(jù)庫和表

2.增刪改查操作

增加:插入一條name為qiye,age為20的記錄:

INSERT INTO person(name,age) VALUES('qiye',20);

修改:將name為qiye的記錄中age修改為17:

UPDATE person SET age=17 WHERE name='qiye';

查詢:查詢表中的記錄:

SELECT * FROM person;

刪除name為qiye的記錄:

DELETE FROM person WHERE name='qiye';

以上操作如圖8-4所示。


圖8-4 增刪改查操作

3.常用SQLite命令

下面主要說一下常用的SQLite命令,方便大家對SQLite進(jìn)行操作。

以下均是在命令行中的效果:

·顯示表結(jié)構(gòu):

sqlite> .schema [table]

·獲取所有表和視圖:

sqlite > .tables

·獲取指定表的索引列表:

sqlite > .indices [table ]

·導(dǎo)出數(shù)據(jù)庫到SQL文件:

sqlite > .output [filename ] sqlite > .dump
qlite > .output stdout

·從SQL文件導(dǎo)入數(shù)據(jù)庫:

sqlite > .read [filename ]

·格式化輸出數(shù)據(jù)到CSV格式:

sqlite >.output [filename.csv ] sqlite >.separator , sqlite > select * from test;
sqlite >.output stdout

·從CSV文件導(dǎo)入數(shù)據(jù)到表中:

sqlite >create table newtable (id integer primary key,name varchar(20),age
integer );
sqlite >.import [filename.csv ] newtable

·備份數(shù)據(jù)庫:

sqlite3 test.db .dump > backup.sql

·恢復(fù)數(shù)據(jù)庫:

sqlite3 test.db < backup.sql

SQLite事務(wù)

數(shù)據(jù)庫事務(wù)指的是作為單個邏輯工作單元執(zhí)行的一系列操作,要么完全執(zhí)行,要么完全不執(zhí)行。設(shè)想一個網(wǎng)上購物的場景,用戶付款的過程至少包括以下幾步操作:

1)更新客戶所購商品的庫存信息。

2)保存客戶付款信息,同時與銀行系統(tǒng)交互。

3)生成訂單并且保存到數(shù)據(jù)庫中。

4)更新用戶相關(guān)信息,例如購物數(shù)量等數(shù)據(jù)。

正常情況下,這些操作完全成功執(zhí)行,才算一次有效的交易。交易成功后,與交易相關(guān)的所有數(shù)據(jù)庫信息也將成功更新。但是以上四步任意一個環(huán)節(jié)出現(xiàn)了異常,例如網(wǎng)絡(luò)中斷、客戶銀行帳戶存款不足等,都會導(dǎo)致交易的失敗。大家可以想象一下,假如數(shù)據(jù)庫更新完第二步,到第三步時操作失敗了,就會出現(xiàn)成功付款但是沒有買到商品的情況,這是非常不合理的情況。這個時候事務(wù)的作用就體現(xiàn)出來了,一旦交易失敗,數(shù)據(jù)庫中所有信息都必須保持交易前的狀態(tài),即使進(jìn)行到最后一步才出錯,也要恢復(fù)到交易前狀態(tài),因此事務(wù)是用來保證這種情況下交易的平穩(wěn)性和可預(yù)測性的技術(shù)。通俗來說,事務(wù)是將四個步驟打包成一件事來做,其中任何一個步驟出錯,都代表這件事情沒完成,數(shù)據(jù)庫就會回滾到之前的狀態(tài)。

SQLite主要通過以下命令來控制事務(wù):

·BEGIN TRANSACTION:啟動事務(wù)處理。

·COMMIT:保存更改,或者使用END TRANSACTION命令。

·ROLLBACK:回滾所做的更改。

控制事務(wù)的命令只與DML命令中的INSERT、UPDATE和DELETE一起使用,不能在創(chuàng)建表和刪除表時使用,因為這兩個操作是數(shù)據(jù)庫自動提交的。

下面在命令行中演示一下如何使用事務(wù),打開之前創(chuàng)建的test.db文件,向person里面插入一條記錄,在插入數(shù)據(jù)之前要先查看一下表中數(shù)據(jù),用來進(jìn)行對比。如圖8-5所示。

經(jīng)過回滾操作,可以看到數(shù)據(jù)并沒有插入到person數(shù)據(jù)表中。下面使用COMMIT命令進(jìn)行提交,如圖8-6所示。

圖8-5 事務(wù)回滾


Python操作SQLite(創(chuàng)建/連接/查詢/插入/修改/刪除)的方法

如對本文有疑問,請?zhí)峤坏浇涣髡搲?,廣大熱心網(wǎng)友會為你解答??! 點擊進(jìn)入論壇

發(fā)表評論 (929人查看,0條評論)
請自覺遵守互聯(lián)網(wǎng)相關(guān)的政策法規(guī),嚴(yán)禁發(fā)布色情、暴力、反動的言論。
昵稱:
最新評論
------分隔線----------------------------

其它欄目

· 建站教程
· 365學(xué)習(xí)

業(yè)務(wù)咨詢

· 技術(shù)支持
· 服務(wù)時間:9:00-18:00
365建站網(wǎng)二維碼

Powered by 365建站網(wǎng) RSS地圖 HTML地圖

copyright © 2013-2024 版權(quán)所有 鄂ICP備17013400號