偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

如何使用Python連接MySQL數(shù)據(jù)庫?

開發(fā) 后端
數(shù)據(jù)分析離不開數(shù)據(jù)庫,如何使用python連接數(shù)據(jù)庫呢?聽我娓娓道來哈!

該筆記參考了PyMySQL官方文檔和《python數(shù)據(jù)采集》關(guān)于數(shù)據(jù)存儲(chǔ)的部分,歡迎大家去閱讀原著,相信會(huì)理解的更加透徹。 

補(bǔ)充:文末增加Oracle數(shù)據(jù)庫的連接方式,大同小異。

背景:

我是在Anaconda notebook中進(jìn)行連接實(shí)驗(yàn)的,環(huán)境Python3.6,當(dāng)然也可以在Python Shell里面進(jìn)行操作。

最常用也最穩(wěn)定的用于連接MySQL數(shù)據(jù)庫的python庫是PyMySQL,所以本文討論的是利用PyMySQL連接MySQL數(shù)據(jù)庫,以及如何存儲(chǔ)數(shù)據(jù)。 

下面開始:

1、安裝PyMySQL庫

最簡單的方式:在命令行輸入 pip install pymysql

或者:下載whl文件進(jìn)行安裝,安裝過程自行百度。

2、安裝MySQL數(shù)據(jù)庫

MySQL數(shù)據(jù)庫類型有兩種:MySQL和MariaDB,我用的是后者M(jìn)ariaDB。

兩者在絕大部分性能上是兼容的,使用起來感覺不到啥區(qū)別。

給出下載地址:MySQL,MariaDB,安裝過程很簡單,一路Next Step,不過要記好密碼。

有個(gè)小插曲,MySQL和MariaDB相當(dāng)于姐姐妹妹的關(guān)系,兩者由同一個(gè)人(Widenius)創(chuàng)建的。MySQL被Oracle收購后,Widenius先生覺得不爽,于是搞了個(gè)MariaDB,可以完全替代MySQL。大牛就是任性。

3、SQL基本語法

下面要用SQL的表創(chuàng)建、查詢、數(shù)據(jù)插入等功能,這里簡要介紹一下SQL語言的基本語句。

查看數(shù)據(jù)庫:SHOW DATABASES;

創(chuàng)建數(shù)據(jù)庫:CREATE DATEBASE 數(shù)據(jù)庫名稱;

使用數(shù)據(jù)庫:USE 數(shù)據(jù)庫名稱;

查看數(shù)據(jù)表:SHOW TABLES;

創(chuàng)建數(shù)據(jù)表:CREATE TABLE 表名稱(列名1 (數(shù)據(jù)類型1),列名2 (數(shù)據(jù)類型2));

插入數(shù)據(jù):INSERT INTO 表名稱(列名1,列名2) VALUES(數(shù)據(jù)1,數(shù)據(jù)2);

查看數(shù)據(jù):SELECT * FROM 表名稱;

更新數(shù)據(jù):UPDATE 表名稱 SET 列名1=新數(shù)據(jù)1,列名2=新數(shù)據(jù)2 WHERE 某列=某數(shù)據(jù);

4、連接數(shù)據(jù)庫

安裝好必要得文件和庫后,接下來正式開始連接數(shù)據(jù)庫吧,雖然神秘卻不難哦! 

  1. #首先導(dǎo)入PyMySQL庫 
  2. import pymysql 
  3. #連接數(shù)據(jù)庫,創(chuàng)建連接對象connection 
  4. #連接對象作用是:連接數(shù)據(jù)庫、發(fā)送數(shù)據(jù)庫信息、處理回滾操作(查詢中斷時(shí),數(shù)據(jù)庫回到最初狀態(tài))、創(chuàng)建新的光標(biāo)對象 
  5. connection = pymysql.connect(host = 'localhost' #host屬性 
  6.                              user = 'root' #用戶名  
  7.                              password = '******'  #此處填登錄數(shù)據(jù)庫的密碼 
  8.                              db = 'mysql' #數(shù)據(jù)庫名 
  9.                              ) 

執(zhí)行這段代碼就連接好了!

5.使用python代碼操作MySQL數(shù)據(jù)庫

