久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

怎么使用SQLite3

152次閱讀
沒有評論

共計 4805 個字符,預計需要花費 13 分鐘才能閱讀完成。

這篇文章主要講解了“怎么使用 SQLite3”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著丸趣 TV 小編的思路慢慢深入,一起來研究和學習“怎么使用 SQLite3”吧!

開始使用這個功能強大且通用的數據庫吧。

應用程序經常需要保存數據。無論你的用戶是創建簡單的文本文檔、復雜的圖形布局、游戲進度還是錯綜復雜的客戶和訂單號列表,軟件通常都意味著生成數據。有很多方法可以存儲數據以供重復使用。你可以將文本轉儲為 INI、YAML、XML 或 JSON 等配置格式,可以輸出原始的二進制數據,也可以將數據存儲在結構化數據庫中。SQLite 是一個自包含的、輕量級數據庫,可輕松創建、解析、查詢、修改和傳輸數據。

下載  SQLite3 備忘錄

SQLite 專用于   公共領域,從技術上講,這意味著它沒有版權,因此不需要許可證。如果你需要許可證,則可以   購買所有權擔保。SQLite   非常常見,大約有 1 萬億個 SQLite 數據庫正在使用中。在每個基于 Webkit 的 Web   瀏覽器,現代電視機,汽車多媒體系統以及無數其他軟件應用程序中,Android 和 iOS 設備,macOS 和 Windows 10   計算機,大多數 Linux 系統上都包含多個這種數據庫。

總而言之,它是用于存儲和組織數據的一個可靠而簡單的系統。

安裝

你的系統上可能已經有 SQLite 庫,但是你需要安裝其命令行工具才能直接使用它。在 Linux 上,你可能已經安裝了這些工具。該工具提供的命令是  sqlite3 (而不僅僅是 sqlite)。

如果沒有在你的 Linux 或 BSD 上安裝 SQLite,你則可以從軟件倉庫中或 ports 樹中安裝 SQLite,也可以從源代碼或已編譯的二進制文件進行下載并安裝。

在 macOS 或 Windows 上,你可以從  sqlite.org  下載并安裝 SQLite 工具。

使用 SQLite

通過編程語言與數據庫進行交互是很常見的。因此,像 Java、Python、Lua、PHP、Ruby、C++ 以及其他編程語言都提供了  SQLite 的接口(或“綁定”)。但是,在使用這些庫之前,了解數據庫引擎的實際情況以及為什么你對數據庫的選擇很重要是有幫助的。本文向你介紹  SQLite 和  sqlite3  命令,以便你熟悉該數據庫如何處理數據的基礎知識。

與 SQLite 交互

你可以使用  sqlite3  命令與 SQLite 進行交互。該命令提供了一個交互式的 shell 程序,以便你可以查看和更新數據庫。

$ sqlite3SQLite version 3.34.0 2020-12-01 16:14:00Enter  .help  for usage hints.Connected to a transient in-memory database.Use  .open FILENAME  to reopen on a persistent database.sqlite

該命令將你使你處于 SQLite 的子 shell 中,因此現在的提示符是 SQLite 的提示符。你以前使用的 Bash 命令在這里將不再適用。你必須使用 SQLite 命令。要查看 SQLite 命令列表,請輸入  .help:

sqlite  .help.archive ... Manage SQL archives.auth ON|OFF SHOW authorizer callbacks.backup ?DB? FILE Backup DB (DEFAULT  main) TO FILE.bail ON|off Stop after hitting an error. DEFAULT OFF.binary ON|off Turn BINARY output ON OR off. DEFAULT OFF.cd DIRECTORY CHANGE the working directory TO DIRECTORY[...]

這些命令中的其中一些是二進制的,而其他一些則需要唯一的參數(如文件名、路徑等)。這些是 SQLite Shell 的管理命令,不是用于數據庫查詢。數據庫以結構化查詢語言(SQL)進行查詢,許多 SQLite 查詢與你從  MySQL  和  MariaDB  數據庫中已經知道的查詢相同。但是,數據類型和函數有所不同,因此,如果你熟悉另一個數據庫,請特別注意細微的差異。

創建數據庫

啟動 SQLite 時,可以打開內存數據庫,也可以選擇要打開的數據庫:

$ sqlite3 mydatabase.db

如果還沒有數據庫,則可以在 SQLite 提示符下創建一個數據庫:

sqlite  .open mydatabase.db

現在,你的硬盤驅動器上有一個空文件,可以用作 SQLite 數據庫。文件擴展名  .db  是任意的。你也可以使用  .sqlite  或任何你想要的后綴。

創建一個表

數據庫包含一些表 table,可以將其可視化為電子表格。有許多的行(在數據庫中稱為記錄 record)和列。行和列的交集稱為字段 field。

結構化查詢語言(SQL)以其提供的內容而命名:一種以可預測且一致的語法查詢數據庫內容以接收有用的結果的方法。SQL 讀起來很像普通的英語句子,即使有點機械化。當前,你的數據庫是一個沒有任何表的空數據庫。

你可以使用  CREATE  來創建一個新表,你可以和  IF NOT EXISTS  結合使用。以便不會破壞現在已有的同名的表。

你無法在 SQLite 中創建一個沒有任何字段的空表,因此在嘗試  CREATE  語句之前,必須考慮預期表將存儲的數據類型。在此示例中,我將使用以下列創建一個名為  member  的表:

唯一標識符

人名

記錄創建的時間和日期

唯一標識符

最好用唯一的編號來引用記錄,幸運的是,SQLite 認識到這一點,創建一個名叫  rowid  的列來為你自動實現這一點。

無需 SQL 語句即可創建此字段。

數據類型

對于我的示例表中,我正在創建一個  name  列來保存  TEXT  類型的數據。為了防止在沒有指定字段數據的情況下創建記錄,可以添加  NOT NULL  指令。

