Python数据库MySql编程
MySQL数据库常见操作语法:增、删、改、查
增:
insert into 表名 values (各字段的值)
指定字段:insert into 表名(字段属性) values (指定字段属性相应的值)
删:
delete from 表名:用于删除指定表的所有数据
(可以加上限定符,删除指定行,例如where语句,limit语句等)
drop database 库名:删除整个数据库
改:
update 表名 set 属性=值:更改表中的数据的值
(可以使用where语句,limit等语句更改指定的行的数据)
alter table 表名 add/drop/change/modify:更改表的属性
查:
select 列名 from 表:查询指定表的某一列的值
(where,limit,group by等语句控制查询的数据)
Python对于MySQL数据库的编程需要的模块:
mysql.connector
命令行下载相应模块:pip install mysql-connector-python
使用Python操作数据库的步骤:
1、 创建一个连接对象
2、 创建一个游标对象
3、 通过游标对象对数据库进行增、删、改、查
4、 处理返回的数据(对于数据库的查找)
5、 关闭游标对象
6、 关闭连接对象
1、 创建连接对象
sqlcon=mysql.connector.connect(user=数据库账号,password=密码,host=主机地址,port=数据库端口号,database=’使用的数据库’)
2、 创建游标对象
游标对象的创建是基于连接对象的:
con=sqlcon.cursor()
3、 通过游标对象进行相应的增、删、改、查
Python执行上述操作都是使用游标对象的execut方法
包括:
execute()
executemany()
(1) 使用execute()方法单个执行
con.execute(‘操作语句’,(相应的参数))
例如:(下方的%s表示占位符,通过该模块的全局变量可以查看得到)
Python交互模式下:mysql.connector.paramstyle
(表示该模块支持的参数方式)
增:
con.execute(‘insert into users values (null,%s,%s,%s)’,(‘john’,15,’man’))
删:
con.execute(‘delete from users where user_id=5’)
con.execute(‘delete from users where user_id=%s’,(6,))
改:
con.execute(‘update users set name=’Mecheal’ where user_id=7’)
con.execute(‘update users set name=%s where user_id=%s’,(‘Mecheal’,7))
查:
con.execute(‘select name from users where user_id=8’)
con.execute(‘select name from users where user_id=%s’,(8,))
(以上说明,execute方法可以使用占位符%s,也可以不使用)
(2) 使用executemany()方法执行多次
con.execute(‘insert into users values(null,%s,%s,%s)’,
((‘John’,12,’woman’),
(‘Mecheal’,13,’man’)))
(通过多个元组参数,执行多次该数据库命令)
4、 处理返回的数据(也就是查询到的数据)
使用游标对象的fetch方法,包含:
fetchone():取出查询值的一行
fetchmany(n):取出多行值,返回多个列表
fetchall():取出查询的所有值
使用:
result=con.fetchone()
(每一次执行一个fetch,取回的结果就会往后移动相应位)
返回的结果是列表:
(fetchone返回的是一个元组)
使用for in语句获取相应的数据:
(返回多条数据,迭代的是一个元组;而返回一条数据,迭代的是一个数据)
注意一点:每次使用DML语句,需要在后面调用连接对象的commit()方法提交事务,否则不会生效-----sqlcon.commit()
(也可以设置sqlcon.autocommite=True,就可以不用指定,默认是False)
5、 关闭游标对象
con.close()
6、 关闭连接对象
sqlcon.close()
结果:
(游标对象的description属性,返回的每一列的属性,也就是创建列时给定的属性)
总结一下:
1、 创建连接对象:mysql.connetor.connect()
2、 创建游标对象:cursor()
3、 执行语句:execute()
4、 获取查询结果:fetchall()
5、 关闭游标对象和连接对象:close()