Pycharm连接MySQL

2023-11-16

使用MySQL内置工具(命令)

        创建数据库:unicom

        数据表:admin

表名:admin
列:
    id 整型 自增 主键
    username 字符串 不为空,
    password 字符串 不为空,
    mobile   字符串 不为空

Python代码实现

        添加用户

        删除用户

        查看用户

        更新用户信息

创建数据

1.创建表结构:

在数据库里先创建一个库名unicom,表名admin

create database unicom DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
use unicom;
create table admin(id int not null auto_increment primary key, 
									username varchar(16) not null,
									password varchar(16) not null,
									mobile char(11) not null
									)default charset=utf8;

2.Python操作MySQL:

下载pymysql库:pip install pymysql

import pymysql

#1.连接MySQL
conn = pymysql.connect(host="127.0.0.1",port=3306,user="root",passwd="123456",charset="utf8",db='unicom')
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)#游标
#2.发送指令
cursor.execute("insert into admin(username,password,mobile) values('lsc','123456','12345678910')")
conn.commit()#提交指令

#3.关闭
cursor.close()
conn.close()

 执行完上述代码后,admin表内已经写入数据

 这两种方法也可以传值

sql="insert into admin(username,password,mobile) values(%s,%s,%s)"
cursor.execute(sql,["李明","234567","13992888888"])
sql="insert into admin(username,password,mobile) values(%(n1)s,%(n2)s,%(n3)s)"
cursor.execute(sql,{"n1":"丽丽","n2":"234567","n3":"13992888888"})

动态创建数据:

import pymysql

while True:
    user = input("用户名")
    if user.upper()=="X":
        break
    pwd = input("密码:")
    mobile = input("手机号:")

    #1.连接MySQL
    conn = pymysql.connect(host="127.0.0.1",port=3306,user="root",passwd="123456",charset="utf8",db='unicom')
    cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)#游标
    #2.发送指令

    sql="insert into admin(username,password,mobile) values(%s,%s,%s)"
    cursor.execute(sql,[user,pwd,mobile])
  

    conn.commit()#提交指令

    #3.关闭
    cursor.close()
    conn.close()

 添加用户成功

 

 查询数据

import pymysql
# 1.连接MySQL
conn = pymysql.connect(host="127.0.0.1", port=3306, user="root", passwd="123456", charset="utf8", db='unicom')
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)  # 游标
# 2.发送指令

cursor.execute("select * from admin")
data_list = cursor.fetchall()# :将返回所有结果,返回二维元组,如((‘id’,‘title’),(‘id’,‘title’)),
for row_dict in data_list:
    print(row_dict)

# 3.关闭
cursor.close()
conn.close()

 将数据库中数据返回列表内含字典的格式

data_list1 = cursor.fetchone()#筛选出来的第一条数据
data_list1 = cursor.fetchall()#获取筛选出来的所有数据

删除数据

import pymysql
# 1.连接MySQL
conn = pymysql.connect(host="127.0.0.1", port=3306, user="root", passwd="123456", charset="utf8", db='unicom')
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)  # 游标
# 2.发送指令

cursor.execute("delete from admin where id=%s",[2,])
conn.commit()

# 3.关闭
cursor.close()
conn.close()

id=2的数据被删除

修改数据

import pymysql
# 1.连接MySQL
conn = pymysql.connect(host="127.0.0.1", port=3306, user="root", passwd="123456", charset="utf8", db='unicom')
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)  # 游标
# 2.发送指令

cursor.execute("update admin set mobile=%s where id=%s",["17777777777",3,])
conn.commit()

# 3.关闭
cursor.close()
conn.close()

 修改id=3的mobile

 总结:

在进行新增,删除,修改时,要记得commit,不然数据库没有操作

