游标

pymysql指南

匿名 (未验证) 提交于 2019-12-02 22:51:30
1 引言 mysql应该说是如今使用最为普遍的数据库了,没有之一,而Python作为最为流行的语言之一,自然少不了与mysql打交道,pymysql就是使用最多的工具库了。 2 创建库、表 我们先从创建数据库、数据表说起,有了库表,后面的增删改查才有根据。 2.1 创建数据库 pymysql的所有对数据库的操作都必选先与数据库服务建立连接,然后创建游标为基础执行具体的sql语句。创建数据库方法如下: # -*- coding: utf-8 -*- import pymysql conn = pymysql.connect( # 创建数据库连接 host='10.10.11.131', # 要连接的数据库所在主机ip user='chb', # 数据库登录用户名 password='123456!', # 登录用户密码 charset='utf8' # 编码,注意不能写成utf-8 ) cursor = con.cursor() cursor .execute("create database test_db character set utf8;") # 执行完之后别忘了关闭游标和数据库连接 cursor.close() conn.close() 上面代码执行完后,就创建了一个名为test_db的数据库: 2.2 创建数据表 # -*- coding: utf-8 -*-

python数据库基础

匿名 (未验证) 提交于 2019-12-02 22:51:30
1.数据类型:(使用原则:够用就行,尽量使用范围小的) 整数:int,bit 小数:decimal 字符串:varchar(可变长度),char(固定长度字符串) 日期时间:date,time,datetime 枚举类型(enum) 特别说明2.约束(限制)主要: 主键primary key:物理存储的顺序 非空 not null 不允许填写空格 唯一 unique:不允许重复 默认default:数据项的默认值 外键 foreign key:存储其他表的主键的字段其他: unsigned 无符号 auto increment 自增4.常用术语: 数据库: 数据库是一些关联表的集合。 数据表: 表是数据的矩阵。在一个数据库中的表看起来像一个简单的电子表格。 列: 一列(数据元素) 包含了相同的数据, 例如邮政编码的数据。 行:一行(=元组,或记录)是一组相关的数据,例如一条用户订阅的数据。 冗余:存储两倍数据,冗余降低了性能,但提高了数据的安全性。 主键:主键是唯一的。一个数据表中只能包含一个主键。你可以使用主键来查询数据。 外键:外键用于关联两个表。 复合键:复合键(组合键)将多个列作为一个索引键,一般用于复合索引。 索引:使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构。类似于书籍的目录。 参照完整性:

MySQL必知应会-第24章-使用游标

匿名 (未验证) 提交于 2019-12-02 22:06:11
本章将讲授什么是游标以及如何使用游标。 需要MySQL 5 MySQL 5添加了对游标的支持,因此,本章内容适用于MySQL 5及以后的版本。由前几章可知, MySQL检索操作返回一组称为结果集的行。这组返回的行都是与SQL语句相匹配的行(零行或多行)。使用简单的SELECT语句,例如,没有办法得到第一行、下一行或前10行,也不存在每次一行地处理所有行的简单方法(相对于成批地处理它们)。有时,需要在检索出来的行中前进或后退一行或多行。这就是使用游标的原因。 游标(cursor) 是一个存储在MySQL服务器上的数据库查询,它不是一条SELECT语句,而是被该语句检索出来的结果集。在存储了游标之后,应用程序可以根据需要滚动或浏览其中的数据。游标主要用于交互式应用,其中用户需要滚动屏幕上的数据,并对数据进行浏览或做出更改。只能用于存储过程 不像多数DBMS, MySQL游标只能用于存储过程(和函数)。 使用游标涉及几个明确的步骤。第 24 章23124.2 使用游标 175 在能够使用游标前,必须声明(定义)它。这个过程实际上没有检索数据,它只是定义要使用的SELECT语句。 一旦声明后,必须打开游标以供使用。这个过程用前面定义的SELECT语句把数据实际检索出来。 对于填有数据的游标,根据需要取出(检索)各行。 在结束游标使用时,必须关闭游标。在声明游标后

mysql中的存储过程和游标

匿名 (未验证) 提交于 2019-12-02 22:06:11
-- Mysql 存储过程 /* set @result = 0; create procedure login( -- 定义参数,有in、out、inout三种类型 in user varchar(10), in pass varchar(10), out result int ) begin declare passd varchar(10);-- declare 声明临时变量、类型,然后用set 进行赋值, declare 临时变量只能放在begin end 区域中 ,而其作用域也只是在begin end 中, 而 set @ 定义的变量是全局变量 select password into passd from login where username=user; if passd like pass then -- If 语句,后面要加上 End IF,就像是case 后也要加 End Case 一样 select ‘Login Success‘ as Massage; set result = 1; else select ‘Login Failed‘ as Message; set result =0; end if; end; */ -- 调用存储过程 call login(‘root‘,‘root‘,@result); -- 删除存储过程 drop

pymysql的使用

匿名 (未验证) 提交于 2019-12-02 22:06:11
MySQL基于TCP协议之上开发,但是网络连接之后,传输的数据必须遵循MySQL的协议.封装好MySQL协议的包,就是驱动程序. 先建立一个数据传输的数据通道--连接. pymysql.connect()方法返回的是connections模块下的connection类实例. connect方法传参就是给connection类的 __init__ 提供参数 connection初始化参数 说明 host 主机 user 用户名 password 密码 database 数据库 port 端口 connection.ping()方法,测试数据库服务器是否存活,有一个参数reconnect表示断开与服务器连接是否重连. 操作数据库,必须使用游标,首先要获取一个游标对象. connection.cousor(cursor=none)方法返回一个新的游标对象. 连接没有过关闭前,游标对象可以反复使用. cursor参数,可以指定一个cursor类,如果为none,默认使用cursor类. 数据库操作需要使用cursor类的实例,提供execute()方法,执行SQL语句,成功返回影响的行数. 增删相同,注意要conn.commit() ,sql语句实现具体功能 import pymysql ### 连接数据库的参数 conn = pymysql.connect(host='localhost