用  name TEXT NOT NULL  語句來創建。

SQLite 中有五種數據類型(實際上是   儲存類別):

TEXT:文本字符串

INTEGER:一個數字

REAL:一個浮點數(小數位數無限制)

BLOB:二進制數據(例如,.jpeg 或 .webp 圖像)

NULL:空值

日期和時間戳

SQLite 有一個方便的日期和時間戳功能。它本身不是數據類型,而是 SQLite 中的一個函數,它根據所需的格式生成字符串或整數。在此示例中,我將其保留為默認值。

創建此字段的 SQL 語句是:datestamp DATETIME DEFAULT CURRENT_TIMESTAMP。

創建表的語句

在 SQLite 中創建此示例表的完整 SQL:

sqlite  CREATE TABLE...  IF NOT EXISTS...  member (name TEXT NOT NULL,...  datestamp DATETIME DEFAULT CURRENT_TIMESTAMP);

在此代碼示例中,我在語句的分句后按了回車鍵。以使其更易于閱讀。除非以分號(;)終止,否則 SQLite 不會運行你的 SQL 語句。

你可以使用 SQLite 命令  .tables  驗證表是否已創建:

sqlite  .tablesmember

查看表中的所有列

你可以使用  PRAGMA  語句驗證表包含哪些列和行:

sqlite  PRAGMA table_info(member);0|name|TEXT|1||01|datestamp|DATETIME|0|CURRENT_TIMESTAMP|0

數據輸入

你可以使用  INSERT  語句將一些示例數據填充到表中:

 INSERT INTO member (name) VALUES (Alice  INSERT INTO member (name) VALUES (Bob  INSERT INTO member (name) VALUES (Carol  INSERT INTO member (name) VALUES (David

查看表中的數據:

 SELECT * FROM member;Alice|2020-12-15 22:39:00Bob|2020-12-15 22:39:02Carol|2020-12-15 22:39:05David|2020-12-15 22:39:07

添加多行數據

現在創建第二個表:

 CREATE TABLE IF NOT EXISTS linux (...  distro TEXT NOT NULL);

填充一些示例數據,這一次使用小的  VALUES  快捷方式,因此你可以在一個命令中添加多行。關鍵字  VALUES  期望以括號形式列出列表,而用多個逗號分隔多個列表:

 INSERT INTO linux (distro)...  VALUES (Slackware), (RHEL),...  (Fedora),(Debian

修改表結構

你現在有兩個表,但是到目前為止,兩者之間沒有任何關系。它們每個都包含獨立的數據,但是可能你可能需要將第一個表的成員與第二個表中列出的特定項相關聯。

為此,你可以為第一個表創建一個新列,該列對應于第二個表。由于兩個表都設計有唯一標識符(這要歸功于 SQLite 的自動創建),所以連接它們的最簡單方法是將其中一個的  rowid  字段用作另一個的選擇器。

在第一個表中創建一個新列,以存儲第二個表中的值:

 ALTER TABLE member ADD os INT;

使用  linux  表中的唯一標識符作為  member  表中每一條記錄中  os  字段的值。因為記錄已經存在。因此你可以使用  UPDATE  語句而不是使用  INSERT  語句來更新數據。需要特別注意的是,你首先需要選中特定的一行來然后才能更新其中的某個字段。從句法上講,這有點相反,更新首先發生,選擇匹配最后發生:

 UPDATE member SET os=1 WHERE name= Alice

對  member  表中的其他行重復相同的過程。更新  os  字段,為了數據多樣性,在四行記錄上分配三種不同的發行版(其中一種加倍)。

聯接表

現在,這兩個表相互關聯,你可以使用 SQL 顯示關聯的數據。數據庫中有多種   聯接方式,但是一旦掌握了基礎知識,就可以嘗試所有的聯接形式。這是一個基本聯接,用于將  member  表的  os  字段中的值與 linux 表的  rowid  字段相關聯:

 SELECT * FROM member INNER JOIN linux ON member.os=linux.rowid;Alice|2020-12-15 22:39:00|1|SlackwareBob|2020-12-15 22:39:02|3|FedoraCarol|2020-12-15 22:39:05|3|FedoraDavid|2020-12-15 22:39:07|4|Debian

os  和  rowid  字段形成了關聯。

在一個圖形應用程序中,你可以想象  os  字段是一個下拉選項菜單,其中的值是  linux  表中  distro  字段中的數據。將相關的數據集通過唯一的字段相關聯,可以確保數據的一致性和有效性,并且借助 SQL,你可以在以后動態地關聯它們。

了解更多

SQLite 是一個非常有用的自包含的、可移植的開源數據庫。學習以交互方式使用它是邁向針對 Web 應用程序進行管理或通過編程語言庫使用它的重要的第一步。

感謝各位的閱讀,以上就是“怎么使用 SQLite3”的內容了,經過本文的學習后,相信大家對怎么使用 SQLite3 這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是丸趣 TV,丸趣 TV 小編將為大家推送更多相關知識點的文章,歡迎關注!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-07-27發表,共計4805字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 汉川市| 郁南县| 综艺| 平安县| 偃师市| 项城市| 阳西县| 宁津县| 曲阳县| 罗甸县| 太仓市| 和田市| 郯城县| 安康市| 呼伦贝尔市| 喀什市| 绩溪县| 彩票| 宁城县| 遂溪县| 镇宁| 忻州市| 道孚县| 格尔木市| 滨州市| 江都市| 台安县| 屯门区| 平遥县| 栾城县| 哈密市| 鹤壁市| 蓬莱市| 杭锦后旗| 玛纳斯县| 渭南市| 陵川县| 石河子市| 顺昌县| 门源| 咸阳市|