首页 > 数据库 >数据库03- pycharm连接mysql

数据库03- pycharm连接mysql

时间:2022-10-01 09:00:07浏览次数:80  
标签:03 -- pymysql cursor print mysql pip pycharm conn

3,Python 连接操作MySQL

安装配置git与pycharm连接

pycharm从gitee拉取代码

从git官网下载新版的git,安装操作可以全部使用默认下一步直到完成。

打开pycharm--> setting --> version control --> git ,在窗口顶部,path to Git executable会自动检测到git的安装路劲,点击Test验证是否可成功执行。

clone代码连接:https://gitee.com/fishatc/smart-testing.git

pycharm 上传代码到gitee仓库

step1:pycharm中安装gitee插件,安装之后会提示restart IDE,直接重启就好

step2: 登录gitee

step3:vcs--> import into version control --> share project on gitee

step4, 在弹出框中填写对应 的从仓库和描述信息即可 --》 点击share--》弹框中选择要commit的文件


step5, 如果修改了某个文件,右击该文件--》git --》Commit File

step6, push 到远程仓库

给项目建虚拟环境:

图形界面:

pycharm--> setting --> project --> project interpreter -->在齿轮处选择add --> 默认在项目目录下创建venv

命令行:

#方式1:
pip install virtualenv
#方式2:test_env为一个文件夹
python -m venv test_env
#激活虚拟环境
cd test_env/Scripts
activate
#退出虚拟环境
deactivate

替换pip镜像源为国内豆瓣的:直接使用pip命令替换

(venv) D:\db1901>pip install numpy -i https://pypi.douban.com/simple/

或者命令:

(venv) D:\db1901>pip config set global.index-url http://pypi.douban.com/simple/

安装依赖

依赖包requirements.txt 文件:

certifi==2019.6.16
chardet==3.0.4
idna==2.8
PyMySQL==0.9.3
redis==3.3.8
requests==2.22.0
urllib3==1.25.3
(venv) D:\db1901>pip install -r requirements.txt
#查看虚拟环境下已经安装的依赖包
(venv) D:\db1901>pip freeze
certifi==2019.6.16
chardet==3.0.4
idna==2.8
numpy==1.21.6
PyMySQL==0.9.3
redis==3.3.8
requests==2.22.0
urllib3==1.25.3
xlrd==2.0.1

pip 安装依赖报错

Could not install packages due to an EnvironmentError: [WinError 5] Access is denied: 'd:\db1901\venv\scripts\pip.exe'
Consider using the --user option or check the permissions.

可能原因是pip版本过低。

解决办法:直接使用第二条应该就OK.

尝试1,将Python安装文件夹C:\Program Files\Python37和虚拟环境文件夹D:\db1901\venv文件夹赋予administrators 和本机用户 full control 权限,重启电脑

在pycharm下terminal,执行

pip install -U pip

仍然报错:

Cannot open D:\db1901\venv\Scripts\pip-script.py

尝试2,执行一条命令 python -m ensurepip,发现pip版本从19.0.3降到18.1,再次执行pip install -U pip,成功升级到最新22.2。

通过python操作mysql

连接和插入数据

import pymysql

no = int(input('部门编号:'))
name = input('部门名称:')
location = input('部门所在地:')

# 第一步:指定主机、端口、用户名、口令、数据库、字符集创建连接
conn = pymysql.connect(host='192.168.1.10', port=3306,
                       user='zabbix', password='123456',
                       database='company', charset='utf8',
                       autocommit=True)
try:
    # 第二步:通过连接对象的cursor方法获取游标对象
    with conn.cursor() as cursor:
        # 第三步:通过游标对象的execute方法向数据库发出SQL
        result = cursor.execute(
            'insert into tb_dpt values (%s, %s, %s)',
            (no, name, location)
        )
        if result == 1:
            print('新增部门成功!!!')
    # 第四步:所有操作都成功就提交
    conn.commit()
except pymysql.MySQLError as err:
    print(err)
    # 第四步:如果出现异常就回滚(撤销)
    conn.rollback()
finally:
    # 第五步:关闭连接释放资源
    conn.close()

删除

import pymysql

no = int(input('部门编号:'))

# 第一步:创建连接对象
conn = pymysql.connect(host='192.168.1.10', port=3306,
                       user='zabbix', password='123456',
                       database='company', charset='utf8',
                       autocommit=True)
try:
    # 第二步:获取游标对象
    with conn.cursor() as cursor:
        # 第三步:通过游标对象的execute方法向数据库发出SQL
        result = cursor.execute(
            #删除
            'delete from tb_dpt where dno=%s ',(no,),
        )
        if result == 1:
            print('删除部门成功!!!')
    # 第四步:所有操作都成功就提交
    conn.commit()
except pymysql.MySQLError as err:
    print(err)
    # 第四步:如果出现异常就回滚(撤销)
    # conn.rollback()
finally:
    # 第五步:关闭连接释放资源
    conn.close()

更新

