首页 > 数据库 >MySQL数据库:python操作MySQL

MySQL数据库:python操作MySQL

时间:2022-11-28 21:46:11浏览次数:39  
标签:execute mysql python 数据库 sql pymysql cursor MySQL conn

目录

python操作MySQL


一、pymysql模块

import pymysql
 
# 连接mysql,输入root账户和密码
conn = pymysql.connect(
  host='127.0.0.1', 
  port=3306, user='root', 
  passwd='root123', 
  db='db4',
  charset='utf8'
)
# 产生游标对象
cursor = conn.cursor()   # 括号内不填写额外参数 数据是元组 指定性不强  [(),()]  
"""
指定参数为 列表内套字典 [{},{}]
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
"""

# 1 新增
# execute也有返回值 接收的是SQL语句影响的行数
cursor.execute("create database db4 default charset utf8 collate utf8_general_ci")  
conn.commit()
 
# 2 查看数据库
cursor.execute("show databases")
cursor.execute("use db4")
# 查看数据表
cursor.execute("show tables")
result = cursor.fetchall()
conn.commit()
 
# 3 删除数据库db4
cursor.execute("drop database db4")
conn.commit()
 
 
# 4 用mysql查看其中的数据表
cursor.execute("use mysql")
cursor.execute("show tables")
res = cursor.fetchall()
print(res)  # (('columns_priv',), ('db',), ('engine_cost',), ('event',), ('func',), ('general_log',), ('gtid_executed',), ('help_category',), ('help_keyword',), ('help_relation',), ...
 
# 5 关闭连接
cursor.close()
conn.close()

二、pymysql补充说明

1.获取数据

关键字 作用
fetchall() 获取所有的结果
fetchone() 获取结果集的第一个数据
fetchmany() 获取指定数量的结果集

2.增删改查

关键字 作用
autocommit=True connect添加配置,增 删 改 操作时自动确认
conn.commit() 增 删 改 操作时手动添加代码确认

三、注册登录

1.注册

import pymysql
def register():
    print('用户注册')
    # 1 获取用户输入
    username = input('请输入用户名:').strip()
    pwd = input('请输入密码:').strip()
    # 2 获取用户连接mysql数据库
    conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='root123', charset='utf8', db='usersdb')
    cursor = conn.cursor()
    # 3 编写sql语句
    sql_statement = "insert into users(name,password) values('{}','{}') ".format(username, pwd)

    # 4 连接mysql执行sql语句
    cursor.execute(sql_statement)
    conn.commit()

    # 5 关闭数据库连接
    cursor.close()
    conn.close()

    print('注册成功')

2.登录

def login():
    print('用户登录')

    # 1 获取用户信息
    username = input('请输入用户名:')
    pwd = input('请输入密码:')

    # 2 连接mysql服务端
    conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='root123', db='usersdb')
    cursor = conn.cursor()
    # 3 编写sql语句

    # sql_statement = "select * from users where name='{}' and password='{}'".format(username, pwd)
    sql_statement = "select * from users where name='%s' and password='123'" % (username)
    # sql_statement = "select * from users where name='' or 1=1 -- ' and password='123'"
    # 4 执行sql语句
    cursor.execute(sql_statement)

    # cursor.execute("select * from users where name=%s and password=%s", [username, pwd])
    # 5 获取结果
    res = cursor.fetchone()

    # 6 断开与mysql的连接
    cursor.close()
    conn.close()

    # 7 判断返回的信息
    if res:
        print('登录成功', res)
    else:
        print('登录失败', res)

注意:SQL注入的问题

标签:execute,mysql,python,数据库,sql,pymysql,cursor,MySQL,conn
From: https://www.cnblogs.com/DuoDuosg/p/16933715.html

相关文章

  • MySQL数据库基础5
    今日内容概要多表查询的两种方法小知识点补充可视化软件Navicat多表查询练习题python操作MySQL今日内容详细多表查询的两种方法方式1:连表操作 innerjoin......
  • MySQL 5
    今日内容详细多表查询的两种方法方式1:连表操作 innerjoin 内连接 select*fromempinnerjoindeponemp.dep_id=dep.id; 只连接两张表中公有的数据部分......
  • MySQl数据库:多表查询方法、MySQL补充方法
    目录一、多表查询的思路二、多表查询的两种方法1.方式一:连表查询(1)innerjoin内连接(2)leftjoin(3)rightjoin(4)union2.方式二:子查询(1)例子(2)in与notinany和in运算符的不同之处:三......
  • python基础(数据库、可视化软件Navicat、python操作MySQL)
    多表查询的两种方法数据准备:建表createtabledep(idintprimarykeyauto_increment,namevarchar(20));createtableemp(idintprimarykey......
  • MySQL基础
    目录多表查询的两种方法小知识点补充说明可视化软件Navicat多表查询练习题python操作MySQLpymysql补充说明多表查询的两种方法方式1:连表操作'''关键字innerjoin内......
  • 多表查询、Navicat、python连接MySQL
    多表查询、Navicat、python连接MySQL多表查询的两种方法方法1:连表操作innerjoin#内连接,连接两张表共有的数据部分select*fromempinnerjoindeponemp.dep_id......
  • 搭建rac dg备库连接数据库时报错ORA-12514
    文档课题:搭建racdg备库连接数据库时报错ORA-12514,如下所示:[oracle@hisdb3~]$sqlplussys/oracle_4U@healdgassysdbaSQL*Plus:Release11.2.0.4.0ProductiononSunN......
  • Oracle 数据库 alert 日志及 trace 日志的清理
    Oracle数据库alert日志及trace日志的清理 Oracle数据库alert日志及trace日志的清理方案一:暂停数据库的trace登录到数据库sqlplus/assysdba修改参数:SQL......
  • MySQL之索引下推
    mysql索引下推前言写博客是自己对知识梳理,目前是写给自己看,算是自己学习后的作业,也是为了养成一个良好的习惯。一、什么是索引下推索引下推(indexconditionpushdo......
  • python 操作mysql
    python操作MySQLpython想要操作MySQL必须借助于pymysql模块importpymysql#1.链接mysql服务端conn=pymysql.connect( host='127.0.0.1',#服务器ip地址 por......