Mysql【pycharm操作MYSQL】

pycharm操作MYSQL

1.往mysql里面写数据

import pymysql

no = int(input('部门编号:'))
name = input('部门名称:')
location = input('部门所在地:')
# 注意sql注射攻击,最忌讳拼接和格式化

# 第一步:建立连接mysql服务器,得到一个连接对象
conn = pymysql.connect(host='localhost', port=3307,
                       user='guest', password='Guest.618',
                       database='hrs', charset='utf8mb4'
                       )
# autocommit = True自动提交
# print(conn)

# 异常捕获
try:
    # 第二步:获得游标,获得cursor对象
    cursor = conn.cursor()
    # 第三步:通过游标对象向数据库发出sql
    # cursor.execute('')写sql语句
    affected_rows = cursor.execute('insert into tb_dept(dno, dname, dloc) values(%s,%s,%s)',
    (no, name, location)
                                   )
    # %s安全占位符:%safe
    if affected_rows == 1:
        print("数据添加成功!")
    # 第四步:提交事务(成功)
    conn.commit()
except pymysql.MySQLError as err:
    print(err)
    # 第四步:回滚事务(失败)
    conn.rollback()
finally:
    # 第五步:手动关闭(释放资源)
    # 关闭一定放在finally后面
    conn.close()

2. 在pycharm中删除操作

affected_rows1 = cursor.execute(
    'delete from tb_dept where dno = %s', (no,)
)

3.在pycharm中修改操作

affected_rows2 = cursor.execute(
        'update tb_dept set dname = %s,dloc = %s where dno = %s,(name,location,no)
    )

4.查询数据

import pymysql

# 第一步:建立连接mysql服务器,得到一个连接对象
conn = pymysql.connect(host='localhost', port=3307,
                       user='guest', password='Guest.618',
                       database='hrs', charset='utf8mb4'
                       )

# 异常捕获
try:
    # 第二步:获得游标,获得cursor对象
    cursor = conn.cursor()
    # 第三步:通过游标对象向数据库发出sql
    affected_rows = cursor.execute(
        '''select dno 
                ,dname
                ,dloc 
            from tb_dept'''
    )
    # 第四步:通过游标对象抓取数据
    # print(cursor.fetchall())
    # print(cursor.fetchmany(3))
    # print(cursor.fetchone())
    data = cursor.fetchone()
    while data:
        print(data)
        data = cursor.fetchone()
    # 海象运算符3.8以后才能用
    # 赋值表达式的值可以直接作为while循环的条件
    # while data := cursor.fetchone()
        # print(data)
except pymysql.MySQLError as err:
    print(err)

finally:
    # 第五步:手动关闭(释放资源)
    # 关闭一定放在finally后面
    conn.close()

5.将数据库的二维表导出到excle

import pymysql
import openpyxl
# 创建工作簿对象
from openpyxl.worksheet.worksheet import Worksheet

wb = openpyxl.Workbook()
# 获取默认的工作表
sheet1 = wb.active
# 万能补全快捷键 ctrl + shift + alt+ enter
sheet1.title = '部门表'
# 添加表头
sheet1.append(('部门编号', '部门名称', '所在地'))

# 创建新的工作表
sheet2 = wb.create_sheet('员工表')
sheet2.append(('工号', '姓名', '职位', '主管', '月薪', '补贴', '所属部门'))

# 第一步:建立连接mysql服务器,得到一个连接对象
conn = pymysql.connect(host='localhost', port=3307,
                       user='guest', password='Guest.618',
                       database='hrs', charset='utf8mb4'
                       )

# 异常捕获
try:
    # 第二步:获得游标,获得cursor对象
    cursor = conn.cursor()
    # 第三步:通过游标对象向数据库发出sql
    affected_rows = cursor.execute(
        '''select dno 
                ,dname
                ,dloc 
            from tb_dept'''
    )
    while data := cursor.fetchone():
        sheet1.append(data)

    cursor.execute(
        '''select t1.eno
            ,t1.ename
            ,t1.job
            ,t2.ename
            ,t1.sal
            ,t1.comm
            ,dname 
            from tb_emp as t1  left join tb_emp as t2 
            on t1.mgr=t2.eno inner join tb_dept as t3 
            on t1.dno = t3.dno'''
    )
    while data := cursor.fetchone():
        sheet2.append(data)
except pymysql.MySQLError as err:
    # 输出异常消息
    print(err)

finally:
    # 第五步:手动关闭(释放资源)
    # 保存工作簿对象
    wb.save('人力资源管理.xlsx')
    conn.close()

你可能感兴趣的:(MySQL,mysql,pycharm,数据库)