
數據庫是數據的倉庫,將大量數據按照一定的方式組織并存儲起來,方便進行管理和維護,例如快速檢索和統計等。數據庫的主要特點:
- 以一定的方式組織、存儲數據;
- 能為多個用戶共享;
- 與程序彼此獨立。
- ……
數據庫管理系統是一種操縱和管理數據庫的大型軟件。它對數據庫進行統一的管理和控制,以保證數據庫的安全性和完整性。用戶通過DBMS訪問數據庫中的數據,數據庫管理員通過DBMS進行數據庫的維護工作。主要功能包括:數據定義(創建數據庫、表等)、數據操縱(增刪查改等)、數據庫控制(并發、權限等)、數據庫維護(轉存、恢復等)等。
常見數據庫類型
當前常見的數據庫類型有:關系型數據庫、鍵值存儲數據庫、面向文檔數據庫、圖數據庫等。
- 關系型數據庫:當前應用最廣泛的數據庫類型,把復雜的數據結構歸結為簡單的二元關系(即二維表形式),例如MySQL、SQL Server、Oracle、SQLite等;
- 鍵值存儲數據庫:使用簡單的鍵值方法來存儲數據,其中鍵作為唯一標記,是一種非關系數據庫,例如Redis;
- 面向文檔數據庫:用于存放并獲取文檔,主要是XML、JSON等具備自我描述特性、呈現層次結構的文檔,例如MongoDB;
- 圖數據庫:一種存儲圖關系的數據庫,應用圖理論存儲實體之間的關系信息,例如Neo4J。
關系型數據庫
關系型數據庫是指采用關系模型組織數據的數據庫,它以行和列的形式存儲數據,一系列的行和列組成了表,一組表組成了數據庫。在關系模型中,實體以及實體之間的聯系都會映射成統一的關系:二維表,關系型數據庫操作的對象和返回的結果都是二維表。
- 關系:可以理解為一張二維表,每個關系都有一個關系名,也就是表名;
- 屬性: 可以理解為二維表中的一列,在數據庫中稱為字段,屬性名就是表中的列名;
- 域:屬性值的取值范圍,數據庫中某一列的取值范圍;
- 元組:可以理解為二維表中的一行,在數據庫中稱為記錄;
- 分量:元組中的一個屬性值;
- 關鍵字:可以唯一標識元組的屬性或屬性組,數據庫中稱為主鍵。
SQLite數據庫
SQLite是一個輕量級的關系型數據庫,SQLite并沒有包含大型客戶/服務器數據庫(如Oracle、SQL Server)的所有特性,但它包含了操作本地數據的所有功能,簡單易用、反應快。
SQLite本質上就是一個文件,內部只支持 NULL、INTEGER、REAL(浮點數)、TEXT(字符串文本)和BLOB(二進制對象)這五種數據類型,但實際上SQLite也接受varchar(n)等數據類型,只不過在運算或保存時會轉成上面對應的數據類型。
在SQLite中可以把各種類型的數據保存到任何字段中,而不用關心字段聲明的數據類型是什么。因此SQLite在解析建表語句時,會忽略建表語句中跟在字段名后面的數據類型信息。
結構化查詢語言SQL
結構化查詢語言(Structured Query Language 簡稱SQL ),是一種特殊的編程語言,主要用于關系型數據庫的操作,包括數據存取、查詢、更新和管理等。
SQL語言是一種高級的非過程化編程語言,用戶使用SQL對數據操作時,并不需要知道數據的存儲方式和操作細節。不同的關系型數據庫底層存儲方式不同,但是可以使用相同的SQL語句進行操作,對于用戶來說,操作方式類似,可以快速在不同的數據庫上進行移植。
SQL語言不僅可獨立使用,還可嵌入到其他高級語言(如Java、Python等)中,兩種方式下SQL語法結構基本一致,為用戶提供了極大的靈活性和便利性。
創建數據庫表時,使用create table,刪除表時,使用drop table,建議在建表和刪表前進行判斷,否則創建一個已存在的表或刪除不存在的表都會報錯。具體語法細節如下。

從數據庫中查詢數據時,使用select語句,通過where子句指定查詢條件,通過group by子句對查詢結果進行分組,通過order by子句對查詢結果進行排序。具體語法細節如下:



向數據庫表中插入內容時,使用insert into語句。可以指定字段以及對應的值,字段和值的順序需一一對應。當省略字段時,表示按照數據庫表中字段的順序插入相應的值。

更新數據庫表中的內容時,使用update語句,可以通過where子句指定需要更新的記錄,否則更新所有記錄;刪除數據庫表中的內容時,使用delete語句,可以通過where子句指定需要刪除的記錄,否則刪除所有記錄,但是并不會刪除表結構,注意和drop table之間的區別。

Python DB-API規范
Python提供了一個標準數據庫API,稱為DB-API,用于處理基于SQL的數據庫的訪問和操作。

DB-API在代碼與驅動程序之間提供了一個抽象層,定義了一系列必需的數據庫存取方式,使得不同的數據庫擁有統一的訪問接口,從而可以很方便的在不同的數據庫之間進行切換,而無需丟棄現有的代碼。

Python操作SQLite流程
- 導入模塊:sqlite3
- 連接數據庫得到Connection對象:sqlite3. connect(文件名)
- 獲取Cursor對象:Connection對象.cursor()
- 執行數據庫的增刪查改操作:Cursor對象.execute(sql語句)等
- 提交數據庫操作: Connection對象. commit()
- 關閉Cursor:Cursor對象.close()
- 關閉Connection:Connection對象.close()
注意:當需要對數據庫進行修改時,一定要調用commit()方法,否則不會更新數據庫。
Python操作數據庫案例



今日練習題

更多詳細內容可查看視頻講解,手把手教你學Python(入門基礎)課程完整視頻騰訊課堂鏈接:https://ke.qq.com/course/1581404?tuin=4c5cc1bc

更多Python學習資料請加入群、聯系助理老師或關注微信公眾號獲取,我們會不定期更新!
