爲何使用數據庫:
以前的學習中咱們已經能夠儲存數據、變量、讀寫本地文件(txt、csv)
1.持久化。內存中的變量當程序重啓和電腦斷電時丟失數據,而硬盤能夠長時間、持久的儲存數據。數據儲存到硬盤上的過程叫持久化。
2.數據庫更加專業強大。遠比純文本文檔、excel表格強大,增刪改查和統計函數。python
觀察表格、excel表格,打開了 學生列表.xls excel表格文檔。類比引用數據庫概念。mysql
關係型數據庫:web
(no-sql)非關係型數據庫:
7. mongodb 存儲單位是文檔,json(相似後端dict)結構整個存進去。數據常放在內存中以得到查詢性能,按期把數據持久化到硬盤上。
8. redis 鍵值對 「name」=「小明」redis
數據庫建立表示要事先告訴計算機硬盤,每張表的字段什麼類型、將要儲存的內容大仍是小。長度太小,內容值存不進去,長度太大,浪費硬盤空間。咱們須要選擇合適的類型和長度。
各數據庫字段關鍵字基本一致。經常使用字段類型以下:sql
數值
整數:經常使用INT INTEGER 佔四個字節,2**32,能夠表示經常使用範圍整數。
其餘TINYINT(1字節) SMALLINT(2字節) MEDIUMINT(3字節)
BIGINT(8字節)適用身份證號、VIP號碼比較長的編號。mongodb
浮點數
經常使用 FLOAT(4字節) 單精度小數。即便是單精度,範圍也不小。
DOUBLE(8字節) 雙精度小數。
場景 金錢計算,火箭軌道計算。數據庫
字符串
CHAR char(10) 能夠存儲長度(字節長度)不超過10的字符。例如"hello"。但因爲長度按照字節判斷,存Unicode編碼的中文只能存3個。
經常使用 VARCHAR 0-65535字節,variable char 可變字符串。 VARCHAR(5)能夠存儲5箇中文或5個英文字母。
TEXT TINYTEXT MEDIUM LONGTEXT,場景:大文本儲存,書籍文章、用戶反饋。
BLOB MEDIUM LONG,二進制文件 場景:圖片、視頻。但通常不在數據庫中存儲圖片和視頻,由於會增長數據庫的計算壓力和帶寬傳輸壓力和備份還原的難度和用戶信息靜態資源耦合到一塊,解決方案是 圖片視頻存到普通的文件目錄硬盤上,數據庫中存儲文件路徑。django
日期
DATE 日期,形如"2018-11-11"
DATETIME 日期時間, 形如"2018-11-11 11:11:11"
TIMESTAMP 時間戳, 形如 1541667299.8460715json
sqlite的字段比較簡化:
INTEGER 整數
REAL 浮點數
TEXT 字符串
NULL 什麼都不存後端
structured query language 結構化查詢語言。專門對數據庫進行查找、增長、修改、刪除、統計的操做語言。 CURD增刪改查 create update retrieve delete。 書寫風格,關鍵字大寫最好。表名大小寫都行,可是在一些數據庫中不區分大小寫。建議小寫。 基本語法。 1.查找 SELECT 字段1,字段2,字段3,…FROM 表名; python中返回值[(1, 101班, 小明, 男), (), ()]字段比較多時簡寫爲 SELECT*FROM表名; 因爲數據庫執行時會把 * 轉換爲字段再執行,性能輕微降低。 SELECT * FROM 表名 WHERE 字段1 = 過濾值, 字典二 = 過濾值; where 條件查找。 2.添加 INSERT (字段1,字段2…)INTO 表名 VALUES(1,「小明」, 「男」); 簡寫 INSERT INTO 表名 VALUES(1, 「小明」, 「男」) 3.修改 UPDATE FROM 表名 SET 字段1=新值,字段2=新值 WHERE 字段1 = 要修改的那一行那一個字段的值; 注意沒有where條件限定行的話將會更新整張表。 4.刪除 DELETE FROM 表名; 注意會刪除整張表的全部行。 DELETE FROM WHERE 字段1 = 值; 限定條件刪除某些行。 5. 建立表 CREATE TABLE 表名{ 字段類型 字段名,其餘關鍵字(主鍵 備註), INT id PRIMARY KEY, VARCHAR(20) username, }