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.02)安裝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、內建函式、lambda、hashlib模組、md5加密、python安裝第三方模組、操作mysql資料庫
#遞迴就是函式自己調自己,一般遞迴都會有在什麼情況下結束遞迴,一業可以有結束條件#遞迴最多死迴圈999次,遞迴不能設定次數# count=0# def abc():# global count# count+=1# print(count)# print('abc')#