3_2 mysql数据库_python操作_简单的增删查改

本文档概述了如何使用Python与MySQL进行数据库连接、创建表、数据插入、查询、修改和删除的基本操作,包括Python代码示例和实用技巧,适合初学者和进阶者参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


一些笔记和链接

常用sql 语法查询

更加详细的请看 我的 云笔记
我看的那本漫画书写的笔记。常用 操作 是够了的。

我的看书笔记 写的非常详细,有需要的可以自己去看看。

菜鸟教程 sql 教程

mysql 常用建表操作

最后是此文章帮我解决了问题

mysql cmd 常用命令 (一般登录都是直接打开 sql自带的命令行工具登录就可以了)

命令行登录方式

前提是 需要配置环境变量

C:\Program Files\MySQL\MySQL Server 8.0\bin

mysql -u root -p
然后输入密码就行了

MySQL w3c教程

MySQL索引背后的数据结构及算法原理

21分钟 MySQL 入门教程

mysql 参考手册官网


工具

  1. navicat可视化工具(mysql)

连接 数据库


import pymysql

con=pymysql.connect(host='localhost',user='用户名',password='密码',database='数据库名字',port=3306)

cursor = conn.cursor()  # 创建一个 游标
cursor.execute("select 1")  # 加载一个选择 1 等他返回 说明 连接成功
result = cursor.fetchone()
print(result)  # 返回一个 1 就代表连接上了
conn.close()

创建表

# 创建表
#导入pymysql
import pymysql
#创建连接
con=pymysql.connect(host='localhost',user='用户名',password='密码',database='数据库名字',port=3306)
#创建游标对象
cur=con.cursor()
#编写创建表的sql
# sql 语句
sql="""
    create table t_student(
     sno int primary key auto_increment,
     sname varchar(30) not null,
     age int(2),
     score float(3,1)
    )
"""
try:
    # 执行创建表的sql
    cur.execute(sql)
    print('创建表成功')
except Exception as e:
    print(e)
    print('创建表失败')
finally:
    #关闭连接
    con.close()
创建表成功

建表

CREATE TABLE `出口国信息` (
	`出口国编码` INT ( 255 ) NOT NULL,
	`出口国名称` VARCHAR ( 255 ) DEFAULT NULL,
	`人口` INT ( 11 ) DEFAULT NULL,
PRIMARY KEY ( `出口国编码` ) 
) ENGINE = INNODB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci;

可以看见 navicat软件的 sql 代码

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8eIvaazf-1601901224800)(WEBRESOURCE095b0f915f8f62078c7b815b4b3ada65)]

python mysql数据库插入数据

插入一条

# 插入数据
#导入模块
import pymysql
#创建连接
con=pymysql.connect(host='localhost',user='用户名',password='密码',database='数据库名字',port=3306)
#创建游标对象
cur=con.cursor()
#编写插入数据的sql
sql='insert into t_student(sname,age,score) values(%s,%s,%s)'
try:
    # 执行sql
    cur.execute(sql, ('小强', 18, 99.9))
    #提交事务
    con.commit()
    print('插入成功')
except Exception as e:
    print(e)
    con.rollback()
    print('插入失败')
finally:
    #关闭连接
    con.close()


插入一条

import pymysql

con=pymysql.connect(host='localhost',user='用户名',password='密码',database='数据库名字',port=3306)

cursor = conn.cursor()  # 创建一个 游标
cursor.execute("select 1")
result = cursor.fetchone()
# insert into user(id,username,age,password) values(2,'bbb',20,'111111')   这里是插入数据

# sql = """
# insert into user(id,username,age,password) values(2,'bbb',20,'111111')
# """
# cursor.execute(sql)  # 映射到数据库
# conn.commit()  # 提交到数据库
sql = """
insert into user(id,username,age,password) values(null,%s,%s,%s)
"""

# id指定为null,因为数据库里面已经设置为 自增长,所以就会自动增长了,%s占位字符串,这里全部都要 设置为%s 占位,因为数据库 把他作为 字符串处理

username = 'spider'
age = 21
password = '123456'

cursor.execute(sql, (username, age, password))  # 传一个元组进去,插入数据
conn.commit()  # 提交数据
conn.close()  # 关闭连接

插入多条数据

# 插入多条数据
#导入模块
import pymysql
#创建连接
con=pymysql.connect(host='localhost',user='用户名',password='密码',database='数据库名字',port=3306)
#创建游标对象
cur=con.cursor()
#编写插入数据的sql
sql='insert into t_student(sname,age,score) values(%s,%s,%s)'
try:
    # 执行sql
    cur.executemany(sql,[('小明',19,99.8),('小红',18,99.9),('晓丽',18,99.8),('小花',19,99.6)])
    #提交事务
    con.commit()
    print('插入成功')
except Exception as e:
    print(e)
    con.rollback()
    print('插入失败')
finally:
    #关闭连接
    con.close()


查询数据


import pymysql

con=pymysql.connect(host='localhost',user='用户名',password='密码',database='数据库名字',port=3306)

cursor = conn.cursor()  # 创建一个 游标
# select username,age from user where id=1
# from 从 user查找 指定条件 where id=1    where 当id=1 的 username 和age

