<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # SQLite 簡介 > 原文: [http://zetcode.com/db/sqlite/introduction/](http://zetcode.com/db/sqlite/introduction/) 這是 SQLite 教程。 它涵蓋了 SQLite 數據庫引擎,`sqlite3`命令行工具和數據庫引擎涵蓋的 SQL 語言。 它是初學者的入門教程。 它涵蓋了 SQLite 3.16.2 版本。 ## SQLite 數據庫 _SQLite_ 是嵌入式關系數據庫引擎。 它的開發者稱其為自包含,無服務器,零配置和事務型 SQL 數據庫引擎。 它非常受歡迎,當今全球有數億本使用。 SQLite 用于 Solaris 10 和 Mac OS 操作系統以及 iPhone 和 Skype。 Qt4 庫具有對 SQLite 以及 Python 和 PHP 語言的內置支持。 許多流行的應用內部都使用 SQLite,例如 Firefox,Google Chrome 或 Amarok。 SQLite 實現了 SQL 的大多數 SQL-92 標準。 SQLite 引擎不是獨立的進程。 而是將其靜態或動態鏈接到應用。 SQLite 庫很小。 它可能需要少于 300 KiB。 SQLite 數據庫是單個普通磁盤文件,可以位于目錄層次結構中的任何位置。 這是一個跨平臺文件。 它可以在 32 位和 64 位架構的各種操作系統上使用。 SQLite 是用 C 編程語言編寫的。 它具有許多語言的綁定,包括 C++ ,Java,C# ,Python,Perl,Ruby,Visual Basic 和 Tcl。 SQLite 的源代碼在公共領域。 ## 定義 關系數據庫是表中組織的數據的集合。 表之間存在關系。 這些表是正式描述的。 它們由行和列組成。 _SQL(結構化查詢語言)是一種數據庫計算機語言,旨在管理關系數據庫管理系統中的數據。 表是使用垂直列和水平行的模型組織的一組值。 列由其名稱標識。 數據庫系統的模式是用正式語言描述的結構。 它定義了表,字段,關系,視圖,索引,過程,函數,隊列,觸發器和其他元素。 數據庫行代表表中的單個隱式結構化數據項。 它也稱為元組或記錄。 列是一組特定簡單類型的數據值,該數據值對應于表的每一行。 列提供了構成行所依據的結構。 字段是單個項目,存在于一行和一列之間的交點處。 主鍵唯一標識表中的每個記錄。 外鍵是兩個表之間的引用約束。 外鍵標識一個(引用)表中的一列或一組列,該列或表引用另一(引用)表中的一列或一組列。 觸發器是響應于數據庫中特定表上的某些事件而自動執行的過程代碼。 視圖是對來自一個或多個表的數據的特定外觀。 它可以按特定順序排列數據,突出顯示或隱藏某些數據。 視圖由存儲的查詢組成,該查詢可作為由查詢結果集組成的虛擬表訪問。 與普通表不同,視圖不構成物理模式的一部分。 它是根據數據庫中的數據計算或整理的動態虛擬表。 事務是針對一個或多個數據庫中數據的數據庫操作的基本單位。 事務中所有 SQL 語句的影響可以全部提交給數據庫,也可以全部回滾。 SQL 結果集是`SELECT`語句返回的數據庫中的一組行。 它還包含有關查詢的元信息,例如列名以及每列的類型和大小。 索引是一種數據結構,可提高對數據庫表的數據檢索操作的速度。 ## 從源代碼安裝 SQLite 為了獲得最新版本的 SQLite,我們可以從源代碼安裝 SQLite。 安裝很容易,并且只需要一段時間。 以下說明在 Linux 上構建和安裝 SQLite。 ```sql $ sudo apt-get install libreadline-dev ``` 要在 sqlite 命令行工具中啟用命令歷史記錄,我們需要安裝`readline`開發庫。 ```sql $ wget https://www.sqlite.org/2017/sqlite-autoconf-3160200.tar.gz ``` 從 SQLite 下載頁面,我們可以獲得最新資源。 這些是 SQLite 版本 3.16.2 的來源。 ```sql $ tar -xzvf sqlite-autoconf-3160200.tar.gz ``` 我們解壓縮壓縮文件。 ```sql $ cd sqlite-autoconf-3160200/ ``` 我們轉到`sqlite-autoconf-3160200`目錄。 ```sql $ ./configure ``` 我們運行`configure`腳本。 它告訴我們是否已經準備好構建 SQLite 的所有內容。 ```sql $ make ``` 使用`make`,我們構建 SQLite。 ```sql $ sudo make install ``` 使用`sudo make install`,我們在系統上安裝了 SQLite。 ```sql $ which sqlite3 /usr/local/bin/sqlite3 ``` 默認情況下,SQLite 命令行工具安裝在`/usr/local/bin`目錄中。 ```sql $ sqlite3 SQLite version 3.16.2 2017-01-06 16:32:41 Enter ".help" for usage hints. Connected to a transient in-memory database. Use ".open FILENAME" to reopen on a persistent database. sqlite> ``` `/usr/local/bin`目錄位于`PATH`變量中,因此我們可以在沒有完整路徑的情況下運行`sqlite3`。 ## 使用的表 在這里,我們將列出整個教程中使用的最重要的表。 `sqlite3`工具的`.read`命令用于從文件執行 SQL 語句。 ```sql sqlite> .read cars.sql ``` 在這里,我們執行`cars.sql`文件中的 SQL 語句。 `cars.sql` ```sql -- SQL for the Cars table BEGIN TRANSACTION; DROP TABLE IF EXISTS Cars; CREATE TABLE Cars(Id INTEGER PRIMARY KEY, Name TEXT, Price INTEGER); INSERT INTO Cars VALUES(1, 'Audi', 52642); INSERT INTO Cars VALUES(2, 'Mercedes', 57127); INSERT INTO Cars VALUES(3, 'Skoda', 9000); INSERT INTO Cars VALUES(4, 'Volvo', 29000); INSERT INTO Cars VALUES(5, 'Bentley', 350000); INSERT INTO Cars VALUES(6, 'Citroen', 21000); INSERT INTO Cars VALUES(7, 'Hummer', 41400); INSERT INTO Cars VALUES(8, 'Volkswagen', 21600); COMMIT; ``` 這是`Cars`表。 `orders.sql` ```sql -- SQL for the Orders table BEGIN TRANSACTION; DROP TABLE IF EXISTS Orders; CREATE TABLE Orders(Id INTEGER PRIMARY KEY, OrderPrice INTEGER CHECK(OrderPrice>0), Customer TEXT); INSERT INTO Orders(OrderPrice, Customer) VALUES(1200, "Williamson"); INSERT INTO Orders(OrderPrice, Customer) VALUES(200, "Robertson"); INSERT INTO Orders(OrderPrice, Customer) VALUES(40, "Robertson"); INSERT INTO Orders(OrderPrice, Customer) VALUES(1640, "Smith"); INSERT INTO Orders(OrderPrice, Customer) VALUES(100, "Robertson"); INSERT INTO Orders(OrderPrice, Customer) VALUES(50, "Williamson"); INSERT INTO Orders(OrderPrice, Customer) VALUES(150, "Smith"); INSERT INTO Orders(OrderPrice, Customer) VALUES(250, "Smith"); INSERT INTO Orders(OrderPrice, Customer) VALUES(840, "Brown"); INSERT INTO Orders(OrderPrice, Customer) VALUES(440, "Black"); INSERT INTO Orders(OrderPrice, Customer) VALUES(20, "Brown"); COMMIT; ``` 這是`Orders`表。 `friends.sql` ```sql -- SQL for the Friends table BEGIN TRANSACTION; DROP TABLE IF EXISTS Friends; CREATE TABLE Friends(Id INTEGER PRIMARY KEY, Name TEXT UNIQUE NOT NULL, Sex TEXT CHECK(Sex IN ('M', 'F'))); INSERT INTO Friends VALUES(1, 'Jane', 'F'); INSERT INTO Friends VALUES(2, 'Thomas', 'M'); INSERT INTO Friends VALUES(3, 'Franklin', 'M'); INSERT INTO Friends VALUES(4, 'Elisabeth', 'F'); INSERT INTO Friends VALUES(5, 'Mary', 'F'); INSERT INTO Friends VALUES(6, 'Lucy', 'F'); INSERT INTO Friends VALUES(7, 'Jack', 'M'); COMMIT; ``` 這是`Friends`表。 `customers_reservations.sql` ```sql BEGIN TRANSACTION; DROP TABLE IF EXISTS Reservations; DROP TABLE IF EXISTS Customers; CREATE TABLE IF NOT EXISTS Customers(CustomerId INTEGER PRIMARY KEY, Name TEXT); INSERT INTO Customers(Name) VALUES('Paul Novak'); INSERT INTO Customers(Name) VALUES('Terry Neils'); INSERT INTO Customers(Name) VALUES('Jack Fonda'); INSERT INTO Customers(Name) VALUES('Tom Willis'); CREATE TABLE IF NOT EXISTS Reservations(Id INTEGER PRIMARY KEY, CustomerId INTEGER, Day TEXT); INSERT INTO Reservations(CustomerId, Day) VALUES(1, '2009-22-11'); INSERT INTO Reservations(CustomerId, Day) VALUES(2, '2009-28-11'); INSERT INTO Reservations(CustomerId, Day) VALUES(2, '2009-29-11'); INSERT INTO Reservations(CustomerId, Day) VALUES(1, '2009-29-11'); INSERT INTO Reservations(CustomerId, Day) VALUES(3, '2009-02-12'); COMMIT; ``` 這些是`Customers`和`Reservations`表。 `authors_books.sql` ```sql -- SQL for the Authors & Books tables BEGIN TRANSACTION; DROP TABLE IF EXISTS Books; DROP TABLE IF EXISTS Authors; CREATE TABLE Authors(AuthorId INTEGER PRIMARY KEY, Name TEXT); INSERT INTO Authors VALUES(1, 'Jane Austen'); INSERT INTO Authors VALUES(2, 'Leo Tolstoy'); INSERT INTO Authors VALUES(3, 'Joseph Heller'); INSERT INTO Authors VALUES(4, 'Charles Dickens'); CREATE TABLE Books(BookId INTEGER PRIMARY KEY, Title TEXT, AuthorId INTEGER, FOREIGN KEY(AuthorId) REFERENCES Authors(AuthorId)); INSERT INTO Books VALUES(1,'Emma',1); INSERT INTO Books VALUES(2,'War and Peace',2); INSERT INTO Books VALUES(3,'Catch XII',3); INSERT INTO Books VALUES(4,'David Copperfield',4); INSERT INTO Books VALUES(5,'Good as Gold',3); INSERT INTO Books VALUES(6,'Anna Karenia',2); COMMIT; ``` 這些是`Authors`和`Books`表。 ## 數據來源 SQLite 的[文檔](http://sqlite.org/docs.html)用于創建本教程。 本章是對 SQLite 數據庫的介紹。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看