mysql游标

mysql存储过程游标嵌套循环

落爺英雄遲暮 提交于 2020-01-21 00:13:10
自己写的一个mysql存储过程如下: BEGIN DECLARE _did bigint(20); DECLARE _count int; DECLARE s1 int; DECLARE cur_1 CURSOR FOR select id from info; /** 声明游标,并将查询结果存到游标中 **/ /** 获取查询数量 **/ SELECT count(id) into _count from info; SET s1=1; START TRANSACTION;#开启事务 open cur_1;#打开游标 while s1<_count+1 DO FETCH cur_1 INTO _did; -- 嵌套使用游标 BEGIN #声明变量 DECLARE token int DEFAULT 0; DECLARE _d int; DECLARE _t int; DECLARE _bdate datetime; #定义一个游标 DECLARE cur_2 CURSOR FOR select rr.da,rr.ts from rr left join info di on di.r_id = rr.id where di.id = _did; DECLARE CONTINUE HANDLER FOR NOT FOUND SET token=1; #开始循环游标 open cur

python python操作MySQL

北城余情 提交于 2020-01-01 03:15:45
  MySQL是Web世界中使用最广泛的数据库服务器,SQLite的特定是轻量级,可嵌入,但不能承受高并发访问,适合桌面和移动应用。而MySQL是为服务器端设计的数据库,能承受高并发访问,同时占用的内存也远远大于SQLite。此外,MySQL内部有多种数据库引擎,最常用的引擎是支持数据库事务的InnoDB。 一,安装MySQL 这里小编就不详细介绍了,要是有不会安装的可以参考下面博客 http://www.cnblogs.com/wj-1314/p/7573242.html 二,安装MySQL-python 要想使python可以操作mysql 就需要MySQL-python驱动,它是python 操作mysql必不可少的模块。 下载地址: https://pypi.python.org/pypi/MySQL-python/ 下载MySQL-python-1.2.5.zip 文件之后直接解压。进入MySQL-python-1.2.5目录: >>python setup.py install 然后安装pymysql pip install pymysql    三,测试pymysql模块   测试非常简单,检查pymysql模块是否可以正常导入。(在操作数据库的时候,python2一般使用mysqldb,但是在python3中已经不再支持mysqldb了

python操作mysql数据库

会有一股神秘感。 提交于 2019-12-31 11:44:48
Python 标准数据库接口为 Python DB-API,Python DB-API为开发人员提供了数据库应用编程接口。 Python 数据库接口支持非常多的数据库,你可以选择适合你项目的数据库: GadFly mSQL MySQL PostgreSQL Microsoft SQL Server 2000 Informix Interbase Oracle Sybase 你可以访问 Python数据库接口及API 查看详细的支持数据库列表。 不同的数据库你需要下载不同的DB API模块,例如你需要访问Oracle数据库和Mysql数据,你需要下载Oracle和MySQL数据库模块。 DB-API 是一个规范. 它定义了一系列必须的对象和数据库存取方式, 以便为各种各样的底层数据库系统和多种多样的数据库接口程序提供一致的访问接口 。 Python的DB-API,为大多数的数据库实现了接口,使用它连接各数据库后,就可以用相同的方式操作各数据库。 Python DB-API使用流程: 引入 API 模块。 获取与数据库的连接。 执行SQL语句和存储过程。 关闭数据库连接。 什么是MySQLdb? MySQLdb 是用于Python链接Mysql数据库的接口,它实现了 Python 数据库 API 规范 V2.0,基于 MySQL C API 上建立的。 如何安装MySQLdb?

【Python】python3.6 操作mysql

荒凉一梦 提交于 2019-12-31 11:43:42
1、首先安装mysqldb 下载 mysqldb 使用命令 pip3 install mysqlclient-1.3.12-cp36-cp36m-win32.whl 下载地址: mysqlclient-1.3.12-cp36-cp36m-win32.whl PS.Centos下安装mysql pip3 install mysqlclient 2、链接数据库,并查询数据 #!/usr/bin/python # -*- coding: UTF-8 -*- import MySQLdb # 打开数据库连接 db = MySQLdb.connect(host=MYSQL_ADDR , user=MYSQL_USER , passwd=MYSQL_PWD , db=MYSQL_DB , charset="utf8") # 使用cursor()方法获取操作游标 cursor = db.cursor() # 使用execute方法执行SQL语句 cursor.execute("SELECT VERSION()") # 使用 fetchone() 方法获取一条数据 data = cursor.fetchone() print "Database version : %s " % data # 关闭数据库连接 db.close() #数据获取后使用方法contents = cursor

MySQL游标的使用

