游标

PyMysql

走远了吗. 提交于 2019-12-22 06:14:16
如何安装pymysql 1.为什么要安装? pymysql是用来连接python和mysql之间的通道,在使用python编程时,通过他来和mysql数据库进行交互 2.怎么安装? 1. 直接用pip安装,pip install pymysql 2. 去github上下载pymysql的安装包, https://github.com/PyMySQL/PyMySQL 将安装包解压到自己某个盘符 在linux下输入命令 tar -zxvf pymysql-master.zip 进入pymysql根目录下打开终端执行命令 python setup.py install pymysql 使用流程 1. 建立数据库连接(db = pymysql.connect(...)) 2. 创建游标对象(cur = db.cursor()) 3. 游标方法: cur.execute("insert ....") 4. 提交到数据库或者获取数据 : db.commit()/db.fetchall() 5. 关闭游标对象 :cur.close() 6. 断开数据库连接 :db.close() 常用函数 db = pymysql.connect(参数列表) host :主机地址,本地 localhost port :端口号,默认3306 user :用户名 password :密码 database :库

Oracle Shared Pool之Library Cache

末鹿安然 提交于 2019-12-21 22:21:37
1. Shared Pool组成   Shared Pool由许多区间(Extent)组成,这些区间又由多个连续的内存块(Chunk)组成,这些内存块大小不一。从逻辑功能角度,Shared pool主要包含三个部分:Library Cache,Dictionary Cache和Control Structure。而这里,我们主要介绍其中的Library Cache。 2. Library Cache   Library Cache主要用于存储系统中的可执行对象(例如:SQL语句,PL/SQL块及相关对象等)及其相关信息(解析信息,可执行代码,相关对象及信息,相关控制结构等),以便实现这些可执行对象及其相关信息的快速访问和共享。 3. Hash Bucket Hash Bucket主要用于特定可执行对象的快速定位和存取,每个哈希桶中对应一个将多个可执行对象连接起来的链表,而这些可执行对象在链表中的表现形式就是可执行对象的句柄(Handle),当需要定位或访问特定对象时,系统通过对特定SQL或PL/SQL对象做特定哈希计算,就可以快速得知该特定对象应该位于的哈希桶,而每个哈希桶的链表比较短,尤其是高版本的Oracle中,哈希桶的链表更短,这样,在哈希桶链表中定位和访问特定对象会非常快速。至于Library Cache中哈希桶的数目,系统会根据Shared Pool的大小自动算出

python之sqlite3使用详解

筅森魡賤 提交于 2019-12-21 14:18:04
Python SQLITE数据库是一款非常小巧的嵌入式开源数据库软件,也就是说没有独立的维护进程,所有的维护都来自于程序本身。它使用一个文件存储整个数据库,操 作十分方便。它的最大优点是使用方便,功能相比于其它大型数据库来说,确实有些差距。但是性能表现上,SQLITE并不逊色。麻雀虽小,五脏俱全, sqlite 实现了多数 sql-92 的标准,比如说 transaction 、 trigger 和复杂的查询等。 python的数据库模块有统一的接口标准,所以数据库操作都有统一的模式,基本上都是下面几步(假设数据库模块名为db): 1. 用db.connect创建数据库连接,假设连接对象为conn 2. 如果该数据库操作不需要返回结果,就直接用conn.execute查询,根据数据库事务隔离级别的不同,可能修改数据库需要conn.commit 3. 如果需要返回查询结果则用conn.cursor创建游标对象cur, 通过cur.execute查询数据库,用cur.fetchall/cur.fetchone/cur.fetchmany返回查询结果。根据数据库事 务隔离级别的不同,可能修改数据库需要conn.commit 4. 关闭cur, conn 下面让我们一步步走进Python中的SQLite吧。 一,Python SQLITE数据库导入模块: import sqlite3 二

Oracle的基本语法,存储函数及触发器

