Python 操作Sqlite3


SQLite命令


1> .help  幫助信息

2>.show  輸出格式設置

3>.excel  把操作結果輸入excel

4>.schema sqlite_master 輸出主表中保存數據庫表

5>.header on / .mode column /.timer on  輸出形式設置

6>.exit 退出數據庫

7>.databases 顯示數據庫列表

8> -- 、/*....*/ 注釋

9> .dump > 點命令來導出完整的數據庫在一個文本文件中  -- testDB.db  .dump > testDB.sql

10> < 從生成的testDB.sql恢復

11>.table 列出附加數據庫中的所有表

12>.schema 命令得到表的完整信息

13>.width num,num...命令設置顯示列的寬度

SQLite數據類型


 

 SQLite 數據庫操作:


1>. 創建數據庫 :sqlite3 DatabaseName.db

2>. 附加數據庫: ATTACH DATABASE 'testDB.db' as  'TEST'

3>.分離數據庫: DETACH  DATABASE ‘Alias-Name’;

SQLite 數據庫表的操作:


創建表:CREATE TABLE

CREATE TABLE database_name.table_name( column1 datatype PRIMARY KEY(one or more columns), column2 datatype, column3 datatype, ..... columnN datatype, );

刪除表:DROP TABLE語句用來刪除表定義及其所有相關數據、索引、觸發器、約束和該表的權限規范

DROP TABLE database_name.table_name;

向數據庫的某個表中添加新的數據行:Insert into 語句:

第一種:INSERT INTO TABLE_NAME [(column1, column2, column3,...columnN)]     VALUES (value1, value2, value3,...valueN);

第二種:INSERT INTO TABLE_NAME VALUES (value1,value2,value3,...valueN);

第三種:
INSERT INTO first_table_name [(column1, column2, ... columnN)] SELECT column1, column2, ...columnN FROM second_table_name [WHERE condition];

更新數據庫數據: UPDATE 查詢用於修改表中已有的記錄。可以使用帶有 WHERE 子句的 UPDATE 查詢來更新選定行,否則所有的行都會被更新。

UPDATE table_name
SET column1 = value1, column2 = value2...., columnN = valueN WHERE [condition];

刪除數據庫已有的記錄:DELETE 查詢用於刪除表中已有的記錄。可以使用帶有 WHERE 子句的 DELETE 查詢來刪除選定行,否則所有的記錄都會被刪除。

DELETE FROM table_name
WHERE [condition];

SQLite Like 子句:

  • 百分號 (%)

  • 下划線 (_)

  百分號(%)代表零個、一個或多個數字或字符。下划線(_)代表一個單一的數字或字符。這些符號可以被組合使用。

SQLite Glob 子句:與 LIKE 運算符不同的是,GLOB 是大小寫敏感的,

  • 星號 (*)

  • 問號 (?)

星號(*)代表零個、一個或多個數字或字符。問號(?)代表一個單一的數字或字符。這些符號可以被組合使用。

SQLite 語句的格式:

SELECT Distinct
FROM
WHERE
GROUP BY
HAVING
ORDER BY
Limit

 

SQLite 邏輯運算符:

 SQLite 約束:


約束是在表的數據列上強制執行的規則。這些是用來限制可以插入到表中的數據類型。這確保了數據庫中數據的准確性和可靠性。

約束可以是列級或表級。列級約束僅適用於列,表級約束被應用到整個表。

以下是在 SQLite 中常用的約束

 

  • NOT NULL 約束:確保某列不能有 NULL 值。

  • DEFAULT 約束:當某列沒有指定值時,為該列提供默認值。

  • UNIQUE 約束:確保某列中的所有值是不同的。

  • PRIMARY Key 約束:唯一標識數據庫表中的各行/記錄。

  • CHECK 約束:CHECK 約束確保某列中的所有值滿足一定條件。

  • 一個表只能有一個主鍵,它可以由一個或多個字段組成。當多個字段作為主鍵,它們被稱為復合鍵
CREATE TABLE COMPANY3( ID INT PRIMARY KEY NOT NULL, NAME TEXT NOT NULL, AGE INT NOT NULL, ADDRESS CHAR(50), SALARY REAL CHECK(SALARY > 0) );

SQLite Join


 

SQL 定義了三種主要類型的連接:

  • 交叉連接 - CROSS JOIN --- 兩個表所有數據行的笛卡爾積

  • 內連接 - INNER JOIN ----把 table1 中的每一行與 table2 中的每一行進行比較,找到所有滿足連接謂詞的行的匹配對。當滿足連接謂詞時,A 和 B 行的每個匹配對的列值會合並成一個結果行

    • SELECT ... FROM table1 [INNER] JOIN table2 ON conditional_expression ...
    • SELECT ... FROM table1 JOIN table2 USING ( column1 ,... ) ...
  • 外連接 - OUTER JOIN

    • SELECT ... FROM table1 LEFT OUTER JOIN table2 ON conditional_expression ...
    • SELECT ... FROM table1 LEFT OUTER JOIN table2 USING ( column1 ,... ) ...

SQLite Unions


 

UNION 子句:

UNION 子句/運算符用於合並兩個或多個 SELECT 語句的結果,不返回任何重復的行,為了使用 UNION,每個 SELECT 被選擇的列數必須是相同的,相同數目的列表達式,相同的數據類型,並確保它們有相同的順序,但它們不必具有相同的長度。

SELECT column1 [, column2 ] FROM table1 [, table2 ] [WHERE condition] UNION SELECT column1 [, column2 ] FROM table1 [, table2 ] [WHERE condition]

UNION ALL 子句:

UNION ALL 運算符用於結合兩個 SELECT 語句的結果,包括重復行。

適用於 UNION 的規則同樣適用於 UNION ALL 運算符。

SELECT column1 [, column2 ] FROM table1 [, table2 ] [WHERE condition] UNION ALL SELECT column1 [, column2 ] FROM table1 [, table2 ] [WHERE condition]

SQLite NULL


SQLite 的 NULL 是用來表示一個缺失值的項。表中的一個 NULL 值是在字段中顯示為空白的一個值。

帶有 NULL 值的字段是一個不帶有值的字段。NULL 值與零值或包含空格的字段是不同的,理解這點是非常重要的

IS NOT NULL  / IS NULL 運算符

 

 

 

 
        
 



 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM