方法概括
Python操作数据库可以使用第三方库,Python操作数据库方法可以概括为5个步骤,总结如下:
-
连接数据库
1)python连接数据库之前,需要满足以下条件:
- 当前系统已安装python环境;
- 被连接的数据库已创建;
- 当前系统已安装python 第三方库。
2)连接数据库需要用到的参数包括:
(“主机:host,端口:port,用户名:user,密码:password,指定数据库:db,指定字符集:charset)
例如:db_connect = pymysql.connect(host='localhost', port=3306, user='root', password='111111', db='database', charset='utf8')
数据库连接成功后,会得到一个db对象
-
生成游标对象
通过db对象,使用db.cursor()方法得到一个游标,游标可以用来执行sql语句;
例如:cursor=db_connect.cursor()
或者 给cursor添加一个参数,让其返回的数据是一个字典cursor = db_connect.cursor(cursor=pymysql.cursors.DictCursor)
-
执行SQL语句
准备sql语句并执行sql语句
sql = 'select * from star'
返回结果rows是受影响的数据行数
rows = cursor.execute(sql) db_connect.commit()
-
关闭游标
cursor.close()
-
关闭连接
db_connect.close()
-
常见数据库操作总结
-
a 创建表操作
create_table_sql = “CREATE TABLE IF NOT EXISTS Students(id INT(10) NOT NULL AUTO_INCREMENT,name VARCHAR(100) NOT NULL,age INT(5) NOT NULL,sex VARCHAR(10) NOT NULL,PRIMARY KEY ( id )) DEFAULT CHARSET=utf8;” -
b 插入数据
insert_sql = "INSERT INTO Students ( id,name, age,sex) VALUES ( 1, '王伟',12,'男' ),( 2,'小妹' ,11,'女' ),( 3,'海涛' ,10,'男' );"
-
c 查询操作
select_sql = "select * from Students;" select_sql2 = "select * from Students where id =3;"
Python查询Mysql使用 fetchone() 方法获取单条数据, 使用fetchall() 方法获取多条数据。
• fetchone(): 该方法获取下一个查询结果集。结果集是一个对象
• fetchall(): 接收全部的返回结果行.
• rowcount: 这是一个只读属性,并返回执行execute()方法后影响的行数。
results = cursor.fetchall()# 获取所有记录列表 -
d 更新操作
update_sql = "UPDATE Students SET age=11 WHERE id=3;"
-
e 删除操作
delete_sql = "DELETE FROM Students WHERE id=1;"
-
python操作MySQL数据库
-
安装第三方库 PyMySQL
直接使用 pip install pymysql即可
-
实现过程:
mysql.py
#!/usr/bin/python # -*- coding: utf-8 -*- import pymysql connection = pymysql.connect(host='127.0.0.1', port=3306, user='root', password='123456', db='database', charset='utf8') if connection: print "连接成功" cursor = connection.cursor() cursor.execute("DROP TABLE IF EXISTS Students") # 如果数据表已经存在使用 execute() 方法删除表。 create_table_sql = "CREATE TABLE IF NOT EXISTS Students(id INT(10) NOT NULL AUTO_INCREMENT,name VARCHAR(100) NOT NULL,age INT(5) NOT NULL,sex VARCHAR(10) NOT NULL,PRIMARY KEY ( id )) DEFAULT CHARSET=utf8;" insert_sql = "INSERT INTO Students ( id,name, age,sex) VALUES ( 1, '王伟',12,'男' ),( 2,'小妹' ,11,'女' ),( 3,'海涛' ,10,'男' );" select_sql = "select * from Students;" update_sql = "UPDATE Students SET age=11 WHERE id=3;" select_sql2 = "select * from Students where id =3;" delete_sql = "DELETE FROM Students WHERE id=1;" drop_sql = "DROP TABLE Students;" sql = [create_table_sql,insert_sql,select_sql,update_sql,select_sql2,delete_sql,drop_sql] try: for i in range(len(sql)): cursor.execute(sql[i]) #print mysql_sql) connection.commit() except: connection.rollback() # 发生错误时回滚 connection.close()
python操作sqlserver数据库
-
安装第三方库pymssql
python使用第三方库pymssql来操作SQLServer数据库,在使用之前需要安装pymssql模块
1)直接命令行使用 pip install pymssql
2)若以上安装不成功,从python官网上下载对应python版本的pymssql,下载地址:https://pypi.org/project/pymssql/#files
例如:windows主机已经安装了python3.7版本,则我选择对应python37的win 64位的pymssql-2.1.4-cp37-cp37m-win_amd64.whl 下载,然后安装 pip install pymssql-2.1.4-cp37-cp37m-win_amd64.whl -
代码实现过程
sqlserver.py
#!/usr/bin/python # -*- coding: utf-8 -*- import pymssql db_connect = pymssql.connect('10.0.0.24', 'qwert','z9gjmP5tNUaVUcX1','dbaudit_sqlserver2008r2') if db_connect: print("连接成功!") cursor = db_connect.cursor() create_table_sql = "CREATE TABLE Students(id int primary key,name VARCHAR(100) NOT NULL,age INT NOT NULL,sex VARCHAR(10) NOT NULL);" insert_sql = "INSERT INTO Students ( id,name, age,sex) VALUES ( 1, '王伟',12,'男' ),( 2,'小妹' ,11,'女' ),( 3,'海涛' ,10,'男' );" select_sql = "select * from Students;" update_sql = "UPDATE Students SET age=11 WHERE id=3;" select_sql2 = "select * from Students where id =3;" delete_sql = "DELETE FROM Students WHERE id=1;" drop_sql = "DROP TABLE Students;" sql = [create_table_sql,insert_sql,select_sql,update_sql,select_sql2,delete_sql,drop_sql] try: for i in range(len(sql)): cursor.execute(sql[i]) # print(sql[i]) # print("db commit success") db_connect.commit() except: db_connect.rollback() # 发生错误时回滚 cursor.close() db_connect.close()