链接MySQL的test数据库实例:
# 导入模块
import MySQLdb
# 打开数据库连接(1):使用关键字参数
conn = MySQLdb.connect(host='127.0.0.1', port=3306,
user='root', passwd='root', db='test', charset='utf8')
# 打开数据库连接(2):也可以使用字典进行连接参数的管理
config = {
'host': '127.0.0.1',
'port': 3306,
'user': 'root',
'passwd': 'root',
'db': 'test',
'charset': 'utf8'
}
conn = MySQLdb.connect(**config)
# 以上两种方式根据需求选择
# 使用cursor()方法获取操作游标
cursor = conn.cursor()
# 使用execute方法执行SQL语句
cursor.execute("SELECT VERSION()")
# 使用 fetchone() 方法获取一条数据
data1 = cursor.fetchone()
print "Database version : %s " % data1
# 使用 fetchall() 方法获取所有数据
data2 = cursor.fetchall()
# 如果没有设置自动提交事务,则这里需要手动提交一次
conn.commit()
# 关闭游标和数据库连接
cursor.close()
conn.close()
# 常用数据库操作语句:
# 注:MySQLdb默认查询结果都是返回tuple
desc = cursor.description # 获取表名信息
result = cursor.fetchone() # 查询一条记录
results = cursor.fetchmany(5) # 查询多条记录
results = cursor.fetchall() # 查询所有记录
conn.commit() # 手动提交事务集
conn.rollback() # 回滚当前游标的所有操作
# MySQLdb一系列数据库相关操作
import MySQLdb
conn = MySQLdb.connect(host='127.0.0.1', port=3306,
user='root', passwd='root', db='test', charset='utf8')
cursor = conn.cursor()
# (1)创建数据库表操作
sql1="""create table test_01(
user_name char(20) not null,
ident char(20) not null,
sex char(20),
age int,
income float)"""
cursor.excute(sql1)
# (2)数据库插入操作
sql2="""insert into test_01(user_name,ident,sex,age,income)
values('%s', '%s', '%c', '%d', '%d' )" %
('mac','44444','男',12,2000))"""
try:
cursor.execute(sql2)
# 提交到数据库执行
conn.commit()
except:
# 发生错误时会滚
conn.rollback()
# (3)数据库查询操作
sql3 = "select * from test_01 where income>'%d'" % (1000)
try:
cursor.execute(sql3)
results = cursor.fetchall()
for row in results:
user_name= row[0]
ident= row[1]
sex= row[2]
age= row[3]
income = row[4]
print "user_naem=%s,ident=%s,sex=%s,age=%d,income=%d" %
(user_name, ident, sex, age, income )
except:
print "Error: unable to fecth data"
cursor.close()
conn.close()
#(4)数据库更新、删除操作
# 只需将需要执行的sql放入cursor.execute(sql)中即可
# 导入模块
import pymysql
# 链接MySQL数据库
def testMysql1():
conn = pymysql.connect(host='127.0.0.1', port=3306,
user='root', passwd='root', db='test', charset='utf8')
cursor = conn.cursor()
cursor.execute("select * from user")
result1 = cursor.fetchone() # result2 = cursor.fetchall()
print(result1[0])
cursor.close()
conn.close()
# 数据库操作语句与MySQLdb基本一致
# 导入模块
import cx_Oracle
# 数据库连接函数
def testOracle():
# python安装的是多少位oracle客户端(instantclient_11_2)就是多少位
# conn = cx_Oracle.connect('用户名/密码@数据库ip:端口号/数据库名')
conn = cx_Oracle.connect('root/[email protected]:1521/testDB')
cursor = conn.cursor()
cursor.execute('select sysdate from dual')
result = cursor.fetchone()
print('Database time:%s' % result)
cursor.close()
conn.close()
# 封装起来
import cx_Oracle
# 读取需要执行的sql,返回执行函数
def oraclesql(cursor):
fp = open(r'/home/oracle/scripts/tablespace.sql')
fp_sql = fp.read()
cursor.execute(fp_sql)
data = cursor.fetchall()
return data
if __name__ == '__main__':
ipaddr = "192.168.223.138"
username = "system"
password = "redhat"
oracle_port = "1521"
oracle_service = "oracle.test"
try:
conn = cx_Oracle.connect(username + "/" + password + "@" +
ipaddr + ":" + oracle_port + "/" + oracle_service)
# 将异常捕捉,然后错误就是抛异常的具体内容
except Exception as e:
print(e)
else:
cursor = conn.cursor()
data = oraclesql(cursor)
for i in data:
print(i)
cursor.close()
conn.close()
到此主要介绍了python连接mysql及oracle数据库的方法,简单的介绍了数据库基本的操作,后续如有相关内容将持续更新。