# 另外一种查找方法
# select * from user
# *代表所有的4个字段
# 这种方法第一次调用,就返回第一条数据
# 第二次调用就 返回第二条数据 ,依次往下

# sql = """
# select username,age from user where id=2
# """


# #################### fetchone ################
# 查询一条数据
# sql = """
# select * from user
# """
# cursor.execute(sql)
# # 这里是 所有数据打印出来
# while True:
#     result = cursor.fetchone()
#     if result:  # 加条件 如果 获取到result数据 就继续 ,没有就说明取到 最后一条数据了,就结束
#         print(result)
#     else:
#         break
# conn.close()

# ################### fetchall ##############
# 查询所有数据
# sql = """
# select * from user
# """
# cursor.execute(sql)
# results = cursor.fetchall()
# for result in results:
#     print(result)
# conn.close()
# ################# fetchmany ###########
sql = """
select * from user
"""
cursor.execute(sql)
results = cursor.fetchmany(3)  # 数字几就是查询 几条数据
for result in results:
    print(result)
conn.close()

查询所有数据

# 查询所有数据
#导入pymysql
import pymysql
#创建连接
con=pymysql.connect(host='localhost',user='用户名',password='密码',database='数据库名字',port=3306)
#创建游标对象
cur=con.cursor()
#编写查询的sql
sql='select * from t_student where age=18'
#执行sql
try:
    cur.execute(sql)
    #处理结果集
    students=cur.fetchall()
    for student in students:
        sno=student[0]
        sname=student[1]
        age=student[2]
        score=student[3]
        print('sno:',sno,'sname:',sname,'age:',age,'score:',score)
except Exception as e:
    print(e)
    print('查询所有数据失败')
finally:
    #关闭连接
    con.close()

查询一条数据

# 查询一条数据
#导入pymysql
import pymysql
#创建连接
con=pymysql.connect(host='localhost',user='用户名',password='密码',database='数据库名字',port=3306)
#创建游标对象
cur=con.cursor()
#编写查询的sql
sql='select * from t_student where age=18'
#执行sql
try:
    cur.execute(sql)
    #处理结果集
    student=cur.fetchone()
    print(student)
    sno=student[0]
    sname=student[1]
    age=student[2]
    score=student[3]
    print('sno:',sno,'sname:',sname,'age:',age,'score:',score)
except Exception as e:
    print(e)
    print('查询所有数据失败')
finally:
    #关闭连接
    con.close()
(2, '小红', 18, 99.9)
sno: 2 sname: 小红 age: 18 score: 99.9

删除数据

import pymysql

con=pymysql.connect(host='localhost',user='用户名',password='密码',database='数据库名字',port=3306)

cursor = conn.cursor()  # 创建一个 游标
sql = """
delete from user where id=1  # 删除 id =1 的数据

"""
cursor.execute(sql)  # 加载命令 ,传如命令
# 插入.删除.更新
# 都需要执行commit操作
conn.commit()
conn.close()


# 删除数据
#导入模块
import pymysql
#创建连接
con=pymysql.connect(host='localhost',user='用户名',password='密码',database='数据库名字',port=3306)
#创建游标对象
cur=con.cursor()
#编写删除的sql
sql='delete from t_student where sname=%s'
#执行sql语句
try:
    cur.execute(sql,('张三丰'))
    con.commit()
    print('删除成功')
except Exception as e:
    print(e)
    con.rollback()
    print('删除失败')
finally:
    #关闭连接
    con.close()

修改数据

# 修改数据
#导入模块
import pymysql
#创建连接
con=pymysql.connect(host='localhost',user='用户名',password='密码',database='数据库名字',port=3306)
#创建游标对象
cur=con.cursor()
#编写修改的sql
sql='update t_student set sname=%s where sno=%s'
#执行sql语句
try:
    cur.execute(sql,('张三丰',1))
    con.commit()
    print('修改成功')
except Exception as e:
    print(e)
    con.rollback()
    print('修改失败')
finally:
    #关闭连接
    con.close()

更新数据库

import pymysql

con=pymysql.connect(host='localhost',user='用户名',password='密码',database='数据库名字',port=3306)

cursor = conn.cursor()  # 创建一个 游标
# 不加 where 会把  所有的 数据 改为bbb
sql = """
update user set username='bbb' where id=2

"""
cursor.execute(sql)  # 加载命令 ,传如命令
# 插入.删除.更新
# 都需要执行commit操作
conn.commit()
conn.close()



mysql命令行

具体可以看python 代码里面的 查询sql查询语句

建表

create table userinfoList(
username varchar(100) ,
password varchar(100)
);

插入

insert into userinfolist(username,password) values('pis','123456')

删除

delete from userinfolist where username='lili'

查询

select userName from userinfolist where password='333'

修改

set 代表要修改的值

where 代表修改哪里

# 语句1
update userinfoList set password='66666' where username='frank'

# 语句2
update userinfolist set userName='frank',password='666' where userName='frank'

简写

如果针对所有字段的话可以 不需要写字段

例如:

insert into userinfolist values('pis','123456')

tips

字段不需要加引号但是value需要加 引号

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hocRWNaE-1601901224806)(9CC35BBC0EB246E18DE7A1DE4D823955)]


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值