python MySQL的一些基本操作
中文官方文档:MySQL 中文文档 | MySQL 中文网 (mysqlzh.com)
一、基本操作
1、登录MySQL:
win+R 进入cmd:
输入:mysql -uroot -p
再输入自己设置的密码:
就可以进入:

2、查看mysql中所有数据库(Database) : show databases; (以分号结尾)

3、创建数据库(前面两个单词固定,后面一个为自己要创建的数据库的名字):create database aaaaaa_bbbbbbb;

有这个说明创建成功
再次查询,可以看到确实成功

4、删除数据库:drop database aaaaaa_bbbbbbb;
删除成功:

5、切换进某个数据库(第二个参数为要进入的数据库):use pythondb;

切换成功:
6、可以查看数据库中所有表: show tables;

可以看到有一个表(刚开始没有需要自己创建,下面会讲):
7、删除表格: drop table data;

删除之后变成空的了。
创建一个表格并制定表头(这里先不讲):
CREATE TABLE excel(
`province` varchar(40),
`city` varchar(30),
`nowConfirm` int ,
`newAdd` int ,
`total` int ,
`heal` int ,
`dead` int ,
`healRate` varchar(20) ,
`deadRate` varchar(20) ,
`time` varchar(20),
PRIMARY KEY (`province`,`time`)) DEFAULT CHARSET=utf8;

成功
8、查看表格标表头 : desc excel;

二、开始用python操作
为了方便讲解我用了一个可视化MySQL的软件:Navicat

1、首先肯定是先创建一个
# 创建数据库表 import pymysql # 如果是本机的话 host = 'localhost' #'127.0.0.1' # 下面两个参数是自己安装配置时的名字和密码 user = 'root' passwd = 'root' # 打开数据库连接,不需要指定数据库,因为需要创建数据库 conn = pymysql.connect(host=host,user = user,passwd = passwd) #获取游标 cursor=conn.cursor() # 创建数据库的语句 sql = 'CREATE DATABASE IF NOT EXISTS test_db DEFAULT CHARSET utf8 COLLATE utf8_general_ci;' #创建一个名为test_db数据库 # 执行创建语句 cursor.execute(sql) # 下面的两条语句不能反了 #先关闭游标 cursor.close() #再关闭数据库连接 conn.close() print('创建数据库成功')
结果图:
解释一下某些参数:
# DEFAULT CHARACTER SET utf8 : 代表的是将该库的默认编码格式设置为utf8格式。
# COLLATE utf8_general_ci : 代表的是数据库校对规则,utf8_bin将字符串中的每一个字符用二进制数据存储,区分大小写。
# utf8_genera_ci不区分大小写,ci为case insensitive的缩写,即大小写不敏感。
2、接下来当然就是链接数据库;
import pymysql
# 打开数据库连接,比上面多了两个参数(为最后两个),一个为要打开的数据库,一个为指定编码格式 db = pymysql.connect("localhost", "root", "root", 'test_db', charset='utf8' ) # 使用cursor()方法获取操作游标 cursor = db.cursor() sql = "SELECT VERSION()" # 使用execute方法执行SQL语句,# 获取到版本号 cursor.execute(sql) # 使用 fetchone() 方法获取一条数据 data = cursor.fetchone() # 获取到版本号 print("Database version : %s " % data) # 关闭光标 cursor.close() # 关闭数据库连接 db.close()
运行结果:
3、创建一个数据表(table):create table (大小写都行)
import pymysql # 创建tables,与表头 # 打开数据库连接 db = pymysql.connect("localhost", "root", "root", "test_db", charset='utf8' ) # 使用cursor()方法获取操作游标 cursor = db.cursor() # 若excel的数据表已经存 则。 cursor.execute("DROP TABLE IF EXISTS excel") # 创建数据表SQL语句 sql = """create table excel ( id CHAR(20) NOT NULL, name CHAR(20), age INT, sex CHAR(1), number FLOAT )""" # 执行sql语句 cursor.execute(sql) # 关闭游标 cursor.close() # 关闭数据库连接 db.close()
创建成功:
4、插入数据:
import pymysql # 数据库插入操作 # 打开数据库连接 db = pymysql.connect("localhost", "root", "root", "test_db", charset='utf8' ) # 使用cursor()方法获取操作游标 cursor = db.cursor() # SQL 插入语句 sql = """INSERT INTO excel(id, name, age, sex, number) VALUES ('1114444', 'Mohan', 20, 'M', 2000)""" try: # 执行sql语句 cursor.execute(sql) # 提交到数据库执行 db.commit() print('成功') except Exception as e: print('出错') # Rollback in case there is any error db.rollback() # 关闭数据库连接 db.close()
效果:
这个程序没有去重,所以没运行一次都会加入,不管重复不。
# 记住%s 必须再两边加上''否则会出错
也可以用这样:后面的只可以用变量代替:
sql = "INSERT INTO EMPLOYEE(id,name, age, sex, number)VALUES ('%s', '%s', '%s', '%s', '%s' )" % ('1314', 'hahaha', 34, 'm', 2400)
5、表的查询:
import pymysql # 数据库查询操作 # 打开数据库连接 db = pymysql.connect("localhost", "root", "root", "test_db", charset='utf8' ) # 使用cursor()方法获取操作游标 cursor = db.cursor() # SQL 查询语句, 当其number大于1500时 sql = "SELECT * FROM excel \ WHERE number > %s" % (1500) try: # 执行SQL语句 cursor.execute(sql) # cursor.fetchone() 获取纪录列表,返回一条,读完一条会往下 # 获取所有记录列表,返回全部 results = cursor.fetchall() for row in results: id = row[0] name = row[1] age = row[2] sex = row[3] number = row[4] # 打印结果 print("id=%s,name=%s,age=%s,sex=%s,number=%s" % \ (id, name, age, sex, number )) except Exception as e: print(e) print("Error: unable to fecth data") # 关闭游标 cursor.close() # 关闭数据库连接 db.close()
我自己加了一条
6、更新数据
import pymysql # 打开数据库连接 db = pymysql.connect("localhost", "root", "root", "test_db", charset='utf8' ) # 使用cursor()方法获取操作游标 cursor = db.cursor() # SQL 更新语句, 给女性的number加300 sql = "UPDATE excel SET number = number + 300 WHERE sex = '%c'" % ('w') try: # 执行SQL语句 cursor.execute(sql) # 提交到数据库执行 db.commit() except: # 发生错误时回滚 db.rollback() # 关闭游标 cursor.close() # 关闭数据库连接 db.close()

7、删除
import pymysql # 删除操作 # 打开数据库连接 db = pymysql.connect("localhost", "root", "root", "test_db", charset='utf8' ) # # 使用cursor()方法获取操作游标 cursor = db.cursor() # SQL 删除number<2100数据的语句 sql = "DELETE FROM excel WHERE number < %s" % (2100) try: # 执行SQL语句 cursor.execute(sql) # 提交修改 db.commit() except: # 发生错误时回滚 db.rollback() # 关闭游标 cursor.close() # 关闭连接 db.close()


浙公网安备 33010602011771号