import pymysql

no = int(input('部门编号:'))
dcom = input('部门对应的公司:')
# 第一步:创建连接对象
conn = pymysql.connect(host='192.168.1.10', port=3306,
                       user='zabbix', password='123456',
                       database='company', charset='utf8',
                       autocommit=True)
try:
    # 第二步:获取游标对象
    with conn.cursor() as cursor:
        # 第三步:通过游标对象的execute方法向数据库发出SQL
        result = cursor.execute(
            #更新部门对应公司
            'update tb_dpt set dcom=%s where dno=%s ',(dcom,no,),
        )
        if result == 1:
            print('更新部门成功!!!')
    # 第四步:所有操作都成功就提交
    conn.commit()
except pymysql.MySQLError as err:
    print(err)
    # 第四步:如果出现异常就回滚(撤销)
    # conn.rollback()
finally:
    # 第五步:关闭连接释放资源
    conn.close()

查询

import pymysql

# 第一步:创建连接对象
conn = pymysql.connect(host='192.168.1.10', port=3306,
                       user='zabbix', password='123456',
                       database='company', charset='utf8',
                       autocommit=True)
try:
    # 第二步:获取游标对象
    with conn.cursor() as cursor:
        # 第三步:通过游标对象的execute方法向数据库发出SQL
        # 查看部门
        cursor.execute('select dno,dname,dcom from tb_dpt')
        # print(cursor.fetchall())
        for i in cursor.fetchall():
            print('部门编号:', i[0], '部门名称:', i[1],'部门所在公司:', i[2])
except pymysql.MySQLError as err:
    print(err)
    # 第四步:如果出现异常就回滚(撤销)
    # conn.rollback()
finally:
    # 第五步:关闭连接释放资源
    conn.close()

4,一对一外键关联

create table tb_person
(
pid int auto_increment,
pname varchar(50) not null,
primary key (pid)
);

create table tb_card
(
cid int auto_increment,
cno char(18) not null,
ps varchar(255) not null,
expire date not null,
pid int not null,
primary key (cid)
);

-- 添加外键约束
alter table tb_card add constraint fk_card_pid foreign key (pid) references tb_person (pid);
alter table tb_card add constraint uni_card_pid unique (pid);

标签:03,--,pymysql,cursor,print,mysql,pip,pycharm,conn
From: https://www.cnblogs.com/orange2016/p/16746741.html

相关文章

  • mysql笔记
    mysql安装yum安装mysql安装命令yum-yinstallmysql-servermysql配置文件/etc/my.cnf/etc/my.cnf.d/mysql-server.cnf/etc/my.cnf.d/client.cnf配置文件......
  • 安装mysql-community-server-8.0.30-1.el7.x86_64报错解决办法
    1.错误如下:warning:/usr/local/src/mysql-community-server-8.0.30-1.el7.x86_64.rpm:HeaderV4RSA/SHA256Signature,keyID3a79bd29:NOKEYerror:Faileddepend......
  • MySQL数据库中乐观锁和悲观锁【杭州多测师】【杭州多测师_王sir】
    乐观锁和悲观锁的理解及如何实现,有哪些实现方式?悲观锁:总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会......
  • mysql-缓冲池
    为什么要有缓冲池?InnoDB存储引擎是以数据页为单位来管理存储空间的,当我们对MySQL数据库进行增删改查等操作时,其本质都是在访问操作数据页,如读页,写页,新建页等。因此DBMS会......
  • Jupyter notebook导入Pycharm项目的.py文件里的模块及方法
    Jupyternotebook导入Pycharm项目种的.py文件里的模块及方法需要在Jupyternotebook里调用自己写的代码,过程如下。首先在Pycharm里写好一个文件,例如DCCACoef_Analysis.py......
  • 使用 Docker 部署 MySql
    前言虽然不建议将需要持久化的数据保存在容器中,但是自己平时做个小项目玩玩还是没什么问题的。拉取镜像dockerpullmysql不加tag的话默认从DockerHub拉取最新版......
  • 光电功能材料--名词解释03
    热词理解1能级能层(英语:Energylevel)理论是一种解释原子核外电子运动轨道的一种理论。它认为电子只能在特定的、分立的轨道上运动,各个轨道上的电子具有分立的能量,这些能......
  • Frida spawn process failed on Android 'Error: VM::AttachCurrentThread failed:
    https://stackoverflow.com/questions/36680128/frida-spawn-process-failed-on-android竟然国内搜不到这个问题。原因是没有将设备resume。办法为device.resume(pid......
  • 在安装d4rl时报错 AttributeError: 'MazeEnv' object has no attribute 'sim'。
    在安装d4rl时报错,AttributeError:'MazeEnv'objecthasnoattribute'sim'。如下:   后经过研究,发现是因为安装的gym版本为0.24.1可能会引发一些问题,参考之前的安......
  • MySQL Workbench 创建用户
    创建本机用户    选择权限(增删改查)6个  创建新用户编辑窗口   ......