sqlite 學習

wanglei1900發表於2024-10-05

sqlite

SQLite是一個輕量級的嵌入式關係型資料庫管理系統(RDBMS),它實現了自給自足的、無伺服器的、零配置的、事務性的SQL資料庫引擎。以下是關於SQLite的詳細介紹:

一、SQLite的特點
輕量級與嵌入式:SQLite是一個輕量級的資料庫引擎,非常適合嵌入到各種應用程式中。它不需要獨立的伺服器程序,而是直接將資料庫儲存在主機檔案系統中,從而節省了資源和提高了效能。
零配置:SQLite是一個零配置的資料庫,這意味著它不需要在系統中進行任何配置即可使用。開發者只需將SQLite庫嵌入到應用程式中,即可輕鬆使用其提供的資料庫功能。
跨平臺:SQLite支援多種作業系統,包括UNIX、Windows、Linux等,以及多種程式語言,如C、C++、Java、Python等。這使得開發者可以在不同的平臺上使用相同的資料庫技術,降低了開發成本和複雜性。
事務性:SQLite支援事務處理,確保資料的完整性和一致性。它提供了BEGIN TRANSACTION、COMMIT、ROLLBACK等事務控制語句,允許開發者在多個操作之間維護資料的一致性。
完整的SQL功能:SQLite提供了完整的SQL功能,包括資料定義語言(DDL)、資料操作語言(DML)和資料控制語言(DCL)。它支援SELECT、INSERT、UPDATE、DELETE等基本的SQL操作,以及觸發器、索引、檢視等高階功能。
二、SQLite的基本概念
資料庫:SQLite資料庫是一個儲存在單一跨平臺的磁碟檔案中的完整資料庫系統。這個檔案包含了資料庫的所有表、索引、檢視和觸發器等資訊。
表:表是資料庫中的基本儲存單元,用於儲存資料。每個表都有一個唯一的名稱,幷包含若干列和行。列表示資料的欄位,行表示記錄。
行與列:行是表中的一條記錄,列是表中的欄位。每條記錄都包含若干個欄位值,這些欄位值對應著表中的各個列。
主鍵:主鍵是表中的一列或多列,其值能夠唯一標識表中的一條記錄。主鍵列的值不允許為空,且不允許重複。
外來鍵:外來鍵是表中的一列,其值引用另一個表的主鍵。外來鍵用於維護表之間的關係和資料的一致性。
索引:索引是一種特殊的查詢表,用於加快資料檢索的速度。它允許資料庫引擎在不需要掃描整個表的情況下,快速找到滿足查詢條件的記錄。
三、SQLite的學習資源
官方文件:SQLite的官方網站提供了詳細的文件和教程,包括SQL語法、API介面、資料型別、事務處理等方面的內容。這些文件是學習SQLite的最佳資源之一。
線上教程:有許多線上教程和網站提供了SQLite的學習資源,如菜鳥教程(Runoob)、W3Schools等。這些教程通常包含了從基礎到高階的SQLite知識和示例程式碼,非常適合初學者入門。
書籍:有一些專門的書籍介紹了SQLite的使用和程式設計技巧。這些書籍通常包含了詳細的示例和案例,可以幫助讀者更好地理解和應用SQLite。
社群和論壇:SQLite擁有一個活躍的社群和論壇,開發者可以在這裡提問、交流經驗和分享程式碼。這些社群和論壇是學習SQLite的好去處,可以獲取最新的技術動態和解決方案。
四、SQLite的學習建議
掌握基礎SQL知識:在學習SQLite之前,建議先掌握基礎的SQL知識,包括SQL的基本概念、語法和常用操作等。這將有助於你更好地理解SQLite的資料庫功能和操作方式。
實踐操作:透過編寫SQL語句和程式來實踐SQLite的使用。你可以建立資料庫、表、索引等物件,並插入、查詢、更新和刪除資料。實踐操作是掌握SQLite的最佳方式之一。
閱讀官方文件和教程:官方文件和教程是學習SQLite的權威資源。它們提供了詳細的解釋和示例程式碼,可以幫助你更好地理解和應用SQLite的功能和特性。
參與社群和論壇:加入SQLite的社群和論壇,與其他開發者交流和分享經驗。這將有助於你解決遇到的問題,並瞭解最新的技術動態和解決方案。
總之,SQLite是一個功能強大且易於使用的輕量級資料庫引擎。透過學習SQLite,你將能夠掌握關係型資料庫的基本概念和操作方式,為開發高效、可靠的應用程式打下堅實的基礎。

視覺化工具 Navicat lite(免費)

建立一個sqlite倉庫

# macos 推薦放在這個目錄下
cd ~/Library/Application Support
mkdir -p SqliteStudy
qlite3 sqlitestudy.db

navicat 連線sqlite 注意事項

連線報錯 14 - unable to open database file

  • 路徑要用絕對路徑不能是相對路徑, ~/Library/Application Support/SqliteStudy/sqlitestudy.db 是錯誤的,應該用 Users/paul/Library/Application Support/SqliteStudy/sqlitestudy.db

sqlite 資料型別

幾乎所有的DBMS(關係型資料庫),都採用嚴格的靜態型別。而 sqlite 的資料型別是動態的。遇到資料型別轉換的問題,sqlite 會自動轉換。
SQLite 僅有四個基後設資料型別:INTEGER、REAL、TEXT 和 BLOB。

  • NULL: 表示一個NULL值
  • INTEGER: 用來儲存一個整數,根據大小可以使用1,2,3,4,6,8位來儲存.
  • REAL: IEEE浮點數
  • TEXT: 按照字串來儲存
  • BLOB: 按照二進位制值儲存,不做任何改變.

sqlite 有一套判斷規則
如果宣告的型別中包含 "INT",則為 INTEGER
如果宣告的型別中包含 "CHAR", "CLOB" 或 "TEXT",則為 TEXT
如果宣告的型別中包含 "BLOB",或者沒有宣告型別,則為 BLOB
如果宣告的型別中包含 "REAL", "FLOA" 或 "DOUB",則為 REAL
其他情況,則為 NUMERIC

sqlite沒有布林值型別,布林值被儲存為整數 0(false)和 1(true)。

sqlite沒有Date 與 Time 資料型別,但 SQLite 能夠把日期和時間儲存為 TEXT、REAL 或 INTEGER 值。

  • TEXT:格式為 "YYYY-MM-DD HH:MM:SS.SSS" 的日期。
  • REAL:從公元前 4714 年 11 月 24 日格林尼治時間正午開始算起的天數。
  • INTEGER:從 1970-01-01 00:00:00 UTC 算起的秒數。

您可以以任何上述格式來儲存日期和時間,並且可以使用內建的日期和時間函式來自由轉換不同格式。

sql 學習網站

瞭解sqlite 與myysql、sqlserver 的區別
SQL學習網站

相關文章