python基础课程3(看代码看注释)--数据库基本操作(mysql)
生活随笔
收集整理的這篇文章主要介紹了
python基础课程3(看代码看注释)--数据库基本操作(mysql)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
#人生苦短,我用python
#推薦一個python數(shù)據(jù)結(jié)構(gòu)可視化工具,網(wǎng)址:http://www.pythontutor.com
##課表:1.mysql數(shù)據(jù)庫的基本操作;2.用python操作基本數(shù)據(jù)庫;3.編寫python爬蟲并保存到數(shù)據(jù)庫###數(shù)據(jù)庫:存儲數(shù)據(jù)的地方,平時指的數(shù)據(jù)庫指的是數(shù)據(jù)管理系統(tǒng),大型的數(shù)據(jù)管理軟件,用來管理操作數(shù)據(jù),excel叫表格數(shù)據(jù)操作軟件
#安裝mysql數(shù)據(jù)庫,移步百度
###mysql數(shù)據(jù)庫基本操作
#連接數(shù)據(jù)庫
mysql -u root -p #u 是用戶名,p:需要密碼登錄數(shù)據(jù)庫
#查看數(shù)據(jù)庫
show database;
#選擇數(shù)據(jù)庫
use database_name;#如use Examination(表示查看Examination數(shù)據(jù)庫)
#查看數(shù)據(jù)庫中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ù)庫管理工具,只在mac上有,叫做sequelpro,網(wǎng)址http://www.sequelpro.com,windows使用heidisql##關系型數(shù)據(jù)庫
dict = {'a':100,'b':200
}
##關系型數(shù)據(jù)庫,另一種數(shù)據(jù)庫是非關系型數(shù)據(jù)庫,比較流行的是mongodb,redis###mysql excel的不同:mysql是一種關系型數(shù)據(jù)庫
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ù)庫
##創(chuàng)建數(shù)據(jù)庫
create database Examination_copy default charset utf8mb4;
##刪除數(shù)據(jù)庫
drop database Examination_copy;
##指定字符集和校對集,創(chuàng)建數(shù)據(jù)庫
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位無符號非空PRIMARY KEY('id')
}
#插入操作
insert into 'table_name'('id','name')
value(3,'高一3班')#修改數(shù)據(jù)
update 'class' set 'name' = '高一五班'
where 'id' ='6'###上述命令行操作數(shù)據(jù)庫著實麻煩,我們接下來要學會使用python操作數(shù)據(jù)庫
## Nevicat 強大的mysql數(shù)據(jù)管理軟件
##python安裝第三方庫(windows環(huán)境):方法1.pip install 模塊名稱;方法2.conda install模塊名稱
import MySQLdb #沒有安裝的話需要安裝###記住本機木有安裝成功,記得有時間返回來安裝呀>。<
#連接數(shù)據(jù)庫DATABASE = {'host':'localhost', #如果是遠程數(shù)據(jù)庫則為遠程服務器的ip地址'database':'Ex','user':'root','password':'yuping','charset':utf8
}
db = MySQLdb.comnect(host='localhost',database='Ex',user='root',password='yuping')
#等價于
db = MySQLdb.comnect('localhost','Ex','root','yuping')
#等價于
db = MySQLdb.comnect(**DATABASE)
##數(shù)據(jù)庫中的游標概念
##查詢語句
cursor = db.cursor()
sql = "select * from student where id<20"
cursor.excute(sql)#使用游標執(zhí)行sql語句,執(zhí)行結(jié)束后就可以用游標獲取所有的結(jié)果
result = cursor.fetchall()
for row in result:print(row)
##連接數(shù)據(jù)庫沒有按照字符集指定我們數(shù)據(jù)庫的編碼格式時會打印出??號,在數(shù)據(jù)庫中設置'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ù)類型不一致不能相加也不會報錯因為已經(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)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【OpenCV 例程200篇】41. 图
- 下一篇: sqlite数据库主键自增_sqlite