在查询时,不需要commit,需要执行fetchall/fetchone

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Pycharm连接MySQL 的相关文章

  • Preg_replace() 删除除查询结尾之外的所有内容

    首先 为我糟糕的英语感到抱歉 我有这样的疑问 SELECT t1 SELECT COUNT FROM table a t2 WHERE t1 id t2 id c AND t2 status 1 AS aula FROM table c t
  • 在 MacOSX10.6 上运行 python 服务器时 MySQLdb 错误

    运行我的服务器 python manage py runserver 产生以下错误 django core exceptions ImproperlyConfigured 加载 MySQLdb 模块时出错 没有名为 MySQLdb 的模块
  • 阻止注销页面后的后退按钮

    我有 php 注销页面 当用户单击注销链接时 请参阅此页面并重定向到索引页面 但是当单击后退按钮时 我会看到带有用户数据的上一页 当然 当我刷新页面时 我看不到以前的页面和数据 我在单击注销并单击后退按钮后检查了其他代码 drupal 但我
  • 第三个下拉菜单不从数据库填充

    我有以下 Index php
  • 如何在Mysql中仅将不同的值从一个表复制到另一个表?

    我有一个大约 2 5GB 的 MySql 数据库 表 A 具有以下列 anoid query date item rank url 我刚刚创建了另一个仅包含列的表 b query and date 我想在查询列中插入所有不同的记录 及其各自
  • MYSQL 区分大小写的 utf8 搜索(使用 hibernate)

    我的登录表具有 utf8 字符集和 utf8 排序规则 当我想要检查用户名并检索该特定用户名的其他信息时 hql 查询会为我提供小写和大写相同的结果 我应该如何处理适用于案例的 HQL 查询 我使用 Mysql 5 和 java hiber
  • 使用 PHP 的 MySQL 连接字符串

    我正在尝试通过本地计算机连接到托管在我的服务器上的数据库 我的服务器有cPanel 11 它是一个典型的共享服务器 由CentOS提供支持 安装了PHP和MySQL 准确地说 我在同一台服务器上持有经销商帐户 我想在不同帐户或域之间访问数据
  • MySQL PHP邮政编码比较具体距离

    我试图找出比较一个邮政编码 用户提供的 和一大堆其他邮政编码 现在大约有 200 个邮政编码 之间的距离的最有效方法 相对于加载时间 但它会随着时间的推移而增加 我不需要任何精确的东西 只是在球场上 我下载了整个美国的邮政编码 csv 文件
  • MySQL 按重复项从上到下排序

    我有一个lammer问题 因为我不是mysql专业人士 我有类似的字段 id color 1 red 2 green 3 yellow 4 green 5 green 6 red 我想按重复项进行分组 最常见的重复项先进行分组 所以应该这样
  • 将第三个表链接到多对多关联中的桥接表

    设计这个数据库的正确方法是什么 这是我设置表格的方式 我在名为 教师 的表和名为 仪器 的表之间存在多对多关系 然后我有一个连接两者的桥接表 我想将另一个表与 BRIDGE 表关联起来 意思是乐器 老师的组合 该表有 3 行 指定老师可以教
  • 即使使用“autoReconnect=true”,MySql JDBC 也会超时[重复]

    这个问题在这里已经有答案了 有时 我的 Java Tomcat6 Debian Squeeze 应用程序无法与 MySql 服务器通信 Tomcat 应用程序位于前端服务器上 而 MySql 位于单独的 仅限 MySql 的机器上 一个典型
  • Mysql 将 int 转换为 MAC

    我有一些数据可以转换 其中有 2 列 其中一列有 IP 它包含整数值 我在 mysql 查询中使用了以下函数 是否有一个函数可以用来转换我的 mac 列 其中包含整数和数据类型是bigint to MAC地址 SELECT INET NTO
  • Flask-login:无法理解它是如何工作的

    我试图理解如何Flask Login https flask login readthedocs org en latest works 我在他们的文档中看到他们使用预先填充的用户列表 我想使用数据库存储的用户列表 但是 我不明白其中的一些
  • MySQL 查询到 CSV [重复]

    这个问题在这里已经有答案了 有没有一种简单的方法来运行MySQL查询来自linux命令行并以csv格式输出结果 这就是我现在正在做的事情 mysql u uid ppwd D dbname lt lt EOQ sed e s g tee l
  • Bugzilla 中分离客户端的基本权限

    我正在尝试配置一个 Bugzilla 实例 这将允许我的客户登录并为其正在开发 维护的网站提交错误 例如 我创建了 2 个名为 TestProject TestProject2 的产品和一个名为 TestClient 的用户 我想要实现的是
  • Java JDBC:更改表

    我希望对此表进行以下修改 添加 状态列 varchar 20 日期列 时间戳 我不确定该怎么做 String createTable Create table aircraft aircraftNumber int airLineCompa
  • 同一配置文件上的两个不同提供程序

    我在用着实体框架 6 1 0 I have 2 家提供者 MysqlClient 和 SQLServerCE 我需要创建2个不同的DBContext 这迫使我创造2个配置类因为mysql有一些不同的东西 但是当我初始化应用程序时 Datab
  • 映射 mysql 中同一个表的多个值

    您好 我必须使用另一个表中的值 id 获取文本值 表 1 包含值 ID 表 2 包含名称和值 ID 表 1 SEVERITY OCCURENCE DETECTABILITY 2 3 4 表 2 id name value 1 Very Hi
  • SQL不允许表中有重复记录

    如何使其不添加重复项 我想让它通过 ID 之外的所有其他列进行检查 我希望这个无效 ID col1 col2 col3 1 first middle last ID col1 col2 col3 2 first middle last 我希
  • 如何修改现有表以添加时区

    我有一个包含 500 多个表的大型应用程序 我必须将应用程序转换为时区感知 当前应用程序使用new java util Date GETDATE 与服务器的时区 即没有任何时区支持 我已将这项任务分为几个步骤 以便于开发 我确定的第一个步骤

