折腾好半天的数据库连接,由于之前未安装 pip ,而且自己用的Python 版本为36 只能用 pymysql 来连接数据库,下边 简单介绍一下 连接的过程,以及简单的增删改查 *** 作。
1通过 pip 安装 pymysql
进入 cmd 输入 pip install pymysql
回车等待安装完成;
安装完成后出现如图相关信息,表示安装成功。
2测试连接
import pymysql #导入 pymysql ,如果编译未出错,即表示 pymysql 安装成功
简单的增删改查 *** 作
示例表结构
21查询 *** 作
[python] view plain copy
import pymysql #导入 pymysql
#打开数据库连接
db= pymysqlconnect(host="localhost",user="root",
password="123456",db="test",port=3307)
# 使用cursor()方法获取 *** 作游标
cur = dbcursor()
#1查询 *** 作
# 编写sql 查询语句 user 对应我的表名
sql = "select from user"
try:
curexecute(sql) #执行sql语句
results = curfetchall() #获取查询的所有记录
print("id","name","password")
#遍历结果
for row in results :
id = row[0]
name = row[1]
password = row[2]
print(id,name,password)
except Exception as e:
raise e
finally:
dbclose() #关闭连接
22插入 *** 作
[python] view plain copy
import pymysql
#2插入 *** 作
db= pymysqlconnect(host="localhost",user="root",
password="123456",db="test",port=3307)
# 使用cursor()方法获取 *** 作游标
cur = dbcursor()
sql_insert ="""insert into user(id,username,password) values(4,'liu','1234')"""
try:
curexecute(sql_insert)
#提交
dbcommit()
except Exception as e:
#错误回滚
dbrollback()
finally:
dbclose()
23更新 *** 作
[python] view plain copy
import pymysql
#3更新 *** 作
db= pymysqlconnect(host="localhost",user="root",
password="123456",db="test",port=3307)
# 使用cursor()方法获取 *** 作游标
cur = dbcursor()
sql_update ="update user set username = '%s' where id = %d"
try:
curexecute(sql_update % ("xiongda",3)) #像sql语句传递参数
#提交
dbcommit()
except Exception as e:
#错误回滚
dbrollback()
finally:
dbclose()
24删除 *** 作
[python] view plain copy
import pymysql
#4删除 *** 作
db= pymysqlconnect(host="localhost",user="root",
password="123456",db="test",port=3307)
# 使用cursor()方法获取 *** 作游标
cur = dbcursor()
sql_delete ="delete from user where id = %d"
try:
curexecute(sql_delete % (3)) #像sql语句传递参数
#提交
dbcommit()
except Exception as e:
#错误回滚
dbrollback()
finally:
dbclose()
可以将你的查询语句拼接成字符串~~保存到你定义的变量中然后截取变量值再进行 *** 作
游标查询如下:
open
rumCur
for
select
mname||','||bacResponseTime||','||sessionCount||','||round(responseTime,2)||','||hits
from
tableName;
fetch
rumCur
into
result;--result为定义的变量~
然后分割截取~~
也可以定义多个变量
fetch
rumCur
into
[变量1],[变量2];
A 在简单的游标中使用 FETCH
下例为 authors 表中姓以字母 B 开头的行声明了一个简单的游标,并使用 FETCH NEXT 逐个提取这些行。FETCH 语句以单行结果集形式返回由 DECLARE CURSOR 指定的列的值。
USE pubs
GO
DECLARE authors_cursor CURSOR FOR
SELECT au_lname FROM authors
WHERE au_lname LIKE "B%"
ORDER BY au_lname
OPEN authors_cursor
-- Perform the first fetch
FETCH NEXT FROM authors_cursor
-- Check @@FETCH_STATUS to see if there are any more rows to fetch
WHILE @@FETCH_STATUS = 0
BEGIN
-- This is executed as long as the previous fetch succeeds
FETCH NEXT FROM authors_cursor
END
CLOSE authors_cursor
DEALLOCATE authors_cursor
GO
au_lname
----------------------------------------
Bennet
au_lname
----------------------------------------
Blotchet-Halls
au_lname
----------------------------------------
B 使用 FETCH 将值存入变量
下例与上例相似,但 FETCH 语句的输出存储于局部变量而不是直接返回给客户端。PRINT 语句将变量组合成单一字符串并将其返回到客户端。
USE pubs
GO
-- Declare the variables to store the values returned by FETCH
DECLARE @au_lname varchar(40), @au_fname varchar(20)
DECLARE authors_cursor CURSOR FOR
SELECT au_lname, au_fname FROM authors
WHERE au_lname LIKE "B%"
ORDER BY au_lname, au_fname
OPEN authors_cursor
-- Perform the first fetch and store the values in variables
-- Note: The variables are in the same order as the columns
-- in the SELECT statement
FETCH NEXT FROM authors_cursor
INTO @au_lname, @au_fname
-- Check @@FETCH_STATUS to see if there are any more rows to fetch
WHILE @@FETCH_STATUS = 0
BEGIN
-- Concatenate and display the current values in the variables
PRINT "Author: " + @au_fname + " " + @au_lname
-- This is executed as long as the previous fetch succeeds
FETCH NEXT FROM authors_cursor
INTO @au_lname, @au_fname
END
CLOSE authors_cursor
DEALLOCATE authors_cursor
GO
Author: Abraham Bennet
Author: Reginald Blotchet-Halls
C 声明 SCROLL 游标并使用其它 FETCH 选项
下例创建一个 SCROLL 游标,使其通过 LAST、PRIOR、RELATIVE 和 ABSOLUTE 选项支持所有滚动能力。
USE pubs
GO
-- Execute the SELECT statement alone to show the
-- full result set that is used by the cursor
SELECT au_lname, au_fname FROM authors
ORDER BY au_lname, au_fname
-- Declare the cursor
DECLARE authors_cursor SCROLL CURSOR FOR
SELECT au_lname, au_fname FROM authors
ORDER BY au_lname, au_fname
OPEN authors_cursor
-- Fetch the last row in the cursor
FETCH LAST FROM authors_cursor
-- Fetch the row immediately prior to the current row in the cursor
FETCH PRIOR FROM authors_cursor
-- Fetch the second row in the cursor
FETCH ABSOLUTE 2 FROM authors_cursor
-- Fetch the row that is three rows after the current row
FETCH RELATIVE 3 FROM authors_cursor
-- Fetch the row that is two rows prior to the current row
FETCH RELATIVE -2 FROM authors_cursor
CLOSE authors_cursor
DEALLOCATE authors_cursor
GO
au_lname au_fname
---------------------------------------- --------------------
Bennet Abraham
Blotchet-Halls Reginald
Carson Cheryl
DeFrance Michel
del Castillo Innes
Dull Ann
Green Marjorie
Greene Morningstar
Gringlesby Burt
Hunter Sheryl
Karsen Livia
Locksley Charlene
MacFeather Stearns
McBadden Heather
O'Leary Michael
Panteley Sylvia
Ringer Albert
Ringer Anne
Smith Meander
Straight Dean
Stringer Dirk
White Johnson
Yokomoto Akiko
au_lname au_fname
---------------------------------------- --------------------
Yokomoto Akiko
au_lname au_fname
---------------------------------------- --------------------
White Johnson
au_lname au_fname
---------------------------------------- --------------------
Blotchet-Halls Reginald
au_lname au_fname
---------------------------------------- --------------------
del Castillo Innes
au_lname au_fname
---------------------------------------- --------------------
Carson Cheryl
以上就是关于python3.6执行pymysql报错全部的内容,包括:python3.6执行pymysql报错、oracle动态游标问题 有没办法获取动态游标中的字段信息!!!、SQL游标如何使用等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)