痴心易碎 提交于 2019-12-21 14:09:53
  1.PL/SQL   PL/SQL是Oracle对 ql语言的过程化扩展,指在 SQL 命令语言中增加了过程处理语句,使SQL语言具有过程处理能力。把 SQL 语言的数据操纵能   力与过程语言的数据处理能力结合起来,使得 PLSQL 面向过程但比过程语言简单、高效、灵活和实用。   基本语法结构:   [declare] -- 声明变量   begin -- 代码逻辑   [exception] -- 异常处理   end;   注意:end后的";"不能取消掉   2.Oracle常用的异常   命名的系统异常 产生原因   ACCESS_INTO_NULL 未定义对象   CASE_NOT_FOUND CASE 中若未包含相应的 WHEN ,并且没有设置 ELSE 时   COLLECTION_IS_NULL 集合元素未初始化   CURSER_ALREADY_OPEN 游标已经打开   DUP_VAL_ON_INDEX 唯一索引对应的列上有重复的值   INVALID_CURSOR 在不合法的游标上进行操作   INVALID_NUMBER 内嵌的 SQL 语句不能将字符转换为数字   NO_DATA_FOUND 使用 select into 未返回行   TOO_MANY_ROWS 执行 select into 时,结果集超过一行   ZERO_DIVIDE 除数为

客户端持久化解决方案:indexedDB

[亡魂溺海] 提交于 2019-12-21 05:05:01
客户端持久化解决方案:indexedDB indexedDB适合大量的结构化的数据存储;打开数据库和获取数据对象都是异步的; 需要开启事务,访问的objectStore都要是在开启的事务中。 数据库结构: db->transaction->objectStore->data Web SQL Database 实际上已经被废弃,而HTML5支持的本地存储实际上变成了 Web Storage ( Local Storage和Session Storage )与 IndexedDB 。 Web Storage 使用简单字符串键值对在本地存储数据,方便灵活,但是对于大量结构化数据存储力不从心, IndexedDB 是为了能够在客户端存储大量的结构化数据,并且使用索引高效检索的API。 indexedDB最显著的特点: 异步API 在IndexedDB大部分操作( 如:打开数据库和获取数据 )并不是同步的,如: var request=window.indexedDB.open('testDB'); 这条指令并不会返回一个DB对象的句柄,我们得到的是一个IDBOpenDBRequest对象,而我们希望得到的DB对象在 IDBOpenDBRequest.result 属性中. indexedDB的常用操作 创建/打开数据库 function openDB (name) { var

SQL Server游标的使用

牧云@^-^@ 提交于 2019-12-21 01:17:09
转: http://www.cnblogs.com/moss_tan_jun/archive/2011/11/26/2263988.html 游标是邪恶的! 在关系数据库中,我们对于查询的思考是面向集合的。而游标打破了这一规则,游标使得我们思考方式变为逐行进行.对于类C的开发人员来着,这样的思考方式会更加舒服。 正常面向集合的思维方式是: 而对于游标来说: 这也是为什么游标是邪恶的,它会使开发人员变懒,懒得去想用面向集合的查询方式实现某些功能. 同样的,在性能上,游标会吃更多的内存,减少可用的并发,占用宽带,锁定资源,当然还有更多的代码量…… 从游标对数据库的读取方式来说,不难看出游标为什么占用更多的资源,打个比方: 当你从ATM取钱的时候,是一次取1000效率更高呢,还是取10次100? 既然游标这么“邪恶”,为什么还要学习游标 我个人认为存在既是合理.归结来说,学习游标原因我归纳为以下2点 1.现存系统有一些游标,我们查询必须通过游标来实现 2.作为一个备用方式,当我们穷尽了while循环,子查询,临时表,表变量,自建函数或其他方式扔来无法实现某些查询的时候,使用游标实现. T-SQL中游标的生命周期以及实现 在T-SQL中,游标的生命周期由5部分组成 1.定义一个游标 在T-SQL中,定义一个游标可以是非常简单,也可以相对复杂,取决于游标的参数

PL/SQL程序设计

陌路散爱 提交于 2019-12-20 22:53:51
第一章:PL/SQL概述: 什么是PL/SQL: A。PL/SQL是 Procedure Language & Structured Query Language 的缩写。PL/SQL是对SQL语言存储过程语言的扩展。从ORACLE6以后,ORACLE的RDBMS附带了PL/SQL。它现在已经成为一种过程处理语言,简称PL/SQL。目前的 PL/SQL包括两部分 ,一部分是数据库引擎部分;另一部分是可嵌入到许多产品(如C语言,JAVA语言等)工具中的独立引擎。可以将这两部分称为: 数据库PL/SQL和工具PL/SQL 。两者的编程非常相似。都具有编程结构、语法和逻辑机制。 B。PL /SQL是一种高级数据库程序设计语言,该语言 专门用于在各种环境下对ORACLE数据库进行访问 。由于该语言集成于数据库服务器中 ,所以PL/SQL代码可以对数据进行快速高效的处理。 PL/SQL的好处: A。有利于客户/服务器环境应用的运行 对于客户/服务器环境来说,真正的瓶颈是网络上。无论网络多快,只要客户端与服务器进行大量的数据交换。应用运行的效率自然就回受到影响。如果使用PL/SQL进行编程,将这种具有大量数据处理的应用放在服务器端来执行。自然就 省去了数据在网上的传输时间 。 B。适合于客户环境 PL/SQL由于分为数据库PL/SQL部分和工具PL/SQL。对于客户端来说,PL

SQL SERVER CURSOR

三世轮回 提交于 2019-12-20 20:32:23
一:认识游标 游标(Cursor)它使用户可逐行访问由SQL Server返回的结果集。 使用游标(cursor)的一个主要的原因就是把集合操作转换成单个记录处理方式。 用SQL语言从数据库中检索数据后,结果放在内存的一块区域中,且结果往往是一个含有多个记录的集合。 游标机制允许用户在SQL server内逐行地访问这些记录,按照用户自己的意愿来显示和处理这些记录。 二:游标的基本形式 声明游标:形式1DECLARE cursor_name [INSENSITIVE] [SCROLL] CURSORFOR select_statement[FOR {READ ONLY | UPDATE ][OF column_list]}]形式2DECLARE cursor_name CURSOR[LOCAL | GLOBAL][FORWARD_ONLY | SCROLL][STATIC | KEYSET | DYNAMIC][READ_ONLY | SCROLL_LOCKS | OPTIMISTIC]FOR select_statement[FOR {READ ONLY | UPDATE ][OF column_list]}]INSENSITIVE关键字指明要为检索到的结果集建立一个临时拷贝,以后的数据从这个临时拷贝中获取。如果在后来游标处理的过程中,原有基表中数据发生了改变

