sql游标

SQL高级应用

此生再无相见时 提交于 2020-01-20 22:31:37
1、游标的使用 Select\delete \update\insert into 表 selct*from 定义游标,让游标指向sql查询的结果 declare demoCursor Cursor for select 列名1,列名2,列名3 from 表名 open demoCursor declare @UserName nvarchar(32) declare @UserId int declare @UserAge int fetch next from demoCursor into @UserName, @UserName, @UserName close demoCursor deallocate domeCursor--释放游标 2、视图 把一个查询结果作为虚拟表 提供给开发人员使用 create View VW_UserInfo as select *from UserInfo where UserAge>40 视图的使用: select*from VW_UserInfo 视图可以直接当表用 3、临时表 用#修饰临时表 crete table #testTb ( Id int identity(1,1) primary key not null, Name nvarchar(32) null ) --临时表的使用和普通表一样。 select*from

oracle游标、触发器创建与使用

岁酱吖の 提交于 2020-01-20 08:00:16
游标 SQL语言是面向集合的,是对指定列的操作。如果要对列中的指定行进行操作,就必须使用游标。 当在PL/SQL块中执行查询语句(SELECT)和数据操纵语句(DML)时,Oracle会为其分配一个上下文区(Context Area) 游标是指向上下文区的指针,它为应用提供了一种对具有多行数据查询结果集中的每一行数据分别进行单独处理的方法 游标分为显式游标和隐含游标两种 隐含游标用于处理SELECT INTO和DML语句 显式游标则用于处理SELECT语句返回的多行数据 显式游标属性使用格式为:游标名 + 属性名 %ISOPEN 用于确定游标是否已经打开。如果游标已经打开,则返回值为TRUE;否则返回FALSE %FOUND 检查是否从结果集中提取到数据。如果提取到数据,则返回值为TRUE;否则返回FALSE %NOTFOUND 与%FOUND属性恰好相反,如果提取到数据,则返回值为FALSE;否则返回TRUE %ROWCOUNT 返回到当前行为止已经提取到的实际行数 //根据条件查询并输出部门信息 declare v_dept dept % rowtype ; cursor dept_cursor is select * from dept where deptno > 10 ; //定义游标 begin open dept_cursor ; //打开游标 loop fetch

plsql语句

