㈠ python使用資料庫
增加一條數據
importpymysql
#返回Connection對象
#host="localhost"
con=pymysql.connect(host="192.168.31.28",
port=3306,user="atguigu",
password="atguigu",
db="atguigudb",
charset="utf8")
#返回cursor對象
cursor=con.cursor()
#SQL語言-SQL語句
sql="insertintostudents(name)value('李四')"
#插入數據
cursor.execute(sql)
#提交數據,沒有提交就沒有數據
con.commit()
#關閉釋放資源
cursor.close()
#關閉資源
con.close()
修改數據
importpymysql
#修改任意一條數據
#返回Connection對象
conn=pymysql.connect(
host="192.168.31.28",
db="atguigudb",
port=3306,
user="atguigu",
password="atguigu",
charset="utf8"
)
cursor=conn.cursor()
sql="updatestudentssetname='郭靖'whereid=1"
count=cursor.execute(sql)
print("count=",count)
#提交正常數據物理上修改了
conn.commit()
cursor.close()
conn.close()
刪除數據
importpymysql
#修改任意一條數據
#返回Connection對象
conn=pymysql.connect(
host="192.168.31.28",
db="atguigudb",
port=3306,
user="atguigu",
password="atguigu",
charset="utf8"
)
cursor=conn.cursor()
sql="deletefromstudentswhereid=20"
count=cursor.execute(sql)
print("count=",count)
conn.commit()
cursor.close()
conn.close()
查詢一條數據
importpymysql
try:
conn=pymysql.connect(
host='192.168.31.28',
port=3306,
db='atguigudb',
user='atguigu',
passwd='atguigu',
charset='utf8'
)
cursor=conn.cursor()
cursor.execute('select*fromstudentswhereid=3')
#返回滿足這個條件的這個數據,如果有多條返回第一條,並且封裝元組中
result=cursor.fetchone()
print(result)
foriinresult:
print(i)
cursor.close()
conn.close()
exceptExceptionase:
print(e.message)
查詢多條數據
importpymysql
try:
conn=pymysql.connect(
host='192.168.31.28',
port=3306,
db='atguigudb',
user='atguigu',
passwd='atguigu',
charset='utf8'
)
cursor=conn.cursor()
cursor.execute('select*fromstudents')
#返回元組,如果多條數據,元組裡面嵌套元組
result=cursor.fetchall()
print(result)
foriinresult:
print(i)
conn.commit()
cursor.close()
conn.close()
exceptExceptionase:
print(e.message)
讀取mysql數據,填寫數據到excel
frompyexcel_xlsimportsave_data
frompyexcel_xlsimportget_data
importmysql.connector
#和資料庫建立連接
cnx=mysql.connector.connect(user='root',password='',
host='127.0.0.1',
database='test')
#查詢語句
sql="selectmy_name,my_valuefromtbl_members"
#執行查詢
cursor.execute(sql)
#獲得查詢結果
result=cursor.fetchall()
cursor.close()
cnx.close()
#打開預定義表頭文件
xls_header=get_data("d:/xh.xls")
#獲得表頭數據
xh=xls_header.pop("Sheet1")
#拼接整表數據
xd=OrderedDict()
xd.update({"Sheet1":xh+result})
#保存到另一個文件中
save_data("d:/xd.xls",xd)
㈡ python和資料庫比哪個處理數據塊
Python與R相比速度要快。Python可以直接處理上G的數據;R不行,R分析數據時需要先通過資料庫把大數據轉化為小數據(通過groupby)才能交給R做分析,因此R不可能直接分析行為詳單,只能分析統計結果。所以有人說:Python=R+SQL/Hive,並不是沒有道理的。
Python的一個最明顯的優勢在於其膠水語言的特性,很多書里也都會提到這一點,一些底層用C寫的演算法封裝在Python包里後性能非常高效
(Python的數據挖掘包Orange canve
中的決策樹分析50萬用戶10秒出結果,用R幾個小時也出不來,8G內存全部占滿)。但是,凡事都不絕對,如果R矢量化編程做得好的話(有點小難度),會
使R的速度和程序的長度都有顯著性提升。
㈢ python把爬到的數據放到資料庫
去裝一個 pymsql包
然後
import pymysql #導入pymsql模塊 #鏈接資料庫,注意port是int型,不是str,所以不要用引號conn = pymysql.connect( user='root', password='root', host='127.0.0.1', port=3306, database='test_demo', use_unicode=True, charset="utf8" )#獲取游標cursor = conn.cursor()#插入數據,注意看有變數的時候格式cursor.execute("INSERT INTO tieba_user(`uuid`,`user_name`,`user_rank`,`user_level`,`level_status`,`tieba_name`) VALUES (%s,%s,%s,%s,%s,%s)", (user_id, user_name, user_rank, user_level, level_statu, tieba_name))#提交conn.commit()#關閉連接cursor.close()
類似這樣
㈣ python如何訪問資料庫
1.背景:
python提供了很多資料庫介面, 常用的資料庫有 MS SQL Server /mysql /oracle 等。
打開鏈接 https://wiki.python.org/moin/DatabaseInterfaces
是python 關於資料庫介面的一個總結 , 可以看到python支持的訪問的資料庫系統。
2.模塊:
python 主要是通過模塊和資料庫連接的。
2.1 安裝模塊:
如果使用anconda,本身就會集合很多模塊,不需要手動安裝。如果用pycharm就要手動安裝模塊。
安裝模塊流程:
下載模塊擴展包放到路徑下——>cmd找到相應路徑——> pip install +擴展包名字
下面列舉一些常用連接資料庫的模塊:pymssql / sqlite3/ PyMySQL/pyodbc/odbc/adodbapi
不同模塊連接的資料庫不同, 支持的版本系統有的也不一樣。但是大體用法都是相近的, 因為有DB-API
相關推薦:《Python教程》
3.Python DB-API
3.1背景:
在沒有DB-API 之前, 不同資料庫有不同的資料庫介面程序, 這就導致python 訪問 database 的介面程序非常混亂。如果我們學習了python 訪問 mysql 的介面程序, 然後要切換到另一個資料庫上, 我們還要在學習另外一個資料庫的介面程序。python DB-API就是為了解決介面程序混亂而生成的。有了DB-API, 在不同資料庫上移植代碼就變得簡單的多了。
3.2Python DB-API:
Python 定義了一套操作資料庫的 DB-API 介面,它是一個規范,定義了一系列必須的對象和資料庫存取方式,以便為不同的底層資料庫系統提供一致的訪問介面
這個鏈接就是python 官方給定的 DB-API 的說明 https://www.python.org/dev/peps/pep-0249/
3.3 Python DB--API的內容:
連接對象:
?Connect()創建連接:host/server /user/password/db connect方法生成一個connect對象, 我們通過這個對象來訪問資料庫。符合標準的模塊都會實現connect方法。
?close():關閉連接
?commit():提交當前事務。做出某些更改後確保已經進行了提交,這樣才可以將這些修改真正地保存到database中
?rollback() 回滾上一次調用 commit()以來對資料庫所做的更改
?cursor():創建游標。系統為用戶開通的一個數據緩沖區,用於存放SQL語句執行結果。cursor游標是有狀態的,它可以記錄當前已經取到結果的第幾個記錄了,因此,一般你只可以遍歷結果集一次。在上面的情況下,如果執行fetchone()會返回為空。這一點在測試時需要注意
游標對象:
?Execute()執行一個資料庫查詢或命令。 execute 執行sql 語句之後運行的結果不會直接output 出來 , 而是放到了一個緩存區, 要用 fetch語句+print 可以查詢sql運行的結果
?fetchone ()得到結果集的下一行
?fetchmany(size)得到結果集的下幾行
?fetchall()返回結果集中剩下的所有行
?rowcount 返回影響的行數
?Close()關閉游標對象
3.4Python DB--API的工作原理及流程:
如圖所示如果把python 和資料庫比作兩個不同的地點, connection 就是路, 能連接python和database。cursor就像在路上行駛的小貨車, 可以用於執行sql 語句, 以及存儲sql 運行的結果。
流程:
4.MS SQL Server 示例:
4.1 導入模塊、創建連接:
4.2 創建游標: 游標創建之後就可以對資料庫進行查詢更改了!
4.3對數據進行操作(創建表、插入行、更新數據、增加列、刪除行、列、表):
4.4 查詢 獲取行:
5.其他:
使用游標的時候要注意, 每次連接只能有一個游標查詢處於活躍狀態。 code演示:
execute()循環和 executemany() 插入100000 條數據測速:
㈤ Python學哪個資料庫
資料庫得根據業務需要來選擇。
關系型資料庫RDB:MySQL,Oracle,DB2,PGSQL等
非關系型資料庫NoSQL:Redis,Cassandra,Mongodb等
還有最近比較新的NewSQL
㈥ Python中主要使用哪些資料庫
Python中常用的資料庫有很多,需要根據不同的業務和應用場景來選擇合適的資料庫,才能使程序更高效.
一般常用的主要有 MySQL, Redis, MangoDB 等資料庫
學習這些資料庫,可以看黑馬程序員視頻庫的學習視頻,有代碼、有資料,有PPT,不了解還可以問老師!
㈦ 一般python用什麼資料庫比較好
盡量不要用Sybase,很難用。(不依賴Sybase的略過本答案即可)
* Python-sybase項目幾乎無更新。
* Bug多多。
* 暫時沒找到其他項目代替。
其實很多資料庫python都可以鏈接使用的,看你自己擅長使用什麼資料庫了,如果對資料庫什麼的不是很了解的話就用mongodb吧,配合pymongo很好使用的,當然其他的資料庫如mysql postgressql 等等都無壓力的。
㈧ python連接資料庫有什麼作用
囧!連資料庫肯定是需要對資料庫進行增刪改查啊。
㈨ python使用哪種資料庫
MySQL
是一個關系型資料庫管理系統,由瑞典MySQL AB 公司開發,目前屬於 Oracle 旗下產品。MySQL 是最流行的關系型資料庫管理系統之一,在 WEB 應用方面,MySQL是最好的 RDBMS (Relational Database Management System,關系資料庫管理系統) 應用軟體。
MySQL是一種關系資料庫管理系統,關系資料庫將數據保存在不同的表中,而不是將所有數據放在一個大倉庫內,這樣就增加了速度並提高了靈活性。
MySQL所使用的 SQL 語言是用於訪問資料庫的最常用標准化語言。MySQL 軟體採用了雙授權政策,分為社區版和商業版,由於其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,一般中小型網站的開發都選擇 MySQL 作為網站資料庫。
相關推薦:《Python基礎教程》
應用環境
與其他的大型資料庫例如 Oracle、DB2、SQL Server等相比,MySQL 自有它的不足之處,但是這絲毫也沒有減少它受歡迎的程度。對於一般的個人使用者和中小型企業來說,MySQL提供的功能已經綽綽有餘,而且由於 MySQL是開放源碼軟體,因此可以大大降低總體擁有成本。
MongoDB
是一個基於分布式文件存儲的資料庫。由C++語言編寫。旨在為WEB應用提供可擴展的高性能數據存儲解決方案。
MongoDB是一個介於關系資料庫和非關系資料庫之間的產品,是非關系資料庫當中功能最豐富,最像關系資料庫的。它支持的數據結構非常鬆散,是類似json的bson格式,因此可以存儲比較復雜的數據類型。Mongo最大的特點是它支持的查詢語言非常強大,其語法有點類似於面向對象的查詢語言,幾乎可以實現類似關系資料庫單表查詢的絕大部分功能,而且還支持對數據建立索引。
特點
它的特點是高性能、易部署、易使用,存儲數據非常方便。主要功能特性有:
*面向集合存儲,易存儲對象類型的數據。
mongodb集群參考
*模式自由。
*支持動態查詢。
*支持完全索引,包含內部對象。
*支持查詢。
*支持復制和故障恢復。
*使用高效的二進制數據存儲,包括大型對象(如視頻等)。
*自動處理碎片,以支持雲計算層次的擴展性。
*支持RUBY,PYTHON,JAVA,C++,PHP,C#等多種語言。
*文件存儲格式為BSON(一種JSON的擴展)。
*可通過網路訪問。
㈩ 在python中怎麼引入資料庫
資料庫版本:MySQL
Python版本:3.5
之前用想用MySQLdb來著,後來發現py3.5版本不支持,現選擇pymysql
現在想將資料庫adidas中的表jd_comment讀取至python中的DataFrame,方便數據分析處理
import pymysql
import pandas as pd
import numpy as np
try:
conn = pymysql.connect(host='localhost', user='root', passwd='123456', db='adidas', charset='UTF8')
cur = conn.cursor()
cur.execute('select * from jd_comment')
rows = cur.fetchall() #獲取元組列表
cur.close()
conn.close()
except pymysql.Error as e:
print('Mysql Error %d: %s' %(e.args[0], e.args[1]))
cols = list(zip(*cur.description)) #可以看到列名(由元組構成)
#將資料庫中的數據保存為DataFrame(數據必須是字典或者數組,列表也必須是list或者數組)
adidas = pd.DataFrame(np.array(rows), columns=list(cols[0]))