rs.open sql,conn,1,1全接触

跟風遠走 提交于 2019-12-20 01:08:03
https://blog.csdn.net/qq_36171618/article/details/79936559 *==========================================================================* rs.open sql,conn,1,1全接触(已修正) *==========================================================================* 经常会在连接DB的时候用到:rs.open sql,conn,A,B A: adOpenForwardOnly(=0) 只读,且当前数据记录只能向下移动 adOpenKeyset(=1) 只读,当前数据记录可自由移动 adOpenDynamic(=2) 可读写,当前数据记录可自由移动 adOpenStatic(=3) 可读写,当前数据记录可自由移动,可看到新增记录 B: adLockReadOnly(=1) 缺省锁定类型,记录集是只读的,不能修改记录 adLockPessimistic(=2) 悲观锁定,当修改记录时,数据提供者将尝试锁定记录以确保成功地编辑记录。只要编辑一开始,则立即锁住记录。 adLockOptimistic(=3) 乐观锁定 ,直到用Update方法提交更新记录时才锁定记录。

pymysql模块的使用

旧城冷巷雨未停 提交于 2019-12-20 00:54:35
本节重点: pymysql的下载和使用 execute()之sql注入 增、删、改:conn.commit() 查:fetchone、fetchmany、fetchall 一、pymysql的下载和使用   之前我们都是通过MySQL自带的命令行客户端工具mysql来操作数据库,那如何在python程序中操作数据库呢?这就用到了pymysql模块,该模块本质就是一个套接字客户端软件,使用前需要事先安装。 (1)pymysql模块的下载 pip3 install pymysql (2)pymysql的使用 数据库和数据都已存在 # 实现:使用Python实现用户登录,如果用户存在则登录成功(假设该用户已在数据库中) import pymysql user = input('请输入用户名:') pwd = input('请输入密码:') # 1.连接 conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', password='', db='db8', charset='utf8') # 2.创建游标 cursor = conn.cursor() #注意%s需要加引号 sql = "select * from userinfo where username='%s' and pwd='%s'" %(user,