亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

一文輕松掌握SQLite3基本用法(收藏版)

 更新時(shí)間:2025年06月16日 09:48:00   作者:yijg9998  
本文介紹SQLite3作為輕量級(jí)嵌入式數(shù)據(jù)庫(kù)的特點(diǎn)與應(yīng)用,涵蓋創(chuàng)建、表操作、增刪改查、事務(wù)索引等基本用法,及觸發(fā)器、視圖、參數(shù)化查詢等高級(jí)功能,通過(guò)圖書(shū)管理系統(tǒng)案例展示實(shí)際應(yīng)用方法,感興趣的朋友一起看看吧

SQLite,是一款輕型的數(shù)據(jù)庫(kù),是遵守ACID的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),它包含在一個(gè)相對(duì)小的C庫(kù)中。它是D.RichardHipp建立的公有領(lǐng)域項(xiàng)目。它的設(shè)計(jì)目標(biāo)是嵌入式的,而且已經(jīng)在很多嵌入式產(chǎn)品中使用了它,它占用資源非常的低,在嵌入式設(shè)備中,可能只需要幾百K的內(nèi)存就夠了。它能夠支持Windows/Linux/Unix等等主流的操作系統(tǒng),同時(shí)能夠跟很多程序語(yǔ)言相結(jié)合,比如 Tcl、C#、PHP、Java等,還有ODBC接口,同樣比起Mysql、PostgreSQL這兩款開(kāi)源的世界著名數(shù)據(jù)庫(kù)管理系統(tǒng)來(lái)講,它的處理速度比他們都快。SQLite第一個(gè)Alpha版本誕生于2000年5月。 至2021年已經(jīng)接近有21個(gè)年頭,SQLite也迎來(lái)了一個(gè)版本 SQLite 3已經(jīng)發(fā)布。

SQLite3是一種輕量級(jí)的嵌入式數(shù)據(jù)庫(kù),廣泛應(yīng)用于移動(dòng)設(shè)備、嵌入式系統(tǒng)和小型應(yīng)用中。它不需要獨(dú)立的服務(wù)器進(jìn)程,數(shù)據(jù)存儲(chǔ)在一個(gè)單一的磁盤(pán)文件中,極大地方便了應(yīng)用的部署和管理。本文將帶你全面掌握SQLite3的基本用法,包括數(shù)據(jù)庫(kù)的創(chuàng)建、表的操作、數(shù)據(jù)的增刪改查以及索引和事務(wù)的使用。

一、SQLite3簡(jiǎn)介

SQLite3是一個(gè)C語(yǔ)言庫(kù),提供了一個(gè)獨(dú)立、無(wú)服務(wù)器、零配置、事務(wù)性的SQL數(shù)據(jù)庫(kù)引擎。其設(shè)計(jì)目標(biāo)是嵌入式環(huán)境,但也非常適用于小型應(yīng)用程序和開(kāi)發(fā)測(cè)試環(huán)境。

二、SQLite3的安裝

在大多數(shù)現(xiàn)代操作系統(tǒng)中,SQLite3都已經(jīng)預(yù)裝。如果沒(méi)有預(yù)裝,可以通過(guò)包管理器安裝:

Ubuntu/Debian:

sudo apt-get install sqlite3

macOS:

brew install sqlite
  • Windows:

    從SQLite官方網(wǎng)站下載預(yù)編譯的二進(jìn)制文件。

三、SQLite3基本操作

3.1 創(chuàng)建數(shù)據(jù)庫(kù)

SQLite3數(shù)據(jù)庫(kù)是一個(gè)文件,創(chuàng)建數(shù)據(jù)庫(kù)實(shí)際上是創(chuàng)建一個(gè)文件。

sqlite3 mydatabase.db

上面的命令會(huì)創(chuàng)建一個(gè)名為 mydatabase.db的數(shù)據(jù)庫(kù)文件,并啟動(dòng)SQLite3交互式命令行工具。

3.2 創(chuàng)建表

使用SQL語(yǔ)句創(chuàng)建表。下面的示例創(chuàng)建一個(gè)名為 users的表,包含 id、name和 email三個(gè)字段。

CREATE TABLE users (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    name TEXT NOT NULL,
    email TEXT NOT NULL UNIQUE
);
?

3.3 插入數(shù)據(jù)

使用 INSERT語(yǔ)句向表中插入數(shù)據(jù)。

INSERT INTO users (name, email) VALUES ('Alice', 'alice@example.com');
INSERT INTO users (name, email) VALUES ('Bob', 'bob@example.com');

3.4 查詢數(shù)據(jù)

使用 SELECT語(yǔ)句查詢數(shù)據(jù)。

SELECT * FROM users;

可以使用 WHERE子句進(jìn)行條件查詢。

SELECT * FROM users WHERE name = 'Alice';

3.5 更新數(shù)據(jù)

使用 UPDATE語(yǔ)句更新數(shù)據(jù)。

