18 12 07 MySQL 与python 的交互
2024-10-08 17:48:43
---恢复内容开始---
python 中 关于SQL语句的查询
from pymysql import * # 由于只能用了一个MySQL 的包所以全部引进 def main():
# 创建Connection连接
conn = connect(host='localhost',port=3306,user='root',password='root',database='jing_dong',charset='utf8')
# 获得Cursor对象
cs1 = conn.cursor()
# 执行select语句,并返回受影响的行数:查询一条数据 execute语句后 用的是SQL语句
count = cs1.execute('select id,name from goods where id>=4')
# 打印受影响的行数
print("查询到%d条数据:" % count) for i in range(count):
# 获取查询的结果
result = cs1.fetchone()
# 打印查询的结果
print(result)
# 获取查询的结果 # 关闭Cursor对象
cs1.close()
conn.close() if __name__ == '__main__':
main()
fetch 用来进行取值 有 fecthone fecthmany fecthall
python 中 SQL 运用于增删改
from pymysql import * def main():
# 创建Connection连接
conn = connect(host='localhost',port=3306,database='jing_dong',user='root',password='root',charset='utf8')
# 获得Cursor对象
cs1 = conn.cursor()
# 执行insert语句,并返回受影响的行数:添加一条数据
# 增加
count = cs1.execute('insert into goods_cates(name) values("硬盘")')
#打印受影响的行数
print(count) count = cs1.execute('insert into goods_cates(name) values("光盘")')
print(count) # # 更新
# count = cs1.execute('update goods_cates set name="机械硬盘" where name="硬盘"')
# # 删除
# count = cs1.execute('delete from goods_cates where id=6') # 提交之前的操作,如果之前已经之执行过多次的execute,那么就都进行提交
conn.commit() # 关闭Cursor对象
cs1.close()
# 关闭Connection对象
conn.close() if __name__ == '__main__':
main()
防止sql注入的安全问题
- sql语句的参数化,可以有效防止sql注入
- 注意:此处不同于python的字符串格式化,全部使用%s占位
from pymysql import * def main(): find_name = input("请输入物品名称:") # 创建Connection连接
conn = connect(host='localhost',port=3306,user='root',password='mysql',database='jing_dong',charset='utf8')
# 获得Cursor对象
cs1 = conn.cursor() # # 非安全的方式
# # 输入 " or 1=1 or " (双引号也要输入)
# sql = 'select * from goods where name="%s"' % find_name
# print("""sql===>%s<====""" % sql)
# # 执行select语句,并返回受影响的行数:查询所有数据
# count = cs1.execute(sql) # 安全的方式
# 构造参数列表
params = [find_name]
# 执行select语句,并返回受影响的行数:查询所有数据
count = cs1.execute('select * from goods where name=%s', params)
# 注意:
# 如果要是有多个参数,需要进行参数化
# 那么params = [数值1, 数值2....],此时sql语句中有多个%s即可 # 打印受影响的行数
print(count)
# 获取查询的结果
# result = cs1.fetchone()
result = cs1.fetchall()
# 打印查询的结果
print(result)
# 关闭Cursor对象
cs1.close()
# 关闭Connection对象
conn.close() if __name__ == '__main__':
main()
自己写的很low逼的查询框架 以后或许可以用来修改修改
//实验四
#include<iostream>
#include<string.h>
using namespace std;
int main()
{
float m,temp=0,sum=0;
int n,i;
float averge=0;
cout<<"How many number do you input?\n";//询问输入的个数
cin>>n;
int a[n];
cout<<"input 1 zheng shu\n";
cin>>m;
a[0]=m;
cout<<"please input "<<n-1<<" numbers\n";
for(i=1;i<n;i++)//循环输入整数
{
cin>>a[i];
}
int max=a[0],min=a[0];
for(i=0;i<n;i++)
{
if(max<a[i]){max=a[i];}//比较max和各整数的大小
if(min>a[i]){min=a[i];}
sum+=a[i];
}
averge=sum/n;
cout<<"the MAX numbers is :"<<max<<endl;
cout<<"the Min numbers is :"<<min<<endl; cout<<"the averge is :"<<averge<<endl;
return 0;
}
最新文章
- Create an offline installation of Visual Studio 2017 RC
- C语言基础(3)-二进制、八进制、十六进制
- maven运行javaWeb项目
- sql语句 当前时间查找重复 时间戳转换
- (转)关于java和web项目中的相对路径问题
- 简单制作mib表
- 1198: [HNOI2006]军机调度 - BZOJ
- spring04 spel注入
- 关于oracle dblink的知识。
- PHP 中的数组
- jQuery 局部div刷新和全局刷新方法
- ORACLE 主要后台进程1
- Java---25---集合框架共性方法
- Android中的WebView实战详解(一)
- java.lang.Object学习总结
- GDAL库进度信息编写示例
- insertion sort list (使用插入排序给链表排序)
- MySQL之执行流程
- vue.js笔记总结
- nohup: failed to run command `java&#39;: No such file or directory