MySQL的游标

匿名 (未验证) 提交于 2019-12-02 22:06:11
python操作mysql数据库,主要就是通过pymysql模块 pip install pymysql 1)建立数据库连接对象 conn 2)通过 conn 创建操作sql的 游标对象 3)编写sql交给 cursor 执行 4)如果是查询,通过 cursor对象 获取结果 5)操作完毕,端口操作与连接 注意 1. 对记录增删改默认需要 commit () 准备 import pymysql 一.建立连接 conn = pymysql . connect ( user = 'root' , passwd = 'root' , database = 't5' ) 二.获取游标对象 # 注:游标不设置参数,查询的结果就是数据元组,数据没有标识性 # 设置pymysql.cursors.DictCursor,查询的结果是字典,key是表的字段cursor = conn.cursor(pymysql.cursors.DictCursor) 三.增删改查 创建表 sql1 = "create table zx(id int)" cursor . execute ( sql1 ) 增 #单条添加 sql2 = 'insert into zx values(%s)' cursor . execute ( sql2 ,( 1 ,)) cursor . execute ( sql2 ,( 2 ,)

python pymysql 基本使用

匿名 (未验证) 提交于 2019-12-02 22:02:20
1 from pymysql import * 2 3 # 1.创建连接数据库 4 conn = connect(host="localhost", port=3306, user="root", password="root", database="jiang_test", charset="utf8") 5 # 2.获取游标 6 cur = conn.cursor() 7 # 数据库操作 8 count = cur.execute("select *from students") 9 res = cur.fetchall() # fetchone()获取一条数据 fetchmany(n)获取指定n条数据量 10 print(type(res)) # tulpe 11 print(count) # 打印出查询数据数量 12 print(res) # 打印出查询数据 13 # 3.关闭游标 14 cur.close() 15 # 4.关闭连接 16 conn.close() 步骤 1.创建连接数据库2.获取游标 3.数据库操作(增删改查)4.关闭游标5.关闭连接

ubuntu12.04-- vi 使用

 ̄綄美尐妖づ 提交于 2019-12-02 18:26:21
ubuntu vi 使用 文书编辑器介绍 [VI]  vi ( m ) 在大多数的 unix 系统中 ( 包括 linux ) 都内建 vi ( m ) 编辑器。如果您即将成为 linux 系统管理者,或是长时间在 linux 环境中工作,您最好学会 vi ( m ),因为您迟早会使用到它,由其是系统出状况时。对新手而言,第一次使用 vi ( m ) 的过程是非常痛苦的,甚至讨厌它,因为它的使用方式与一般辑编器完全不同。但是,一但您学会如何操作它时,您会对它爱不释手,因为它的功能实在太强了。 vi ( m ) 就是这样,让人又爱又恨。   事实上 linux 系统中的 vi 其实是 vim。vi 与 vim 的用法很像,因为它是 vi 的增强版,因此 vi 有什麽功能 vim 都有,而且 vim 新增许多 vi 没有的功能,而且比 vi 容易使用。  vi ( m ) 的叁种模式简介   一般模式   在一般模式下,您所能进行的动作只有移动游标屏幕上的位置,标记、删除、搬移、复制字符或文字区块。此外您可以由命令模式进人输入模式虽命令列模式。   输入模式   只有在输入模式下,才可进行文字资料输入,按 ESC 键可以回到一般模式。   命令列模式   将文件写入或离开编辑器,亦可设定编辑环境,如寻找字串、列出行号等。    vi ( m ) 的基本操作   进人 vi  

使用游标建立视图的一个实例(涉及多张表)

给你一囗甜甜゛ 提交于 2019-12-02 16:57:05
declare @x varchar(2000) declare @y varchar(2000) declare @str varchar(max) declare @sql varchar(max) declare @flag int --标记循环次数 set @flag=1 set @str=''--保存建立视图的语句 DECLARE @table_name varchar(2000) DECLARE cursor2 CURSOR FOR --定义游标cursor2 SELECT name FROM (select name from sysobjects where xtype='U' and name not like '%copy%' and name not like '[A-Z]%' and name not like '[a-z]%' ) t -- 共84条记录 OPEN cursor2 --打开游标 FETCH NEXT FROM cursor2 INTO @table_name WHILE @@FETCH_STATUS=0 --判断是否成功获取数据 BEGIN set @sql='select * from syscolumns where id=object_id('''+ @table_name +''') and name=''is_delete '''

Android自定义View之滑动取值条

*爱你&永不变心* 提交于 2019-12-02 13:47:13
Android自定义View之滑动取值条 1 : 需求 可自定义更改滑动条的样式(本功能实现两种样式) 联动方式 : 滑块上更新的值通过回调给Edittext; 在Edittext上输入值,更新滑动条的游标的位置和值 高度复合性: 可根据需求,自初始化值,及返回值的调整,显示精度的可调整性 ,超过滑动范围的可调整性 滑动取值条的取值方式: 可滑动,可点击 当值过大时,取值条上的值根据像素比例进行相应的缩放,使其显示完全 2: 实现 public CustomTakeValueArticle (Context context, AttributeSet attrs, int defStyle) { super (context, attrs, defStyle); init(context); } public CustomTakeValueArticle (Context context, AttributeSet attrs) { super (context, attrs); init(context); } 上面的代码这里只构造了两个方法 初始化init(Context context)的实现如下: /** * 初始化 * * @param context */ private void init(Context context) { mTrunkBmp =