1. 程式人生 > >mysql安裝、資料庫、ORM

mysql安裝、資料庫、ORM

python如何操作資料庫(如SQLite、MySQL)?


SQLite

SQLite的驅動內建在Python標準庫中,所以我們可以直接來操作SQLite資料庫。

使用Python的DB-API時,只要搞清楚Connection和Cursor物件,開啟後一定記得關閉,就可以放心地使用。

使用Cursor物件執行insert,update,delete語句時,執行結果由 rowcount 返回影響的行數,就可以拿到執行結果。

使用Cursor物件執行select語句時,通過featchall()可以拿到結果集。結果集是一個list,每個元素都是一個tuple,對應一行記錄。如果SQL語句帶有引數,那麼需要把引數按照位置傳遞給execute()方法,有幾個“?”佔位符

就必須對應幾個引數,例如:

cursor.execute('select * from user where id=?', '1')
cursor.execute("select * from user where id='1'")
cursor.execute('select * from user where id=/'1/'')
注意:上面的三條語句是等價的。有意思的是,當用雙引號時,特殊字元是不需要轉義的(而單引號需要)。

SQLite支援常見的標準SQL語句以及幾種常見的資料型別。

mysql安裝(所有檔案已經上傳百度雲mysql目錄)

1)安裝mysql,檔案:mysql-installer-community-5.6.24.0

2)安裝python MySQL驅動,檔案:mysql-connector-python-2.0.4-py2.7

3)安裝SQLAlchemy,檔案:SQLAlchemy.zip

  • 解壓到任一資料夾目錄下,命令列下 切換到這一目錄;
  • 執行python set_up.py install (python執行檔案模式下,而非命令列互動模式下)

另外,如何不通過python介面操作MySQL,參考21分鐘MySQL入門教程,看看安裝部分。

有兩點值得注意,

第一點,所有的操作都是針對某個具體的資料庫,有兩種方式實現:

         一: 在登入資料庫時指定, 命令: mysql -D 所選擇的資料庫名 -h 主機名 -u 使用者名稱 -p

               例如登入時選擇建立的資料庫samp_db: mysql -D samp_db -u root -p

               當然,第一次使用MySQL需要先建立一個數據庫之後才能用這種方法!

         二: 在登入後使用 use 語句指定, 命令:   use 資料庫名 ;

               use 語句可以不加分號, 執行 use samp_db 來選擇剛剛建立的資料庫, 選擇成功後會提示: Database changed

第二點,關於環境變數path的配置沒有那麼複雜,直接在path系統變數新增上MySQL安裝目錄裡bin資料夾的完整目錄即可。

MySQL免安裝版本

1. 解壓在C盤(其他也可以)Program Files下,資料夾為mysql


2. 配置檔案:把my-small.ini重新命名為my.ini,並新增如下配置


3. 配置環境變數:Path系統變數新增安裝目錄下(C:\Program Files\mysql)的bin資料夾


4. 管理員身份執行cmd.exe:

    1)sc delete MySQL:確保MySQL服務被刪除;

    2)務必切換到C:\Program Files\mysql\bin目錄下(否則會出現錯誤),執行 mysqld --install MySQL --defaults-file="c:\Program Files\mysql\my.ini"

    3)  net start MySQL:啟動MySQL服務;

    4)net stop MySQL:終止MySQL服務。


ORM:Object-Relational Mapping,把關係資料庫的表結構對映到物件上

最有名的ORM框架是SQLAlchemy。

值得注意的是,SQLAlchemy操作的物件是個表,且這個表必須是已經建立的(可以未儲存資料),建立表的資料庫在建立引擎時與SQLAlchemy連線,這是資料庫和SQLAlchemy互動的前提。這在自定義類時必須宣告。


class User(Base):
    # 表的名字:
    __tablename__ = 'user'
    ......

表user就是我們之前建立在MySQL中的(利用MySQL建立表user)。
如何利用python通過SQLAlchemy來操縱資料庫?

很顯然,sessionmaker是很重要的一環,它是溝通python和資料庫的橋樑。當然建立sessionmaker,還要引擎(實質就是上圖中大方框中的內容的集合)的幫助。根據sessionmaker和引擎創建出(溝通python和資料庫的)類,利用此類創建出例項,然後所有的操作都由該例項的相應方法完成。

