最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

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

一、SQLite3簡介

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

二、SQLite3的安裝

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

Ubuntu/Debian:

sudo apt-get install sqlite3

macOS:

brew install sqlite
  • Windows:

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

三、SQLite3基本操作

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

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

sqlite3 mydatabase.db

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

3.2 創(chuàng)建表

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

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

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

使用 INSERT語句向表中插入數(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語句查詢數(shù)據(jù)。

SELECT * FROM users;

可以使用 WHERE子句進行條件查詢。

SELECT * FROM users WHERE name = 'Alice';

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

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

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

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

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

DELETE FROM users WHERE name = 'Bob';

3.7 創(chuàng)建索引

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

CREATE INDEX idx_users_name ON users (name);

3.8 使用事務

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

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

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

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

四、SQLite3高級功能

4.1 觸發(fā)器

觸發(fā)器是在特定事件發(fā)生時自動執(zhí)行的SQL語句。使用 CREATE TRIGGER語句創(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 視圖

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

CREATE VIEW user_emails AS
SELECT name, email FROM users;

4.3 參數(shù)化查詢

在應用程序中使用SQLite3時,參數(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 導入和導出數(shù)據(jù)

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

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

五、實際案例

5.1 項目背景

假設我們正在開發(fā)一個簡單的圖書管理系統(tǒng),需要存儲圖書信息和借閱記錄。

5.2 數(shù)據(jù)庫設計

我們需要兩個表: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ù)據(jù)

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

借閱圖書

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;

歸還圖書

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;

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

相關文章

  • Linux系統(tǒng)上sqlite3的使用操作實例

    Linux系統(tǒng)上sqlite3的使用操作實例

    本文介紹了Linux下sqlite3的安裝、基本操作指令、SQL語句使用、C/C++?API調(diào)用及QT集成方法,涵蓋數(shù)據(jù)庫創(chuàng)建、表結(jié)構(gòu)定義、數(shù)據(jù)增刪改查、API執(zhí)行與回調(diào)機制等內(nèi)容,對linux?sqlite3使用感興趣的朋友一起看看吧
    2025-06-06
  • SQLite數(shù)據(jù)庫管理系統(tǒng)-我所認識的數(shù)據(jù)庫引擎

    SQLite數(shù)據(jù)庫管理系統(tǒng)-我所認識的數(shù)據(jù)庫引擎

    SQLite是一款輕量級的、被設計用于嵌入式系統(tǒng)的關聯(lián)式數(shù)據(jù)庫管理系統(tǒng),SQLite 是一個實現(xiàn)自我依賴、純客戶端、零配置且支持事務的數(shù)據(jù)庫引擎
    2013-01-01
  • sqlite時間戳轉(zhuǎn)時間語句(時間轉(zhuǎn)時間戳)

    sqlite時間戳轉(zhuǎn)時間語句(時間轉(zhuǎn)時間戳)

    這篇文章主要介紹了sqlite時間戳轉(zhuǎn)時間、時間轉(zhuǎn)時間戳的方法,需要的朋友可以參考下
    2014-06-06
  • SQLite教程(四):內(nèi)置函數(shù)

    SQLite教程(四):內(nèi)置函數(shù)

    這篇文章主要介紹了SQLite教程(四):內(nèi)置函數(shù),本文講解了聚合函數(shù)、核心函數(shù)、日期和時間函數(shù)、,需要的朋友可以參考下
    2015-05-05
  • UniApp集成SQLite數(shù)據(jù)庫的完整方法步驟

    UniApp集成SQLite數(shù)據(jù)庫的完整方法步驟

    在uni-app中集成SQLite,可以實現(xiàn)離線數(shù)據(jù)存儲,例如在物資管理APP中存儲商品信息、出入庫記錄等,這篇文章主要介紹了UniApp集成SQLite數(shù)據(jù)庫的相關資料,需要的朋友可以參考下
    2026-04-04
  • SQLite教程(十三):C語言編程實例代碼(1)

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

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

    SQLite 入門教程四 增刪改查 有講究

    增刪改查操作,其中增刪改操作被稱為數(shù)據(jù)操作語言 DML,相對來說簡單一點。 查操作相對來說復雜一點,涉及到很多子句,所以這篇先講增刪改操作,以例子為主,后面再講查操作
    2013-12-12
  • sqlite中文亂碼問題原因分析及解決

    sqlite中文亂碼問題原因分析及解決

    打開數(shù)據(jù)庫,插入,查詢數(shù)據(jù)庫等,如果操作接口輸入?yún)?shù)包含中文字符,會導致操作異常,這是由于sqlite數(shù)據(jù)庫使用的是UTF-8編碼方式
    2013-04-04
  • SQLite教程(五):索引和數(shù)據(jù)分析/清理

    SQLite教程(五):索引和數(shù)據(jù)分析/清理

    這篇文章主要介紹了SQLite教程(五):索引和數(shù)據(jù)分析/清理,本文講解了創(chuàng)建索引、刪除索引、重建索引、數(shù)據(jù)分析、數(shù)據(jù)清理等內(nèi)容,需要的朋友可以參考下
    2015-05-05
  • SQLite 入門教程一 基本控制臺(終端)命令

    SQLite 入門教程一 基本控制臺(終端)命令

    SQLite 是一個自持的(self-contained)、無服務器的、零配置的、事務型的關系型數(shù)據(jù)庫引擎。因為他很小,所以也可以作為嵌入式數(shù)據(jù)庫內(nèi)建在你的應用程序中
    2013-12-12

最新評論

开化县| 郧西县| 汤原县| 吉木乃县| 泊头市| 获嘉县| 德格县| 湄潭县| 陕西省| 镶黄旗| 迁安市| 毕节市| 清远市| 奉贤区| 高阳县| 临湘市| 静海县| 新蔡县| 都兰县| 迭部县| 揭西县| 绥滨县| 信阳市| 通海县| 淮安市| 志丹县| 贡山| 华安县| 博白县| 临漳县| 宜兴市| 兖州市| 洛川县| 蒲江县| 尉犁县| 化德县| 新绛县| 昌平区| 交城县| 吐鲁番市| 霸州市|