UPDATE users SET email = 'alice_new@example.com' WHERE name = 'Alice';

3.6 刪除數(shù)據(jù)

使用 DELETE語(yǔ)句刪除數(shù)據(jù)。

DELETE FROM users WHERE name = 'Bob';

3.7 創(chuàng)建索引

索引可以加快查詢速度。使用 CREATE INDEX語(yǔ)句創(chuàng)建索引。

CREATE INDEX idx_users_name ON users (name);

3.8 使用事務(wù)

事務(wù)確保一組操作要么全部成功,要么全部失敗,保持?jǐn)?shù)據(jù)的一致性。使用 BEGIN TRANSACTION開(kāi)始事務(wù),COMMIT提交事務(wù),ROLLBACK回滾事務(wù)。

BEGIN TRANSACTION;
INSERT INTO users (name, email) VALUES ('Charlie', 'charlie@example.com');
UPDATE users SET email = 'alice_new@example.com' WHERE name = 'Alice';
COMMIT;

如果在事務(wù)中發(fā)生錯(cuò)誤,可以使用 ROLLBACK回滾事務(wù)。

BEGIN TRANSACTION;
INSERT INTO users (name, email) VALUES ('David', 'david@example.com');
-- 假設(shè)此操作失敗
UPDATE users SET email = 'error@example.com' WHERE name = 'Error';
ROLLBACK;

四、SQLite3高級(jí)功能

4.1 觸發(fā)器

觸發(fā)器是在特定事件發(fā)生時(shí)自動(dòng)執(zhí)行的SQL語(yǔ)句。使用 CREATE TRIGGER語(yǔ)句創(chuàng)建觸發(fā)器。

CREATE TRIGGER user_update_trigger
AFTER UPDATE ON users
BEGIN
    INSERT INTO user_logs (user_id, action) VALUES (NEW.id, 'UPDATE');
END;
?

4.2 視圖

視圖是虛擬表,通過(guò)查詢結(jié)果定義。使用 CREATE VIEW語(yǔ)句創(chuàng)建視圖。

CREATE VIEW user_emails AS
SELECT name, email FROM users;

4.3 參數(shù)化查詢

在應(yīng)用程序中使用SQLite3時(shí),參數(shù)化查詢可以防止SQL注入攻擊。

import sqlite3
conn = sqlite3.connect('mydatabase.db')
cursor = conn.cursor()
name = 'Alice'
cursor.execute("SELECT * FROM users WHERE name = ?", (name,))
print(cursor.fetchall())
conn.close()
?

4.4 導(dǎo)入和導(dǎo)出數(shù)據(jù)

SQLite3支持導(dǎo)入和導(dǎo)出數(shù)據(jù),可以使用 .import命令導(dǎo)入CSV文件,使用 .dump命令導(dǎo)出數(shù)據(jù)庫(kù)內(nèi)容。

sqlite3 mydatabase.db
sqlite> .import data.csv users
sqlite> .dump > backup.sql

五、實(shí)際案例

5.1 項(xiàng)目背景

假設(shè)我們正在開(kāi)發(fā)一個(gè)簡(jiǎn)單的圖書(shū)管理系統(tǒng),需要存儲(chǔ)圖書(shū)信息和借閱記錄。

5.2 數(shù)據(jù)庫(kù)設(shè)計(jì)

我們需要兩個(gè)表:books和 borrow_records

CREATE TABLE books (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    title TEXT NOT NULL,
    author TEXT NOT NULL,
    available INTEGER NOT NULL DEFAULT 1
);
CREATE TABLE borrow_records (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    book_id INTEGER NOT NULL,
    borrower TEXT NOT NULL,
    borrow_date TEXT NOT NULL,
    return_date TEXT,
    FOREIGN KEY (book_id) REFERENCES books(id)
);

5.3 操作示例

插入圖書(shū)數(shù)據(jù)

INSERT INTO books (title, author) VALUES ('1984', 'George Orwell');
INSERT INTO books (title, author) VALUES ('To Kill a Mockingbird', 'Harper Lee');

借閱圖書(shū)

BEGIN TRANSACTION;
UPDATE books SET available = 0 WHERE id = 1;
INSERT INTO borrow_records (book_id, borrower, borrow_date) VALUES (1, 'John Doe', '2023-07-02');
COMMIT;

歸還圖書(shū)

BEGIN TRANSACTION;
UPDATE books SET available = 1 WHERE id = 1;
UPDATE borrow_records SET return_date = '2023-07-15' WHERE book_id = 1 AND return_date IS NULL;
COMMIT;