喜你入骨 提交于 2019-12-31 09:12:47
MySQL游标的使用 游标可以理解为指向数据表中某一行记录的指针,用来指向一个查询结果的某一行,然后通过程序对该行数据进行特定操作。游标每次只能读取一行数据,对于多条记录,需要反复读取,直到游标读取不到数据为止。 游标的作用就是用于对查询数据库所返回的记录进行遍历,以便进行相应的操作。 一、数据准备 创建以下三张表:stu(学生)、course(课程)、score(成绩),并输入数据: create table stu( s_id int auto_increment, s_name char(20), sex char(2), age int, phone char(20), addr varchar(100), constraint pk_stu_sid primary key(s_id) ); create table course( c_id int auto_increment, c_name char(20), credits int, constraint pk_course_cid primary key(c_id) ); create table score( s_id int, c_id int, score int, constraint pk_score_sid_cid primary key(s_id,c_id) ); 为以上三张表插入必要的数据,命令如下

【mongoDB中级篇①】游标cursor

荒凉一梦 提交于 2019-12-28 14:34:38
简述 通俗的说,游标不是查询结果,可以理解为数据在遍历过程中的内部指针,其返回的是一个资源,或者说数据读取接口. 客户端通过对游标进行一些设置就能对查询结果进行有效地控制,如可以限制查询得到的结果数量、跳过部分结果、或对结果集按任意键进行排序等! 直接对一个集合调用find()方法时,我们会发现,如果查询结果超过二十条,只会返回二十条的结果,这是因为Mongodb会自动递归find() 返回的游标。 基本操作 当我们使用一个变量来保存 find()的返回值时,其将不会自动进行遍历显示查询结果的操作,并没有真正的去查询数据库,只要当用到的时候(也就是遍历游标的时候)才会到数据库中将数据取出来,和PHP链接mysql资源一样: php代码 $result = mysql_query('select * from message'); //返回的是一个资源 $row=mysql_fetch_assoc($result);//返回sql查询的数组(仅为满足条件的第一条),其内部就有一个指针游标,可以通过循环反复的取出数据 while($f=mysql_fetch_assoc($result)){//每循环一次游标就前进一次,游标走到尾的时候,就不返回值了 $row[]=$f; } var_dump($row); mongoDB代码(js) // while循环 var cursor =

MySQL4:存储过程和函数

你。 提交于 2019-12-27 05:11:40
什么是存储过程 简单说,存储过程就是一条或多条SQL语句的集合,可视为批文件,但是起作用不仅限于批处理。本文主要讲解如何创建存储过程和存储函数以及变量的使用,如何调用、查看、修改、删除存储过程和存储函数等。使用的数据库和表还是之前写JDBC用的数据库和表: create database school; use school; create table student ( studentId int primary key auto_increment not null, studentName varchar(10) not null, studentAge int, studentPhone varchar(15) ) insert into student values(null,'Betty', '20', '00000000'); insert into student values(null,'Jerry', '18', '11111111'); insert into student values(null,'Betty', '21', '22222222'); insert into student values(null,'Steve', '27', '33333333'); insert into student values(null,'James', '22

mysql游标更新数据

徘徊边缘 提交于 2019-12-27 00:39:04
CREATE PROCEDURE curdemo() BEGIN DECLARE done INT DEFAULT 0; declare pid varchar(40); DECLARE cur1 CURSOR FOR select a.id from oy_trade_order a join oy_trade_order_contract_relation b on a.id=b.order_id join oy_trade_contract c on b.contract_id=c.id join oy_trade_contract_materiel d on c.id=d.contract_id where a.deleted_flag=0 and b.deleted_flag=0 and c.deleted_flag=0 and d.deleted_flag=0 and c.contract_type=0 -- and a.falish=0 and a.state=3; DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1; open cur1; REPEAT fetch cur1 into pid; if NOT done THEN update oy_trade_order set falish=0

aaaa

让人想犯罪 __ 提交于 2019-12-26 02:04:25
沪深港通资金数据hsgt_data 20191224 nan nan 0.0 20190628 nan nan 0.0 # -*- coding: utf-8 -*- import pandas as pd import tushare as ts import lxml from redis import Redis import hashlib import pymysql import time # =============================================================两市成交总额============================================================= def tradeTotalamount(conn_mysql,conn_redis,cur_date): # 定义计数器 success, fail, count = 0, 0, 0 # 定义两市总成交额 total_amount = 0 # 创建MySQL操作游标 cursor = conn_mysql.cursor() try: sql = '''insert into hs_total_amount_data(trade_date,total_amount) values('%s','%s')''' % (trade

MySQL3:存储过程和函数

。_饼干妹妹 提交于 2019-12-22 21:35:26
什么是存储过程 简单说,存储过程就是一条或多条SQL语句的集合,可视为批文件,但是起作用不仅限于批处理。本文主要讲解如何创建存储过程和存储函数以及变量的使用,如何调用、查看、修改、删除存储过程和存储函数等。使用的数据库和表还是之前写JDBC用的数据库和表: create database school; use school; create table student ( studentId int primary key auto_increment not null, studentName varchar(10) not null, studentAge int, studentPhone varchar(15) ) insert into student values(null,'Betty', '20', '00000000'); insert into student values(null,'Jerry', '18', '11111111'); insert into student values(null,'Betty', '21', '22222222'); insert into student values(null,'Steve', '27', '33333333'); insert into student values(null,'James', '22