程式碼:

# -*- coding:utf-8 -*-

#ORM:把資料庫表的行與相應的物件建立關聯,互相轉換。

# 匯入:
from sqlalchemy import Column, String, create_engine
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base

# 建立物件的基類:
Base = declarative_base()

# 定義User物件(用於對每個表list的每個元素(tuple)進行初始化,如User('1', 'Michael')):
class User(Base):
    # 表的名字:
    __tablename__ = 'user'

    # 表的結構:
    id = Column(String(20), primary_key=True)
    name = Column(String(20))

# 建立引擎,與指定資料庫連線:
engine = create_engine('mysql+mysqlconnector://root:[email protected]:3306/test')
# 建立DBSession類
DBSession = sessionmaker(bind=engine)

#
#有了ORM,我們向資料庫表中新增一行記錄,可以視為新增一個User物件
#
# 建立session例項,與資料庫對話、互動:
session = DBSession()
# 建立新User物件:
new_user = User(id='6',name='zhuma')
# 新增到session:
session.add(new_user)
# 提交即儲存到資料庫:
session.commit()
# 關閉session:
session.close()

# 建立Session:
session = DBSession()
# 建立Query查詢,filter是where條件,最後呼叫one()返回唯一行,如果呼叫all()則返回所有行:
usr = session.query(User).filter(User.id=='6').one()
# 列印型別和物件的name屬性:
print 'type:', type(usr)
print 'name:', usr.name
# 關閉Session:
session.close()

相關推薦

mysql安裝資料庫ORM

python如何操作資料庫(如SQLite、MySQL)? SQLite SQLite的驅動內建在Python標準庫中,所以我們可以直接來操作SQLite資料庫。 使用Python的DB-API時,只要搞清楚Connection和Cursor物件,開啟後一定記得關閉,就

【轉】資料庫介紹(MySQL安裝 體系結構基本管理)

【轉】資料庫介紹(MySQL安裝 體系結構、基本管理) 第1章 資料庫介紹及mysql安裝   1.1 資料庫簡介   資料庫,簡而言之可視為電子化的檔案櫃——儲存電子檔案的處所,使用者可以對檔案中的資料執行新增、擷取、更新、刪除等操作。   所謂“資料庫”系以一定方式儲存在一起、能予多個

MySQL安裝(yum二進制源碼)

ext libc xtra utf8 9.1 useradd 1.7 temporary align MySQL安裝(yum、二進制、源碼) 目錄   1.1 yum安裝... 2   1.2 二進制安裝-mysql-5.7.17. 3 1.2.1 準備工作... 3

數據庫介紹(MySQL安裝 體系結構基本管理)

pat login 思路 第一個 配置 centos5 info 包括 shel 閱讀目錄 1.1 數據庫簡介 1.2 數據庫相關產品 1.3 Mysql簡介 1.4 mysql數據庫的安裝 1.5 mysql 5.7版本安裝說明 2.1 客戶端與服務器

MySQL 連線本地資料庫遠端資料庫命令

一、MySQL 連線本地資料庫,使用者名稱為“root”,密碼“123”(注意:“-p”和“123” 之間不能有空格) C:/>mysql -h localhost -u root -p123 二、MySQL 連線遠端資料庫(192.168.0.201),埠“330

mysql如何建立資料庫建立表