首先來查看一下有哪些數(shù)據(jù)庫:

#創(chuàng)建光標(biāo)對象,一個(gè)連接可以有很多光標(biāo),一個(gè)光標(biāo)跟蹤一種數(shù)據(jù)狀態(tài)。

#光標(biāo)對象作用是:、創(chuàng)建、刪除、寫入、查詢等等

cur = connection.cursor()

#查看有哪些數(shù)據(jù)庫,通過cur.fetchall()獲取查詢所有結(jié)果

print(cur.fetchall())

打印出所有數(shù)據(jù)庫:

(('information_schema',),

('law',),

('mysql',),

('performance_schema',),

('test',))

在test數(shù)據(jù)庫里創(chuàng)建表: 

  1. #使用數(shù)據(jù)庫test 
  2. cur.execute('USE test'
  3. #在test數(shù)據(jù)庫里創(chuàng)建表student,有name列和age列 
  4. cur.execute('CREATE TABLE student(name VARCHAR(20),age TINYINT(3))'

向數(shù)據(jù)表student中插入一條數(shù)據(jù): 

  1. sql = 'INSERT INTO student (name,age) VALUES (%s,%s)' 
  2. cur.execute(sql,('XiaoMing',23)) 

查看數(shù)據(jù)表student內(nèi)容: 

  1. cur.execute('SELECT * FROM student'
  2. print(cur.fetchone()) 

打印輸出為:('XiaoMing', 23)

Bingo!是我們剛剛插入的一條數(shù)據(jù)

最后,要記得關(guān)閉光標(biāo)和連接: 

  1. #關(guān)閉連接對象,否則會(huì)導(dǎo)致連接泄漏,消耗數(shù)據(jù)庫資源 
  2. connection.close() 
  3. #關(guān)閉光標(biāo) 
  4. cur.close() 

OK了,整個(gè)流程大致如此。當(dāng)然這里都是很基礎(chǔ)的操作,更多的使用方法需要在PyMySQL官方文檔里去尋找。

補(bǔ)充:

Oracle數(shù)據(jù)庫連接 

1、下載安裝外包c(diǎn)x_Oracle,方式:在命令行輸入 pip install cx_Oracle

2、連接 

  1. conn = oracle.connect('username/password@host:port/sid')#分別填用戶名/密碼/數(shù)據(jù)庫所在IP地址:port/sid 

3、獲取光標(biāo)對象curser 

  1. cur = conn.cursor() 

4、使用cursor進(jìn)行各種操作 

  1. cur.execute(sql語句)    

5、關(guān)閉cursur、conn 

  1. cursor.close() 
  2. conn.close() 

 【編輯推薦】

 

責(zé)任編輯:華軒 來源: 今日頭條
相關(guān)推薦

2017-11-27 11:41:06

python數(shù)據(jù)庫數(shù)據(jù)分析

2024-01-02 08:47:42

2009-11-24 16:48:15

PHP mysqli

2010-05-14 11:12:16

連接MySql

2020-11-23 14:16:42

Golang

2017-09-11 19:30:44

MySQLCmd命令連接數(shù)據(jù)庫

2020-09-22 15:56:31

Java

2011-05-26 13:42:50

MFC連接MySql數(shù)據(jù)庫

2018-02-26 20:00:00

編程語言JavaMySQL

2009-07-07 14:56:33

JSP連接MySQL

2009-06-01 09:57:43

netbeans連接數(shù)netbeans數(shù)據(jù)庫netbeans連接m

2010-10-12 16:55:50

MYSQL命令行

2017-06-22 14:13:07

PythonMySQLpymysqlpool

2011-07-27 13:58:48

EclipseMySQL

2009-07-06 17:23:34

JDBC連接數(shù)據(jù)庫

2011-03-16 17:14:17

JavaBean數(shù)據(jù)庫

2010-06-07 15:24:34

Java連接MYSQL

2009-01-19 09:14:31

.NETMySQLMySql驅(qū)動(dòng)包

2009-12-31 11:07:33

連接ADO.NET

2011-07-05 10:16:16

Qt 數(shù)據(jù)庫 SQLite
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號