到此這篇關(guān)于一篇文章帶你掌握SQLite3基本用法的文章就介紹到這了,更多相關(guān)SQLite3用法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SQLite教程(二):C/C++接口簡(jiǎn)介

    SQLite教程(二):C/C++接口簡(jiǎn)介

    這篇文章主要介紹了SQLite教程(二):C/C++接口簡(jiǎn)介,本文講解了C/C++接口概述、核心對(duì)象和接口、參數(shù)綁定等內(nèi)容,需要的朋友可以參考下
    2015-05-05
  • SQLite學(xué)習(xí)手冊(cè)(SQLite在線備份)

    SQLite學(xué)習(xí)手冊(cè)(SQLite在線備份)

    在SQLite中提供了一組用于在線數(shù)據(jù)庫(kù)備份的APIs函數(shù)(C接口),可以很好的解決上述方法存在的不足。通過(guò)該組函數(shù),可以將源數(shù)據(jù)庫(kù)中的內(nèi)容拷貝到另一個(gè)數(shù)據(jù)庫(kù),同時(shí)覆蓋目標(biāo)數(shù)據(jù)庫(kù)中的數(shù)據(jù)
    2013-12-12
  • SQLite教程(十三):C語(yǔ)言編程實(shí)例代碼(1)

    SQLite教程(十三):C語(yǔ)言編程實(shí)例代碼(1)

    這篇文章主要介紹了SQLite教程(十三):C語(yǔ)言編程實(shí)例代碼(1),本文講解了獲取表的Schema信息、動(dòng)態(tài)創(chuàng)建表、刪除該表、常規(guī)數(shù)據(jù)插入、創(chuàng)建測(cè)試數(shù)據(jù)表、刪除測(cè)試表等內(nèi)容,需要的朋友可以參考下
    2015-05-05
  • SQLite教程(十四):C語(yǔ)言編程實(shí)例代碼(2)

    SQLite教程(十四):C語(yǔ)言編程實(shí)例代碼(2)

    這篇文章主要介紹了SQLite教程(十四):C語(yǔ)言編程實(shí)例代碼(2),本文講解了高效的批量數(shù)據(jù)插入和數(shù)據(jù)查詢代碼實(shí)例,需要的朋友可以參考下
    2015-05-05
  • VScode第三方插件打開(kāi)sqlite數(shù)據(jù)庫(kù)圖文教程

    VScode第三方插件打開(kāi)sqlite數(shù)據(jù)庫(kù)圖文教程

    在實(shí)際做一個(gè)項(xiàng)目的時(shí)候,為了提高效率我們會(huì)首選不重復(fù)造輪子,所以可能會(huì)用到第三方庫(kù),下面這篇文章主要給大家介紹了關(guān)于VScode第三方插件打開(kāi)sqlite數(shù)據(jù)庫(kù)的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-06-06
  • SQLITE3 使用總結(jié)

    SQLITE3 使用總結(jié)

    Sqlite3 的確很好用。小巧、速度快。但是因?yàn)榉俏④浀漠a(chǎn)品,幫助文檔總覺(jué)得不夠。這些天再次研究它,又有一些收獲,這里把我對(duì) sqlite3 的研究列出來(lái),以備忘記。也希望能對(duì)大家有所幫助。
    2014-08-08
  • python之sqlalchemy創(chuàng)建表的實(shí)例詳解

    python之sqlalchemy創(chuàng)建表的實(shí)例詳解

    這篇文章主要介紹了數(shù)據(jù)庫(kù)之sqlalchemy創(chuàng)建表的實(shí)例詳解的相關(guān)資料,希望通過(guò)本文能幫助到大家,讓大家掌握理解這部分內(nèi)容,需要的朋友可以參考下
    2017-10-10
  • sqlite時(shí)間戳轉(zhuǎn)時(shí)間語(yǔ)句(時(shí)間轉(zhuǎn)時(shí)間戳)

    sqlite時(shí)間戳轉(zhuǎn)時(shí)間語(yǔ)句(時(shí)間轉(zhuǎn)時(shí)間戳)

    這篇文章主要介紹了sqlite時(shí)間戳轉(zhuǎn)時(shí)間、時(shí)間轉(zhuǎn)時(shí)間戳的方法,需要的朋友可以參考下
    2014-06-06
  • SQLite3中自增主鍵相關(guān)知識(shí)總結(jié)

    SQLite3中自增主鍵相關(guān)知識(shí)總結(jié)

    這篇文章主要介紹了SQLite3中自增主鍵相關(guān)知識(shí)總結(jié),清零的方法、INTEGER PRIMARY KEY AUTOINCREMENT和rowid的使用等,需要的朋友可以參考下
    2014-05-05
  • SQLite教程(十):內(nèi)存數(shù)據(jù)庫(kù)和臨時(shí)數(shù)據(jù)庫(kù)

    SQLite教程(十):內(nèi)存數(shù)據(jù)庫(kù)和臨時(shí)數(shù)據(jù)庫(kù)

    這篇文章主要介紹了SQLite教程(十):內(nèi)存數(shù)據(jù)庫(kù)和臨時(shí)數(shù)據(jù)庫(kù),本文講解了它們的創(chuàng)建方法和相關(guān)知識(shí),需要的朋友可以參考下
    2015-05-05

最新評(píng)論