python基础课程3(看代码看注释)--数据库基本操作(mysql)
生活随笔
收集整理的這篇文章主要介紹了
python基础课程3(看代码看注释)--数据库基本操作(mysql)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
#人生苦短,我用python
#推薦一個(gè)python數(shù)據(jù)結(jié)構(gòu)可視化工具,網(wǎng)址:http://www.pythontutor.com
##課表:1.mysql數(shù)據(jù)庫(kù)的基本操作;2.用python操作基本數(shù)據(jù)庫(kù);3.編寫python爬蟲并保存到數(shù)據(jù)庫(kù)###數(shù)據(jù)庫(kù):存儲(chǔ)數(shù)據(jù)的地方,平時(shí)指的數(shù)據(jù)庫(kù)指的是數(shù)據(jù)管理系統(tǒng),大型的數(shù)據(jù)管理軟件,用來管理操作數(shù)據(jù),excel叫表格數(shù)據(jù)操作軟件
#安裝mysql數(shù)據(jù)庫(kù),移步百度
###mysql數(shù)據(jù)庫(kù)基本操作
#連接數(shù)據(jù)庫(kù)
mysql -u root -p #u 是用戶名,p:需要密碼登錄數(shù)據(jù)庫(kù)
#查看數(shù)據(jù)庫(kù)
show database;
#選擇數(shù)據(jù)庫(kù)
use database_name;#如use Examination(表示查看Examination數(shù)據(jù)庫(kù))
#查看數(shù)據(jù)庫(kù)中table表
show table;
#查看表格的結(jié)構(gòu)
desc table;#(如 desc score:查看score數(shù)據(jù)表結(jié)構(gòu))
#查看表中的數(shù)據(jù)
select * fromtable_name#select * from score ;
#查看表中的數(shù)據(jù)并限制數(shù)量
select * from table_name#select * from score limit 10;##推薦一款軟件,數(shù)據(jù)庫(kù)管理工具,只在mac上有,叫做sequelpro,網(wǎng)址http://www.sequelpro.com,windows使用heidisql##關(guān)系型數(shù)據(jù)庫(kù)
dict = {'a':100,'b':200
}
##關(guān)系型數(shù)據(jù)庫(kù),另一種數(shù)據(jù)庫(kù)是非關(guān)系型數(shù)據(jù)庫(kù),比較流行的是mongodb,redis###mysql excel的不同:mysql是一種關(guān)系型數(shù)據(jù)庫(kù)
import json
data_1 = "{'a':1,'b':2,'c':3}"
data_2 = '{"a":1,"b":2,"c":3}'
j_data = json.loads(data_2)
type(j_data)
with open('path','r') as fj_data = json.loads(f)
###用命令行操作數(shù)據(jù)庫(kù)
##創(chuàng)建數(shù)據(jù)庫(kù)
create database Examination_copy default charset utf8mb4;
##刪除數(shù)據(jù)庫(kù)
drop database Examination_copy;
##指定字符集和校對(duì)集,創(chuàng)建數(shù)據(jù)庫(kù)
create database Examination_copy default charset utf8mb4 collate utf8MB4_general_ci;
##創(chuàng)建表格
create table class{'id' int(11)unsigned not null default#id字段整型11位無符號(hào)非空PRIMARY KEY('id')
}
#插入操作
insert into 'table_name'('id','name')
value(3,'高一3班')#修改數(shù)據(jù)
update 'class' set 'name' = '高一五班'
where 'id' ='6'###上述命令行操作數(shù)據(jù)庫(kù)著實(shí)麻煩,我們接下來要學(xué)會(huì)使用python操作數(shù)據(jù)庫(kù)
## Nevicat 強(qiáng)大的mysql數(shù)據(jù)管理軟件
##python安裝第三方庫(kù)(windows環(huán)境):方法1.pip install 模塊名稱;方法2.conda install模塊名稱
import MySQLdb #沒有安裝的話需要安裝###記住本機(jī)木有安裝成功,記得有時(shí)間返回來安裝呀>。<
#連接數(shù)據(jù)庫(kù)DATABASE = {'host':'localhost', #如果是遠(yuǎn)程數(shù)據(jù)庫(kù)則為遠(yuǎn)程服務(wù)器的ip地址'database':'Ex','user':'root','password':'yuping','charset':utf8
}
db = MySQLdb.comnect(host='localhost',database='Ex',user='root',password='yuping')
#等價(jià)于
db = MySQLdb.comnect('localhost','Ex','root','yuping')
#等價(jià)于
db = MySQLdb.comnect(**DATABASE)
##數(shù)據(jù)庫(kù)中的游標(biāo)概念
##查詢語句
cursor = db.cursor()
sql = "select * from student where id<20"
cursor.excute(sql)#使用游標(biāo)執(zhí)行sql語句,執(zhí)行結(jié)束后就可以用游標(biāo)獲取所有的結(jié)果
result = cursor.fetchall()
for row in result:print(row)
##連接數(shù)據(jù)庫(kù)沒有按照字符集指定我們數(shù)據(jù)庫(kù)的編碼格式時(shí)會(huì)打印出??號(hào),在數(shù)據(jù)庫(kù)中設(shè)置'charset':'utf8#插入操作
sql = "insert into 'class'('name') values('高一四班');"
cursor = db.cursor()
cursor.execute(sql)
db.commit()
#刪除操作
sql = "delete from 'class'('name') values('高一四班');"
cursor = db.cursor()
cursor.execute(sql)
db.commit()
#省略
#更新操作
sql = "update 'class' set 'name'= '高一四班';"
cursor = db.cursor()
cursor.execute(sql)
db.commit()##捕捉異常
try:a = 10b = a+'hello'##捕捉了之后即使數(shù)據(jù)類型不一致不能相加也不會(huì)報(bào)錯(cuò)因?yàn)橐呀?jīng)用except捕捉異常了最后打出了e
except Exception as e:##回本操作print(e)
try:
sql = "insert into 'class'('name') values('高一四班');"
cursor = db.cursor()
cursor.execute(sql)
db.commit()
except Exception as e1:pass
##回滾操作db.rockback()
總結(jié)
以上是生活随笔為你收集整理的python基础课程3(看代码看注释)--数据库基本操作(mysql)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【OpenCV 例程200篇】41. 图
- 下一篇: linux cmake编译源码,linu