MySQL&Python
python连接数据库查看数据库版本
from pymysql import *
def main():
conn=connect(host='localhost',port=端口号,user='用户名',password='密码',database='表名',charset='utf8')
#创建一个游标对象
cs1=conn.cursor()
#使用execute()方法执行SQL语句
cs1.execute("select version()")
#fetchone()方法获取单条数据
content=cs1.fetchone()
print("database version is %s"%content)
conn.close()#关闭数据库
if __name__ == '__main__':
main()
创建数据表
from pymysql import *
def main():
conn=connect(host='localhost',port=端口号,user='用户名',password='密码',database='表名',charset='utf8')
#创建一个游标对象
cs1=conn.cursor()
#使用execute()方法执行SQL语句
cs1.execute("drop table if exists students")#若已存在students表则删除
#使用预处理语句创建表
sql="""
CREATE TABLE students(
id INT PRIMARY KEY,
name VARCHAR(30),
gender VARCHAR(10),
grade double);
"""
#执行SQL语句
cs1.execute(sql)
conn.close()
if __name__ == '__main__':
main()
mysql> show tables;
+------------------+
| Tables_in_yingmo |
+------------------+
| students |
| weather |
+------------------+
2 rows in set (0.00 sec)
mysql> desc students;
+--------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| id | int(11) | NO | PRI | NULL | |
| name | varchar(30) | YES | | NULL | |
| gender | varchar(10) | YES | | NULL | |
| grade | double | YES | | NULL | |
+--------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)
数据库操作
1.插入一条记录
from pymysql import *
def main():
conn=connect(host='localhost',port=端口号,user='用户名',password='密码',database='表名',charset='utf8')
#创建一个游标对象
cs1=conn.cursor()
sql="INSERT INTO students values('1', 'lucy', 'f', 89)"
#执行SQL语句
cs1.execute(sql)
conn.commit()
conn.close()
if __name__ == '__main__':
main()
查看
mysql> SELECT * FROM students;
+----+------+--------+-------+
| id | name | gender | grade |
+----+------+--------+-------+
| 1 | lucy | f | 89 |
+----+------+--------+-------+
1 row in set (0.00 sec)
2.插入多条记录
from pymysql import *
def main():
conn=connect(host='localhost',port=端口号,user='用户名',password='密码',database='表名',charset='utf8')
#创建一个游标对象
cs1=conn.cursor()
sql="INSERT INTO students values(%s,%s,%s,%s)"
value=[('2','luna','f',80),('3','xiaoming','m',90),('4','zhanghua','m',95)]
#执行SQL语句
cs1.executemany(sql,value)#多条
conn.commit()
conn.close()
if __name__ == '__main__':
main()
查看
mysql> SELECT * FROM students;
+----+----------+--------+-------+
| id | name | gender | grade |
+----+----------+--------+-------+
| 1 | lucy | f | 89 |
| 2 | luna | f | 80 |
| 3 | xiaoming | m | 90 |
| 4 | zhanghua | m | 95 |
+----+----------+--------+-------+
4 rows in set (0.00 sec)
3.数据库删除操作
from pymysql import *
def main():
conn=connect(host='localhost',port=端口号,user='用户名',password='密码',database='表名',charset='utf8')
#创建一个游标对象
cs1=conn.cursor()
sql="DELETE FROM students WHERE name='luna'"#删除语句
#执行SQL语句
cs1.execute(sql)
conn.commit()
conn.close()
if __name__ == '__main__':
main()
mysql> SELECT * FROM students;
+----+----------+--------+-------+
| id | name | gender | grade |
+----+----------+--------+-------+
| 1 | lucy | f | 89 |
| 3 | xiaoming | m | 90 |
| 4 | zhanghua | m | 95 |
+----+----------+--------+-------+
3 rows in set (0.00 sec)
已删除
4.数据库修改操作
from pymysql import *
def main():
conn=connect(host='localhost',port=端口号,user='用户名',password='密码',database='表名',charset='utf8')
#创建一个游标对象
cs1=conn.cursor()
sql="UPDATE students SET grade=98 WHERE name='lucy'"
#执行SQL语句
cs1.execute(sql)
conn.commit()
conn.close()
if __name__ == '__main__':
main()
查看
mysql> SELECT * FROM students;
+----+----------+--------+-------+
| id | name | gender | grade |
+----+----------+--------+-------+
| 1 | lucy | f | 98 |
| 3 | xiaoming | m | 90 |
| 4 | zhanghua | m | 95 |
+----+----------+--------+-------+
3 rows in set (0.00 sec)
已修改完成
5.查询操作
from pymysql import *
def main():
conn=connect(host='localhost',port=端口号,user='用户名',password='密码',database='表名',charset='utf8')
#创建一个游标对象
cs1=conn.cursor()
sql="SELECT * FROM students"
#执行SQL语句
cs1.execute(sql)
result=cs1.fetchall()#获取全部
for i in result:
print(i)
conn.close()
if __name__ == '__main__':
main()
from pymysql import *
def main():
conn=connect(host='localhost',port=端口号,user='用户名',password='密码',database='表名',charset='utf8')
#创建一个游标对象
cs1=conn.cursor()
sql="SELECT * FROM students"
#执行SQL语句
cs1.execute(sql)
result=cs1.fetchmany(size=None)#只获取第一个
print(result)
conn.close()
if __name__ == '__main__':
main()