利用pymysql庫來進行操作之前,需要保證mysql資料庫已經啟動,且你可以拿到該資料庫的使用者名稱和密碼,有許可權進行操作,否則就會報錯。基本操作如下:
import pymysql
#連線資料庫(主機號,使用者,密碼,資料庫,編碼)
db=pymysql.connect(host=
"localhost"
,user=
"root"
,password=
"root"
,databsase=
"資料庫名"
,charset=
"utf8"
)#建立乙個游標物件
cursor=db.cursor(
)#建立需要執行的sql語句
sql=
"""create table user1 (
id int auto_increment primary key ,
name char(10) not null unique,
age tinyint not null
)engine=innodb default charset=utf8;
"""#使用execute()方法執行sql查詢
cursor.execute(sql)
#關閉游標物件
cursor.close(
)#關閉資料庫連線
db.close(
)
以上**只需要對sql語言進行更改,就可以實現利用python對資料庫進行常規操作,比如增刪改查等等,套路都是一樣的。但是有時候我們在對資料庫進行操作的時候,會發生一些異常錯誤,事務在執行過程中發生錯誤,會被回滾(rollback)到事務開始前的狀態。
try
: cursor.execute(sql)
#提交到資料庫執行
db.commit(
)except exception as e:
#發生異常則回滾
db.rollback(
)
上面說到只需要更改sql語言就可以進行增刪改查,具體操作如下:
sql =
'insert into userinfo (user,pwd) values (%s,%s);'
name =
'小明'
pwd =
'123456789'
cursor.execute(sql,
[name, pwd]
)db.commit(
)cursor.close(
)db.close(
)
sql=
'insert into userinfo (user,pwd) valus (%s,%s);'
data=[(
'jack'
,'1234'),
('jency'
,'2345')]
# 拼接並執行sql語句
cursor.executemany(sql, data)
db.commit(
)cursor.close(
)db.close(
)
sql =
'insert into userinfo (user,pwd) values (%s,%s);'
name =
'小明'
pwd =
'123456789'
cursor.execute(sql,
[name, pwd]
)last_id=cursor.lastrowid
db.commit(
)cursor.close(
)db.close(
)
sql=
'delete from userinfo where user=%s;'
name =
'june'
cursor.execute(sql,
[name]
)db.commit(
)cursor.close(
)db.close(
)
sql=
'update userinfo set pwd=%s where user=%s;'
cursor.execute(sql,
['6666'
,'june'])
db.commit(
)cursor.close(
)db.close(
)
#查詢n條資料
sql =
'select user,pwd from userinfo;'
cursor.execute(sql)
# 取到查詢結果
ret1 = cursor.fetchone(
)# 取一條
ret2 = cursor.fetchmany(n)
# 取n條
注意:前面的資料庫連線建立已經游標物件建立均省略,從sql開始寫的 py之資料庫操作
import pymysql1.連線資料庫 host user passwd charset conn pymysql.connect host localhost user root password redhat db westos charset utf8 2.建立游標物件 cur conn....
資料庫 資料庫基本操作
操作練習 修改表結構 表資料的操作 實現 1 建立表 create table student stu no char 12 not null primary key,stu name varchar 20 not null gender tinyint 1 default1,age tinyint...
資料庫基本操作
1.查詢一周之內的資料 select from 表名 where date sub curdate interval 7 day date 欄位名 2.插入 年 月 日 時 分 秒的時間 pstmt.settimestamp 7,new timestamp system.currenttimemil...