mysql建立表之前要建立資料庫,也就是我們常說的例項,如果已經有例項,則在建表前使用"use+例項"語句即可。 下面直接通過舉例來說明,一眼就能看明白。 一、建立資料庫 建立一個例項名為dpzs的庫, CREATE DATABASE /*!32312 IF NOT EXI

MySQL入門--建立資料庫顯示警告資訊顯示資料庫顯示資料庫建立資訊指定字元編碼集

1、建立資料庫: CREATE DATABASE t1;  同一條語句不能寫兩次,也就是不能建立,否則會提示錯誤警告 2、顯示警告資訊: SHOW WARNINGS; 3、顯示所有的

除錯經驗——建立個人的知識庫(資料表資料庫部落格微博等)的意義

大學四年,記住的老師的話並不多,但有一句至今難忘。 那是大三電子電路實驗課中有一節的內容是組裝一臺收音機,那位試驗老師對我們說“你們一定要注意儲存好自己的學習成果,不斷積累,這個非常重要!”。 所以,畢業十幾年以來,別的東西沒有積累多少,各種資料倒是積累了不少,至於有多少價值,那是另一回

前端資料庫Django簡單的練習

一、前端 1、前端頁面由哪幾層構成,分別是什麼,作用是什麼?   分為:結構層(html),表示層(css),行為層(js)。   結構層   超文字標記語言。由HTML或XHTML之類的標記語言負責建立。標籤,也就是那些出現在括號裡的單詞,對網頁內容的語義做出了描述,但這些標籤不包含任何關於如何顯示

自考總結(網管資料庫軟工)

準備時間 從暑假開始三科自考的學習到考試前一週,每天基本是2-3小時時間學習,除了每週一天的假期。考試那一週基本上一天的投入是5-7小時吧。 各階段學習 第一階段:快速閱讀,巨集觀把控,畫整體思維導圖。

寫了個Android聊天客戶端框架,基本聊天功能資料庫伺服器都有。大家可以看一看。已經開源

寫了個Android聊天客戶端框架,基本聊天功能、資料庫、伺服器都有。大家可以看一看。已經開源(希望兩個手機通訊的話,改一下pushid就可以) 幾點說明: 1:包含的基本功能。: 1.1比如gif動態表情展示、語音、聊天表情、拍照、多圖的傳送、大圖片的處理、listview快取的處理等。 &n

對SQL簡單介紹資料庫表的簡單操作

1.SQL語句簡單介紹: SQL(結構化查詢語言(Structured Query Language))包含6個部分(資料查詢語言DQL、資料操作語言DML、資料定義語言DDL、事務處理語言TPL、資料控制語言DCL、指標控制語言CCL),在Java中常用的有三種,DQL

MYSQL安裝示例資料庫

MYSQL官方提供了示例資料庫,用於測試研究使用。預設這個示例不安裝,需要後續手動安裝。安裝教程及遇到的問題做如下總結: 下載 解壓 tar -xjf $HOME/Downloads/employees_db-full-1.0.6.tar.bz2

【無私分享:從入門到精通ASP.NET MVC】從0開始,一起搭框架做專案 (16)原始碼分享二:登入功能以及UI資料庫倉儲原始碼分享

1 using Common; 2 using Service.IService; 3 using System; 4 using System.Collections.Generic; 5 using System.Linq; 6 using System.Web;

PostgreSQL表空間資料庫模式使用者/角色之間的關係

    而template1資料庫的預設表空間是pg_default,這個表空間是在資料庫初始化時建立的,所以所有template1中的物件將被同步克隆到新的資料庫中。    相對完整的語法應該是這樣的:CREATE DATABASE dbname OWNER kanon TEMPLATE template1

mongodb概念--文件集合資料庫shell

Mongodb不是關係型資料庫,對於使用關係型資料庫較多的我們,mongodb的一些基本概念需要好好的理解。在理解這些概念的時候,我是以與關係型資料庫等對比的方式來理解的,這樣有助對概念的更好理解。 1.文件   文件時mongodb中資料的基本單元,類似關係型資料庫中的行

Python 總結(後端開發運維資料庫AI方向)

Python 基礎篇 目錄 3 專案架構 4 效能優化 8 SSH 1 知識點 1 Tornado 概述 tornado 是實時 web 服務的理想框架,處理高併發等

Day51資料庫遠端連線伺服器查詢select語句form字句where字句order by 子句

一、  資料庫介紹 1、資料庫簡介 設計資料庫要保證冗餘(重複)度小,資料的完整性   一套軟體 UI、業務邏輯層、持久層   DB(database):資料庫  DBMS(databasemanagement system):資料庫管理系統   DBA:資料庫管理員  

mysql5.7 使用者資料庫許可權常用操作

mysql 使用者、資料庫、許可權常用操作 系統資訊 作業系統: macOS High Sierra 10.13.6 mysql版本: MySQL Community Server 5.7.18 登入 使用root 使用者登入mysql

遞迴os.walk內建函式lambdahashlib模組md5加密python安裝第三方模組操作mysql資料庫

#遞迴就是函式自己調自己,一般遞迴都會有在什麼情況下結束遞迴,一業可以有結束條件#遞迴最多死迴圈999次,遞迴不能設定次數# count=0# def abc():# global count# count+=1# print(count)# print('abc')#