試著忘記壹切 提交于 2020-01-17 06:09:21
基本语法 使用一个变量 declare –声明一个变量 v_name varchar2(25); begin –通过 select … into … 语句为变量赋值 select last_name into v_name from employees where employee_id = 186; – 打印变量的值 dbms_output.put_line(v_name); end; 使用多个变量 declare –声明变量 v_name varchar2(25); v_email varchar2(25); v_salary number(8, 2); v_job_id varchar2(10); begin –通过 select … into … 语句为变量赋值 –被赋值的变量与 SELECT 中的列名要一一对应 select last_name, email, salary, job_id into v_name, v_email, v_salary, v_job_id from employees where employee_id = 186; – 打印变量的值 dbms_output.put_line(v_name || ', ’ || v_email || ', ’ || v_salary || ', ’ || v_job_id); end; 记录类型 3.1

sql之T-SQL

此生再无相见时 提交于 2020-01-16 16:17:38
下面就T-SQL的几个方面来分别讲解一下。 1、变量 要动态的写sql语句,就不能没有变量。 声明变量并赋值: 1 declare @i as int;--定义一个 int 类型的 变量 (as可以省略) 2 print @i;--这注意:没有赋值之前,程序不会报错,而且输出一个 空 3 set @i=3; 4 print @i; 在sql server 2008之后就可以对变量 在声明的同时进行赋值 1 declare @a int=3; 2 print @a; 在变量的使用过程中,一定要注意nvarcahr 和nchar的区别。 1 declare @s nvarchar(20); 2 set @s='Hello'; 3 set @s=@s+' World!'; 4 print @s;--输出的是 Hello World! 5 6 declare @s2 nchar(20); 7 set @s2='Hello'; 8 set @s2=@s2+' World!'; 9 print @s2;--输出的是 Hello。 为什么使用nchar却是输出的 Hello,因为:nchar是固定长度,即使长度没有达到最大,但是其余长度用 空来代替了,所以 相当于是满的,所以在进行字符串的相加 是不会起作用的。 在查询中赋值: 1 declare @now datetime; 2 select

oracle练习-day04

心不动则不痛 提交于 2020-01-15 22:34:06
- - - - - - - - - - - - - - - - - - - - - - - - - - - Oracle day04 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 01 .什么是PL / SQL ? 通俗理解:plsql: Procedure language sql 过程化语言 plsql是一组 sql 语句集合,在这个plsql中集合语句中可以处理复杂业务逻辑 (申明变量、条件分支、循环语句、异常处理) 优点:如果使用plsql语言,编写存储过程 函数,提供java代码调用,减少访问数据频率 缺点:对程序员要求比较高(高级程序员 或 专业DBA),存储过程 函数 移植不方便 - - 02 .PL / SQL 基本语法 declare - - 声明变量 (普通变量、常量、引用型变量、记录型变量) begin - - DML语句(逻辑语句) end ; - - 03 .普通变量和常量使用 - - 类似于java中 private String myname = "老王" ; declare myname varchar2( 30 ) : = '老王' ; begin myname : = '隔壁老王' ; select e.ename into myname from

SQL Server游标的使用【转】

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

SQL With(递归 CTE 查询)

做~自己de王妃 提交于 2020-01-13 08:03:59
本文来自:http://www.cnblogs.com/smailxiaobai/archive/2012/01/16/2323291.html 指定临时命名的结果集,这些结果集称为公用表表达式 (CTE)。该表达式源自简单查询,并且在单条 SELECT、INSERT、UPDATE 或 DELETE 语句的执行范围内定义。该子句也可用在 CREATE VIEW 语句中,作为该语句的 SELECT 定义语句的一部分。公用表表达式可以包括对自身的引用。这种表达式称为递归公用表表达式。 Transact-SQL 语法约定 语法 [ WITH <common_table_expression> [ ,...n ] ] <common_table_expression>::= expression_name [ ( column_name [ ,...n ] ) ] AS ( CTE_query_definition ) 参数 expression_name 公用表表达式的有效标识符。 expression_name 必须与在同一 WITH <common_table_expression> 子句中定义的任何其他公用表表达式的名称不同,但 expression_name 可以与基表或基视图的名称相同。在查询中对 expression_name 的任何引用都会使用公用表表达式,而不使用基对象。

pymysql

微笑、不失礼 提交于 2020-01-07 22:41:27
*/ /*--> */ 目录 About pymysql Install 准备 建立连接 创建数据库 快速上手之增删改查 增 删 改 查 SQL注入 事物 存储过程 返回Python目录 返回测试目录 返回随笔首页 About pymysql 返回顶部 在Python2.x中,Python连接MySQL服务器使用mysqldb库,但是它只支持到Python2.x,在Python3.x中由pymysql模块代替。 PyMySQL 遵循 Python 数据库 API v2.0 规范,并包含了 pure-Python MySQL 客户端库。 Install 返回顶部 pip install pymysql # 备用地址 pip install -i https://pypi.doubanio.com/simple pymysql 准备 返回顶部 在正式操作前,这里默认你有了一个良好的环境,包括MySQL服务,Python环境。 建立连接 返回顶部 import pymysql conn = pymysql.connect( host='localhost', # 连接的服务器ip user='username', # 用户名 password='password', # 密码 database='day31', # 你想连接的数据库 charset='utf8' # 指定字符编码

使用Python对MySQL数据库操作

Deadly 提交于 2019-12-31 11:43:12
本文介绍Python3使用PyMySQL连接数据库,并实现简单的增删改查。 什么是PyMySQL? PyMySQL是Python3.x版本中用于连接MySQL服务器的一个库,Python2.x中则使用mysqldb。 PyMySQL安装 在使用PyMySQL之前,我们需要确保PyMySQL已经安装。 PyMySQL下载地址: https://github.com/PyMySQL/PyMySQL 。 如果还未安装,我们可以使用以下命令安装最新版的PyMySQL: $ pip install PyMySQL 如果你的系统不支持pip命令,可以使用以下方式安装: 1、使用git命令下载安装包安装(你也可以手动下载): $ git clone https://github.com/PyMySQL/PyMySQL $ cd PyMySQL $ python3 setup.py install 2、如果需要制定版本号,可以使用curl命令来安装: $ # X.X 为PyMySQL 的版本号 $ curl -L https://github.com/PyMySQL/PyMySQL/tarball/pymysql-X.X | tar xz $ cd PyMySQL* $ python3 setup.py install 注意: 请确保您有root权限来安装上述模块。 3、数据库连接 连接数据库前

ORACLE中DBMS_SQL的用法

こ雲淡風輕ζ 提交于 2019-12-30 18:37:52
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 对于一般的select操作,如果使用动态的sql语句则需要进行以下几个步骤: open cursor---> parse---> define column---> excute---> fetch rows---> close cursor; 而对于dml操作(insert,update)则需要进行以下几个步骤: open cursor---> parse---> bind variable---> execute---> close cursor; 对于delete操作只需要进行以下几个步骤: open cursor---> parse---> execute---> close cursor; www.2cto.com 例一: create table test(n_id number, v_name varchar2(50), d_insert_date date); alter table test add constraint pk_id primary key(n_id); declare v_cursor number; v_sql varchar2(200); v_id number; v_name varchar2(50); v_date date; v_stat number; begin