python【系列教程】之数据库编程
【摘要】 一、python数据库API简介
二、操作SQLite数据库
import sqlite3 # 获取数据库连接conn = sqlite3.connect('first.db')# 获取游标c = conn.cursor()# 执行查询语句c.execute('select * from user_tb where _id>?', (2,))p...
一、python数据库API简介
二、操作SQLite数据库
-
import sqlite3
-
-
# 获取数据库连接
-
conn = sqlite3.connect('first.db')
-
# 获取游标
-
c = conn.cursor()
-
# 执行查询语句
-
c.execute('select * from user_tb where _id>?', (2,))
-
print('查询返回的记录数', c.rowcount)
-
# 通过游标的desription属性获取列信息
-
for col in (c.description):
-
print(col[0], end='\t')
-
print('\n---------------------------------')
-
while True:
-
# 获取一条记录,每行数据都是一个元组
-
row = c.fetchone()
-
# 如果获取的row为None,则退出循环
-
if not row:
-
break
-
print(row)
-
print(row[1] + '-->' + row[2])
-
# 关闭游标
-
c.close()
-
# 关闭连接
-
conn.close()
-
"""从上面的运行结果看,程序返回了所有_id大于2的记录,这就是上面程序查询所返回的结果,
-
由于每条select语句都可能返回多个查询结果,因此不能使用executemany()执行查询语句,这
-
没什么意义,不要试图使用executeMany()方法执行selecty语句,否则程序将会报错
-
"""
-
import sqlite3
-
print('开始测试fetchmany函数')
-
conn = sqlite3.connect('first.db')
-
c = conn.cursor()
-
-
c.execute('select * from user_tb where _id>?',(2,))
-
print('查询返回的记录数', c.rowcount)
-
-
for col in (c.description):
-
print(col[0],end='\t')
-
print('\n-------------------------------')
-
while True:
-
rows = c.fetchmany(3)
-
if not rows:
-
break
-
for x in rows:
-
print(x)
-
print(x[1]+'-->'+x[2])
-
#executescript()函数的用法
-
import sqlite3
-
conn = sqlite3.connect('first.db')
-
c = conn.cursor()
-
c.executescript('''
-
insert into user_tb values (null,'武松','3444','male');
-
insert into user_tb values (null,'林冲','44444','male');
-
create table item_tb(_id integer primary key autoincrement,
-
name,
-
price);
-
''')
-
conn.commit()
-
c.close()
-
conn.close()
-
#创建自定义函数
-
import sqlite3
-
def reverse_ext(st):
-
return '['+st[::-1]+']'
-
-
conn = sqlite3.connect('first.db')
-
#将reverse_ext函数注册为自定义函数
-
conn.create_function('enc',1,reverse_ext)
-
-
c=conn.cursor()
-
#在sql中使用enc自定义函数
-
c.execute('insert into user_tb values(null,?,enc(?),?)',('贾宝玉','123456','male'))
-
conn.commit()
-
c.close()
-
conn.close()
三、操作MySql数据库
查看已经安装的模块
pip show packagename
启动命令行窗口,在窗口中输入如下命令:
pip show mysql-connector-python
卸载已经安装的模块
pip uninstall packagename
在命令行窗口输入如下命令:
pip uninstall mysql-connector-python
查看已安装的所有模块
pip list
安装 模块
pip Install packagename
在命令行窗口输入如下命令:
pip install mysql-connector-python
如果希望安装的时候指定不同版本的模块,则可指定版本号。如下:
pip install packagename ==1.0.4
-
from mysql import connector
-
-
print(connector.apilevel)
-
-
print(connector.paramstyle)
-
-
conn = connector.connect(user='root', password='123456', host='localhost', port='3306', database='python',
-
use_unicode=True)
-
-
c = conn.cursor()
-
-
c.execute("""create tabel user_tb(
-
user_id int primary key auto_increment,
-
name varchar(255),
-
pass varchar(255),
-
gender varchar(255)
-
)""")
-
-
c.execute('insert into user_tb values(null,%s,%s,%s)',('dzx','123','man'))
-
c.execute('insert into order_tb values(null,%s,%s,%s,%s)',('鼠标','34.3','3','1'))
-
-
c.close()
-
conn.close()
-
# 调用存储过程
-
# 编写一个简单的存储过程
-
# delimiter //
-
# create procedure add_pro(a int,b int,out sum int)
-
# begin
-
# set sum= a+b
-
# end;
-
# //
-
-
import mysql.connector
-
-
conn = mysql.connector.connect(user='root', password='32147', host='localhost', port='3306')
-
-
c = conn.cursor()
-
#调用存储过程
-
result = c.callproc('add_pro', (1, 2, 0))
-
#打印结果,既包含传入参数的值,也包含传出参数的值
-
print(result)
-
#如果只想访问传出参数的值,则可以直接访问result_args的第3个元素,
-
print(result[2])
-
c.close()
-
conn.close()
文章来源: blog.csdn.net,作者:血煞风雨城2018,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/qq_31905135/article/details/101017837
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)