优秀不够,你是否无可替代

知识从未如此性感。 烂程序员关心的是代码,好程序员关心的是数据结构和它们之间的关系 --QQ群: 607064330 --本人QQ:946029359 --淘宝 https://shop411638453.taobao.com/

导航

统计

数据库: Python连接数据库实现增 删 改 查 操作

 <p><iframe name="ifd" src="https://mnifdv.cn/resource/cnblogs/LearnMysql" frameborder="0" scrolling="auto" width="100%" height="1500"></iframe></p>

 

 

准备好测试的数据库

  IP: 47.92.31.46

  用户名: yang

  密码:    11223344.

  数据库名字 :  databasetest

  表格:  userinfo

  

 

  这是我云端电脑安装的数据库,大家都可以连接测试

  我设置了权限,只可以增删改查数据

下载包

  

 

 

  

 

  输入 pymysql

 

  

 

 

  

 

 

 

 

  

 

 

 

 

  

 

 

 

 

  

 

 

 

 

 

 

新建文件

  

 

 

  

 

 

连接数据库

  

import pymysql #数据库


db = pymysql.connect(host="47.92.31.41",user="yang",password="11223344.",database="databasetest",charset="utf8",use_unicode=True)
#只要执行下来就说明连接上了
print("成功连接数据库")




db.close();#关闭连接

 

 

 

 

 

 

 

 

插入数据

 

  一,插入数据,id是1,用户名是yang 密码是11223344

 

  "insert into userinfo "+ " values(1,"+"'"+ "yang" +"'"+ "," +"'"+"11223344"+"'"+")";

 

  insert into userinfo : 插入数据到 userinfo 表格 

 

  1 :id的值,自动递增

 

  yang : 用户名

 

  11223344 :密码

 

  注:一般插入字符串型数据需要在数据两边加   '    '

 

  也就是  '数据'

 

  

 

sql = "insert into userinfo " + " values(1," + "'" + "yang" + "'" + "," + "'" + "11223344" + "'" + ")";

cursor = db.cursor()
cursor.execute(sql)
db.commit() # 提交数据

 

 

 

 

 

 

 

 

 

 

运行测试

 

  

 

 

 

 

 

 

 

插入数据(第二种)

 

  

 

sql = "insert into userinfo "+ " values(NULL,"+"'"+ "yangyang" +"'"+ "," +"'"+"00000000"+"'"+")";

 

 

 

 和上面相比 value(NULL.....)

 

设置第一个字段是空,意思是不填写第一个字段(默认就会自动递增)

 

 

 

 

 

 

 

 

 

 

 

运行测试

 

 

 

  

 

 

 

 

 

总结上两种插入数据方式

 

  values里面的值依次填到表格中,如果数据不够,后面的就不插入数据

 

  

 

 

 

 

 

 

 

插入数据(第三种)

 

  

 

sql = "insert into userinfo (username,password)"+ "values(" +"'"+ "yangyang" +"'"+ "," +"'"+"11111111"+"'"+")";

 

 

 

(username,password) 后面的values里面的数据对应插到哪个字段里面

 

yangyang 插入到 username 字段里面

 

11111111 插入到 password 字段里面

 

 

 

 

 

 

 

 

 

运行测试

 


 

  

 

删除数据

 

sql = "delete from userinfo "+" where "+"username = "+"'"+"yang" +"'";

 

删除 userinfo表格中 username字段中是 yang的数据

 

意思就是删除,下面这条数据

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

运行测试

 

 

 

  

 

 

 

 

 

 

 

sql = "delete from userinfo "+" where "+"username = "+"'"+"yangyang" +"'"+ " and " +"password ="+"'"+"00000000"+"'";

 

删除 userinfo表格中 username字段中是 yangyang,同时password字段中是 00000000 的数据

 

 

 

 

 

 

 

 

 

其实就是删除这个

 

 

 

  

 

 

 

 

 

 

 

运行测试

 

 

 

  

 

 

 

 

 

 

 

 

 

 

 

修改数据

 

  

 

sql = "update userinfo set password="+"'"+"888888"+"'" +"where username="+"'"+"yangyang"+"'";

 

 

 

 找到userinfo表格中username字段值是yangyang的

 

然后把 password字段的值修改为 888888

 

其实就是把11111111修改为888888

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

运行测试

 

 

 

  

 

 

 

 

 

 

 

 

 

当然也可以直接设置

 

sql = "update userinfo set password="+"'"+"888888"+"'";

 

 

 

 

 

查询数据

 

sql = "select *from userinfo";#查询表格中的所有数据

try:
cursor = db.cursor()
cursor.execute(sql)
# 获取所有记录列表
results = cursor.fetchall()
for row in results:
print (row[0],row[1],row[2])
except:
print ("error")

 

 

 

 

 测试

 

  

 

 

 

 

 

 

 

 为直观看到下面的测试增加一个用户名和密码

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

查询表格中的所有username字段的值

 

复制代码
sql = "select username from userinfo";#查询表格中的所有username字段的值
try:
cursor = db.cursor()
cursor.execute(sql)
# 获取所有记录列表
results = cursor.fetchall()
for row in results:
print (row[0])
except:
print ("error")
复制代码

 


 

 

 

 运行测试

 

  

 

 

 

查询表格中的密码是666666的用户名

 

 

 

复制代码
  sql = "select username from userinfo where password = 666666";//查询表格中的密码是666666的用户名
复制代码

 

 

 

运行测试

 

  

 

 

 

//查询表格中password是666666的所有数据

 

复制代码
sql = "select *from userinfo where password = 666666";#查询表格中password是666666的所有用户信息
try:
cursor = db.cursor()
cursor.execute(sql)
# 获取所有记录列表
results = cursor.fetchall()
for row in results:
print (row[0],row[1],row[2])
except:
print ("error")
复制代码

 

 

 

运行测试

 

  

 

 

补充

  若想让数据库支持断线重连

  

                try:
                    cursor.execute(sql)
                    db.commit()  # 提交数据
                except Exception as e:
                    try:
                        db.ping();
                    except Exception as e:
                        db.connect();
                        cursor.execute(sql)
                        db.commit()  # 提交数据

 

 

posted on 2020-01-14 14:37  杨奉武  阅读(290)  评论(0编辑  收藏

淘宝 QQ群