随机推荐

  • Selenium 高频面试题及答案

    1 什么是 Selenium 它用于做什么 Selenium 是一个用于自动化测试的开源框架 它提供了多种工具和库 用于模拟用户在不同浏览器和操作系统上的行为 并且可用于测试网页应用程序 2 Selenium WebDriver 和 Sel
  • 2023前端面试题及答案整理(CSS)

    盒模型 标准盒模型 W3C标准 一个块的总宽度 内容宽度 margin 左右 padding 左右 border 左右 怪异盒模型 IE标准 一个块的总宽度 width 包含 padding 和 border margin 左右 怪异盒模型
  • C++并发编程框架Theron(8)——Theron中包含的类(二)

    1 前言 本篇文章主要接着上一篇来介绍Theron框架库中包含的类 上一篇中主要介绍了Theron下Actor Address AllocatorManager和Catcher类 在本篇文章中我会相继介绍DefaultAllocator E
  • 解决vscode找不到arduino esp8266头文件

    用Arduino IDE写ESP8266没有代码补全 不能跳转查看头文件 个人觉得这是最难受的 vscode装上Microsoft的arduino扩展后 有时候会找不到头文件 刚开始自己傻傻的一个个往includePath里面添加 后来在引
  • 决策树(Decision Tree)简介

    决策树 Decision Tree 及其变种是另一类将输入空间分成不同的区域 每个区域有独立参数的算法 决策树分类算法是一种基于实例的归纳学习方法 它能从给定的无序的训练样本中 提炼出树型的分类模型 树中的每个非叶子节点记录了使用哪个特征来
  • 李宏毅机器学习课程第4讲:Estimator

    李宏毅机器学习课程第4讲 Estimator 味儿太冲了 开头又是宝可梦哈哈哈哈哈 不过听了这一讲 我对于过拟合和欠拟合的理解更深刻了 李老师从Bias和Variance两个角度进行了解释 对 于 这 样 一 个
  • linux centos7 centos8 Rocky8.8 Rocky9.2 sed错误sed: -e expression #1, unknown option to `s‘解决办法

    报错如下 sed e expression 1 char 13 unknown option to s 需要替换的行为 monitor url http 192 168 25 100 8443 rest 查询资料得知 报错是因为替换的字符串
  • 高等数学(工本)填空题

    1 2 3 4 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 4
  • Error: listen EADDRINUSE: address already in use 127.16.20.217:8090

    端口占用npm run staert无效 今天遇到一个问题 就是在提交代码时怕把本地端口号提交到远程 然后将已经启用的端口设置为localhost 待提交完代码后再刷新页面 结果一直更新不出来 然后重启代码 终端报 Error listen
  • 怎么上传代码到GitHub

    怎么上传代码到GitHub 2021 9 我们想要把代码上传到github上面用git管理 但是怎么操作呢 首先在本地电脑安装git 和在github上面注册账号 git下载地址 git官网链接 然后我们要知道有二种方式可以配置操作 一种是
  • 机器学习有监督学习之--回归

    一 引言 本材料参考Andrew Ng大神的机器学习课程 http cs229 stanford edu 以及斯坦福无监督学习UFLDL tutorial http ufldl stanford edu wiki index php UFL
  • Linux 多线程调试(内存占用、死循环、CPU占用率高……)

    你的软件在某个时刻停止服务 CPU占用达到100 这种问题一个可能的原因是产生了死循环 假设程序某处存在潜在的死循环 并在某种条件下会引发 本文以一个示例来定位出现死循环的位置 当程序某处存在死循环 通常定位问题及缩小范围的方法是 在可疑的
  • 数据库Sharding集群:扩容问题解决方案

    数据库Sharding集群扩容问题方案 MySQLSharding集群一般按照用户id进行哈希分区 这里面存在两个问题 1 集群的容量不够怎么办 2 单个用户的数据量太大怎么办 一 问题一 对于第1个问题 MySQLSharding集群往往
  • UART与TTL

    一 首先UART和TTL完全就是两码事 UART是通用异步收发传输器 Universal Asynchronous Receiver Transmitter 通常称作UART 是一种串行异步收发协议 TTL电平信号规定 5V等价于逻辑 1
  • DataOutputStream 类与BufferedOutputStream类的区别是什么

    DataOutputStream 类与Buffere dOutputStream类的区别是什么 DataOutputStream dataout new DataOutputStream new FileOutputStream file
  • Google Earth Engine(GEE) 01-中输入提示快捷键Ctrl+space无法使用的问题

    Google Earth Engine GEE 01 中输入提示快捷键Ctrl space无法使用的问题 GEE中 Ctrl space组合键用于代码输入快捷提示 能够提高编码的准确度和速度 但是 windows系统默认Ctrl space
  • Windows下Jenkins的运行环境由Java8 升级为Java11

    开源 Devops 工具 Jenkins 在官方博客宣布 从 6 月 28 日发布的 Jenkins 2 357 和将于 9 月发布的 LTS 版本开始 Jenkins 需要 Java 11 才能使用 将放弃 Java 8 步骤 1 安装j
  • STM32CUBEMX配置教程(一)基础配置

    STM32CUBEMX配置教程 一 基础配置 基于STM32H743VI 使用STM32CUBEMX两年了 始终觉得这个工具非常的方便 但因为不是经常使用 导致有些要点总是会有些遗忘 因此写下这一系列教程以供记忆 顺便让我这个大萌新给广大小
  • c++智能指针之auto_ptr详解(有源码有实例)

    前言 内存泄漏大概是每一个c c 程序员最深恶痛绝的问题 因为大部分此类问题都是令广大c程序员很抓狂 掉头发的疑难杂症 而内存泄漏的根本原因就是指针的使用不当引起的 例如指针指向的内存没有释放 导致产生了程序无法控制的内存块 而随着程序不断
  • Pycharm连接MySQL

    使用MySQL内置工具 命令 创建数据库 unicom 数据表 admin 表名 admin 列 id 整型 自增 主键 username 字符串 不为空 password 字符串 不为空 mobile 字符串 不为空 Python代码实现