Python淺談-Python操作數(shù)據(jù)庫(kù)之MySQL(1) 一、SQL: 關(guān)系型數(shù)據(jù)庫(kù),是指采用了關(guān)系模型來(lái)組織數(shù)據(jù)的數(shù)據(jù)庫(kù),其以行和列的形式存儲(chǔ)數(shù)據(jù),以便于用戶理解,關(guān)系型數(shù)據(jù)庫(kù)這一系列的行和列被稱(chēng)為表,一組表組成了數(shù)據(jù)庫(kù)。用戶通過(guò)查詢來(lái)檢索數(shù)據(jù)庫(kù)中的數(shù)據(jù),而查詢是一個(gè)用于限 定數(shù)據(jù)庫(kù)中某些區(qū)域的執(zhí)行代碼。關(guān)系模型可以簡(jiǎn)單理解為二維表格模型,而一個(gè)關(guān)系型數(shù)據(jù)庫(kù)就是由二維表及其之間的關(guān)系組成的一個(gè)數(shù)據(jù)組織; 常見(jiàn)的關(guān)系型數(shù)據(jù)庫(kù)有:Oracle、DB2、Microsoft SQL Server、Microsoft Access、MySQL等。
二、MySQL簡(jiǎn)介: MySQL是一個(gè)關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),由瑞典MySQLAB公司開(kāi)發(fā),屬于Oracle旗下產(chǎn)品。MySQL 是最流行的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)之一,在 WEB 應(yīng)用方面,MySQL是最好的 RDBMS(Relational Database Management System, 關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)) 應(yīng)用軟件之一; MySQL所使用的 SQL(Structured Query Language,是1974年由Boyce和Chamberlin提出的一種介于關(guān)系代數(shù)與關(guān)系演算之間的結(jié)構(gòu)化查詢語(yǔ)言,是一個(gè)通用的、功能極強(qiáng)的關(guān)系性數(shù)據(jù)庫(kù)語(yǔ)言。) 語(yǔ)言是用于訪問(wèn)數(shù)據(jù)庫(kù)的最常用標(biāo)準(zhǔn) 化語(yǔ)言。MySQL 軟件采用了雙授權(quán)政策,分為社區(qū)版和商業(yè)版,由于其體積小、速度快、總體擁有成本低,尤其是開(kāi)放源碼這一特點(diǎn),一般中小型網(wǎng)站的開(kāi)發(fā)都選擇 MySQL 作為網(wǎng)站數(shù)據(jù)庫(kù);
三、MySQL的安裝與使用: 可以使用的版本有MySQL社區(qū)版本和MariaDB兩個(gè)版本,MySQL下載的地址為 https://dev./downloads/mysql/,MariaDB下載的地址為 https://downloads./ ,選擇合適的版本下載安裝即可; 關(guān)于MariaDB與MySQL的關(guān)系可以參考 https://baike.baidu.com/item/mariaDB/6466119?fr=aladdin;
四、MySQL運(yùn)行的原理: 1.存儲(chǔ)引擎? 對(duì)表中數(shù)據(jù)的讀取和寫(xiě)入的程序,默認(rèn)為InnoDB(其他MyISAM、Memory),將表中的數(shù)據(jù)存儲(chǔ)到磁盤(pán); 以頁(yè)作為磁盤(pán)和內(nèi)存之間交互的基本單位,InnoDB中頁(yè)的大小一般為16KB; 一次最少把內(nèi)存中的16KB內(nèi)容刷新到磁盤(pán)中,每一行都有固定的格式;
圖 1 數(shù)據(jù)引擎所處的位置 2.事務(wù)的概念: <1>.什么是事務(wù): 操作數(shù)據(jù)庫(kù)從讀取到寫(xiě)入的整個(gè)流程,一組原子性的sql查詢, 或者說(shuō)一個(gè)獨(dú)立的工作單元。 <2>.事務(wù)的特性: 原子性 Atomic 一致性 Consistency 隔離性 Isolation 持久性 Durable
五、使用Python操作MySQL數(shù)據(jù)庫(kù)——SQLAIchemy: 1.SQLAIchemy? Python SQL工具包和對(duì)象關(guān)系映射器; SQLAlchemy是Python SQL工具包和對(duì)象關(guān)系映射器,它為應(yīng)用程序開(kāi)發(fā)人員 提供了SQL的全部功能和靈活性 ; 它提供了一套眾所周知的企業(yè)級(jí)持久性模式, 專(zhuān)為高效和高性能的數(shù)據(jù)庫(kù)訪問(wèn)而設(shè)計(jì) ,適用于簡(jiǎn)單且Python化的領(lǐng)域語(yǔ)言; 作者:Mike Bayer 博客:https://techspot./
2.SQLAIchemy的使用思路(主要函數(shù)介紹): declarative_base() ->創(chuàng)建基類(lèi) class -> 數(shù)據(jù)類(lèi) ->Table create_engine -> 數(shù)據(jù)庫(kù)引擎連接數(shù)據(jù)庫(kù) session -> 創(chuàng)建會(huì)話,類(lèi)似事務(wù) object -> 創(chuàng)建數(shù)據(jù)對(duì) query -> 各種查詢操作
3.Python操作: 下面是一個(gè)以主機(jī)和管理員多對(duì)多關(guān)系的一個(gè)簡(jiǎn)單的案例:
pip install SQLAIchemy # 安裝庫(kù)
__EOF__ 作 者:catt1e |
|
來(lái)自: 文炳春秋 > 《Python資料》