數據庫介紹經常使用數據庫,SQL增刪改查

引題

爲何使用數據庫:
以前的學習中咱們已經能夠儲存數據、變量、讀寫本地文件(txt、csv)
1.持久化。內存中的變量當程序重啓和電腦斷電時丟失數據,而硬盤能夠長時間、持久的儲存數據。數據儲存到硬盤上的過程叫持久化。
2.數據庫更加專業強大。遠比純文本文檔、excel表格強大,增刪改查和統計函數。python

數據庫基本概念

觀察表格、excel表格,打開了 學生列表.xls excel表格文檔。類比引用數據庫概念。mysql

  1. 庫:schema 整個表格文檔。好像一個物流公司共佔地100畝,蓋了50個倉庫,A01倉庫負責存儲河南貨物,A02倉庫負責存儲廣州xx項目物料。每個倉庫對應一個項目。
  2. 表:table 對應ecxel表格裏sheet1 sheet2.由行內容和列組成。表示描述一個類,每一行描述一個對象。
  3. 字段 field :對應表格頭部的 序號、班級、姓名。好像類的屬性。字段裏儲存的值的類型須要事先定義。
  4. 值 value:表格每一行具體儲存的信息。
  5. 主鍵 primary key:相似表格中 序號 這一列。數據庫中這一列會自增並不會重複。
  6. 外鍵 foreign key: 表一里的一個字段引用另外一個表班級信息表的id列。優勢易於維護,保持數據一致性。
  7. 範式:描述 智遊學校時,能夠把所有信息字段定義到一張表上,也能夠分爲學員信息表、班級信息表、課程信息表。劃分維度、信息耦合度可高可低,具體結合業務邏輯分析。

常見數據庫介紹

關係型數據庫:web

  1. sqlite:輕量級數據庫。功能基礎簡單,在數據較少狀況下性能並不比重型數據庫低。優勢,python解釋器內置驅動,無需安裝直接使用,適合初學者數據庫。手機應用使用的就是它。
  2. mysql:最流行的數據庫。中型。開源
  3. postgreSQL:大象數據庫,號稱最早進的數據庫。從大學興起的開源數據庫、架構優秀、功能前衛,數據量很大的時候,性能衰減不明顯。消耗相同硬件資源的狀況下性能和穩定性優於mysql數據庫。django odoo等python框架官方推薦使用此數據庫。可是目前市場佔有率還不高。
  4. oracle:地位很高的商用數據庫。昂貴,穩定,常與Java配合使用。
  5. DB2 sybase MSSQL等,其餘的商業數據庫。
  6. access:微軟office套件中包含,輕量,因爲數據庫門檻,使用者很少。

(no-sql)非關係型數據庫:
7. mongodb 存儲單位是文檔,json(相似後端dict)結構整個存進去。數據常放在內存中以得到查詢性能,按期把數據持久化到硬盤上。
8. redis 鍵值對 「name」=「小明」redis

數據庫字段類型

數據庫建立表示要事先告訴計算機硬盤,每張表的字段什麼類型、將要儲存的內容大仍是小。長度太小,內容值存不進去,長度太大,浪費硬盤空間。咱們須要選擇合適的類型和長度。
各數據庫字段關鍵字基本一致。經常使用字段類型以下:sql

  1. 數值
    整數:經常使用INT INTEGER 佔四個字節,2**32,能夠表示經常使用範圍整數。
    其餘TINYINT(1字節) SMALLINT(2字節) MEDIUMINT(3字節)
    BIGINT(8字節)適用身份證號、VIP號碼比較長的編號。mongodb

  2. 浮點數
    經常使用 FLOAT(4字節) 單精度小數。即便是單精度,範圍也不小。
    DOUBLE(8字節) 雙精度小數。
    場景 金錢計算,火箭軌道計算。數據庫

  3. 字符串
    CHAR char(10) 能夠存儲長度(字節長度)不超過10的字符。例如"hello"。但因爲長度按照字節判斷,存Unicode編碼的中文只能存3個。
    經常使用 VARCHAR 0-65535字節,variable char 可變字符串。 VARCHAR(5)能夠存儲5箇中文或5個英文字母。
    TEXT TINYTEXT MEDIUM LONGTEXT,場景:大文本儲存,書籍文章、用戶反饋。
    BLOB MEDIUM LONG,二進制文件 場景:圖片、視頻。但通常不在數據庫中存儲圖片和視頻,由於會增長數據庫的計算壓力和帶寬傳輸壓力和備份還原的難度和用戶信息靜態資源耦合到一塊,解決方案是 圖片視頻存到普通的文件目錄硬盤上,數據庫中存儲文件路徑。django

  4. 日期
    DATE 日期,形如"2018-11-11"
    DATETIME 日期時間, 形如"2018-11-11 11:11:11"
    TIMESTAMP 時間戳, 形如 1541667299.8460715json

  5. sqlite的字段比較簡化:
    INTEGER 整數
    REAL 浮點數
    TEXT 字符串
    NULL 什麼都不存後端

SQL

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, }

相關文章
相關標籤/搜索