Python3.6使用pymysql模块管理MySQL数据库

目录

0、写在前面

记录MySQL相关操作命令以及使用pymysql模块管理MySQL数据库的相关代码,然后介绍可视化数据库的工具Navicat以及Pycharm中的工具。

1、MySQL
1.1、安装

直接官网下载手动版安装,设置环境变量以及设置密码。
参考win10下装mysql-5.7.18-winx64

1.2、相关命令

启动(如果无法启动,可以右击我的电脑->管理->服务->MySQL->启动,如果是开启但仍然出错,可以重新启动)

net start mysql

停止

net stop mysql

登陆

mysql -u root -p
....输入密码

退出

exit

数据库从大到小依次为库->表->行->列
创建库

CREATE DATABASE database_name

删除库

DROP DATABASE_name
2、pymysql
2.1、安装
pip install pymysql
2.2、基本操作

主要是SQL语言的使用,包括创建,插入,查找,删除,更新等操作

2.2.1、连接
import pymysql
# 连接数据库
db = pymysql.connect("localhost", "root", "password", "database_name")

# 使用cursor()获取操作游标
cursor = db.cursor()

# 使用游标执行SQL命令
cursor.execute(sql_command)

# 提交到数据库执行
db.commit()

# 关闭数据库连接
db.close()

以下均给出SQL操作命令,可以直接将返回命令带入cursor.execute()中

2.2.2、创建表
def creat():
    # 使用预处理语句创建表
    sql_creat = """CREATE TABLE EMPLOYEE (
             FIRST_NAME  CHAR(20) NOT NULL,
             LAST_NAME  CHAR(20),
             AGE INT,
             SEX CHAR(1),
             INCOME FLOAT )"""
    return sql_creat

这里创建了一个名为EMPLOEE的表,包含姓、名、年龄、性别、收入等五个属性(列)。
注意需要标明数据类型,这里着重记录一下字符串类型:

    可以在括号中给出数据最大大小,后面给出了最大大小(bytes)
    char()       < 255
    varchar()    < 65535
    text()       < 65535 ,
    longtext()   < 4G  , 可以保存文章
2.2.3、插入
def insert():
    # SQL 插入语句
    sql_insert1 = """INSERT INTO EMPLOYEE(FIRST_NAME,
             LAST_NAME, AGE, SEX, INCOME)
             VALUES ('Zhang', 'Kaiyan', 20, 'M', 2000)"""

    # SQL 插入语句, 通过参数给出
    first_name = 'Zhanf'
    last_name = 'Kaiyan'
    age = 21
    gender = 'M'
    income = 1000
    sql_insert2 = """INSERT INTO EMPLOYEE
                (FIRST_NAME,LAST_NAME, AGE, SEX, INCOME)
                 VALUES ('{}', '{}', {}, '{}', {})""".format(first_name, last_name, age, gender, income)
    return sql_insert1

第二种通过参数给出,更常用,是使用的格式化,也可以这样给出

    sql_insert2 = "INSERT INTO EMPLOYEE(FIRST_NAME,LAST_NAME, AGE, SEX, INCOME) VALUES (%s, %s, '%d', '%c', '%d')" % (first_name, last_name, age, gender, income)
2.2.4、查找

fetchone(): 该方法获取下一个查询结果集。结果集是一个对象
fetchall(): 接收全部的返回结果行.
rowcount: 这是一个只读属性,并返回执行execute()方法后影响的行数。

def search(cursor):
    # 查找收入大于1000的对象返回
    sql = "SELECT * FROM EMPLOYEE WHERE INCOME > '%d'" % (1000)
    cursor.execute(sql)
    results = cursor.fetchall()
    return results

可以遍历返回结果

for row in search(cursor):
      fname = row[0]
      lname = row[1]
      age = row[2]
      sex = row[3]
      income = row[4]
      # 打印结果
      print ("fname=%s,lname=%s,age=%d,sex=%s,income=%d" % \
             (fname, lname, age, sex, income ))
2.2.5、删除
def delete():
    # 删除表EMPLOEE中所有年龄大于20的对象
    sql = "DELETE FROM EMPLOYEE WHERE AGE > '%d'" % (20)
    return sql
2.2.6、更新
def update():
    # 更新表EMPLOEE中性别为M的对象的年龄,将年龄加1
    sql = "UPDATE EMPLOYEE SET AGE = AGE + 1 WHERE SEX = '%c'" % ('M')
    return sql

参考链接
Python3 MySQL 数据库连接
MySQL表操作及字段数据类型

3、可视化MySQL数据库
3.1 Navicat

安装破解参考Navicat Premium 12.0.29安装与激活
注意需要断网

3..2 Pycharm

一般在Pycharm的右边,选择MySQL,填入数据库名,以及用户名及密码即可,可以进行操作以及提交。

记录一个问题,在pycharm中,使用SQL语言会出现警告,解决参考idea的mybatis的xml文件总是报警告SQL dialect is not configured

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值