1. 程式人生 > >Python-資料庫(程式設計)

Python-資料庫(程式設計)

1、資料庫概念

  資料庫:按照資料結構來組織,儲存,管理資料的倉庫

  按照資料模型分類:網狀資料庫,層次資料庫,關係型資料庫。

  層次資料庫:

    以樹形結構表示實體及其之間的聯絡,關係只能支援一對多。(IBM 的 IMS)

2、去IOE

  IT架構中,去掉IBM 的小型機,Oracle資料庫, EMC儲存裝置,取而代之使用自己在開源軟體基礎上開發的系統。

  去IOE 轉而使用廉價的架構,穩定性一定下降,需要較高的運維水平解決。

3、NoSQL

  NoSQL是對非SQL,非傳統關係型資料庫的統稱。

  NoSQL:非關係型,非分散式,不提供ACID 的資料庫設計模式。

  目前常用的資料庫:

    

    redis:記憶體資料庫,鍵值儲存,v 可以是任何型別
    memcached:一般用來session同步,k-v的v只能是string
    MongoDB:文件資料庫,非記憶體的

    處理大資料:
      cassandra:列儲存資料庫,不限制列數,可以根據具體情況增加列數
      HBase:列資料庫

    搜尋引擎:
      Elasticsearch: 倒排索引(反過來查),索引庫
      Solr:大資料上使用

    HIve:大資料中的,類似於資料倉庫,已經開始屬於NoSQL領域
      支援SQL,所以可以認為是關係型

    SQL:大資料領域的唯一語言
    非傳統的 關係型資料庫,統稱為NoSQL

4、MySQL

  MySQL 是一種關係型資料庫管理軟體,支援網路訪問,預設服務埠 3306

  MySQL 通訊使用mysql協議

  SQL語句:

    SQL是結構化查詢語言,Structured Query Language 1987被ISO 組織標準化

    所謂主流的關係型資料庫都支援SQL, NoSQL也有很大一部分支援SQL

    SQL語句分為
      DDL 資料定義語言:複製資料庫定義,資料庫物件定義,由CREATE,ALTER與DROP三個語法組成

      DML 資料操作語言,負責對資料庫物件的操作,CRUD增刪改查

      DCL 資料控制語言:負責資料庫許可權訪問控制,由GRANT 和REVOKE 兩個指令組成

      TCL 事務控制語言:負責處理ACID 事務,支援commit, rollback指令

    SQL語句 不區分大小寫

    SQL語句末尾應該使用分號結束

5、約束:

  primary key :主鍵,一般表中的一個欄位或者多個欄位設定為主鍵,或者聯合主鍵,主鍵的列不能包含空值null,主鍵一般是整形,長整形,且自動增長,一般表中都有主鍵

  unique key :唯一鍵,可以為空,但是不為空的不可重複。

  約束 Constraint

    定義了主鍵,就有主鍵約束

    定義了唯一鍵約束,就有唯一鍵約束

    外來鍵約束:

      外來鍵:在表B 中的列,關聯表A 中的主鍵 ,表B中的列就是外來鍵

      A表稱為主表,B表稱為從表

      插入規則:

        不要定義

        如果在表B中插入一條資料,B的外來鍵列插入了一個值,這個值必須是表A中存在的主鍵值

        更新規則:

        定義外來鍵約束時指定該規則

        刪除規則:

        定義外來鍵約束時指定該規則:

        外來鍵約束的操作:

        CASCADE:從父表刪除或更新會自動刪除或更新字表中匹配的行。

        SET NULL :從父表刪除或更新行,會設定子表中的外來鍵列為NULL,但必須保證子表列沒有指定NOT NULL,

        RESTRIC:如果從父表刪除主鍵,如果子表引用了,則拒絕對父表的刪除或更新操作

        NO ACTION:標準SQL的關鍵字,在MySQL中與RESTRIC相同,拒絕對父表的刪除或更新操作。

        外來鍵約束,是為了保證資料完整性,一致性,杜絕資料冗餘,資料訛誤

6、檢視:    

  檢視,也稱為虛表,查詢語句生成的,可以通過檢視程序CRUD操作

  檢視的作用:

    簡化操作,將複雜查詢SQL語句定義為檢視,可以簡化查詢

    資料安全,檢視可以只顯示真實表的部分列,或計算後的結果,從而隱藏真實表的資料 

7、資料型別:

  

  

  LENGTH函式返回位元組數,

  char 可以將字串變成等長,這樣每個偏移量是一樣的,空間換時間,效率極高varchar變長。

  

8、關係操作:

  關係:在關係資料庫中,關係就是二維表

  關係操作就是對錶的操作

  選擇:又稱為限制,是從關係中選擇出滿足給定條件的元組

  投影:在關係投影就是從選擇出若干屬性列組成新的關係

  連線(join):將不同的兩個關係連線成一個關係

9、DML---CRUD增刪改查

  INSERT INTO log (id,name, logname, password) VALUES(1,'jack', 'jakc', 'kacl') ON DUPLICATE KEY UPDATE name='lucy';

  如果主鍵,唯一鍵衝突,就執行update後面的設定。

  INSERT IGNORE INTO log (id) VALUE(1);

  如果主鍵,唯一鍵衝突,就忽略