---恢复内容开始---

 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;
}

  

最新文章

  1. Create an offline installation of Visual Studio 2017 RC
  2. C语言基础(3)-二进制、八进制、十六进制
  3. maven运行javaWeb项目
  4. sql语句 当前时间查找重复 时间戳转换
  5. (转)关于java和web项目中的相对路径问题
  6. 简单制作mib表
  7. 1198: [HNOI2006]军机调度 - BZOJ
  8. spring04 spel注入
  9. 关于oracle dblink的知识。
  10. PHP 中的数组
  11. jQuery 局部div刷新和全局刷新方法
  12. ORACLE 主要后台进程1
  13. Java---25---集合框架共性方法
  14. Android中的WebView实战详解(一)
  15. java.lang.Object学习总结
  16. GDAL库进度信息编写示例
  17. insertion sort list (使用插入排序给链表排序)
  18. MySQL之执行流程
  19. vue.js笔记总结
  20. nohup: failed to run command `java&#39;: No such file or directory

热门文章

  1. springMVC,spring和Hibernate整合(重要)
  2. 【LeetCode】基本计算器II
  3. 云时代架构阅读笔记十五——之前碰到的Java面试题
  4. WAFの基本防护透明流模式v1.0
  5. SpringBoot-集成通用mapper
  6. JAVA DateUtil 工具类封装(转)
  7. jmeter简单压测、下载文件
  8. 完整版excel上传导入读写批量数据并将反馈结果写入远程exel中
  9. 【pwnable.kr】input
  10. Vulkan SDK 之Render Pass