sql
码疯
码疯
展开
-
使用数组动态赋值SQL IN ()条件
VBsql = "SELECT * FROM TABLE WHERE AA IN (" 初始化查询字符串 For i = 0 to UBound(Ary) 从0循环到数组最大下标 sql = sql & Ary(i) & "," 将数组中每个值加在查询字符串后面 Next sql = Left(sql,Len(sql)-1) & ")" 将最后一个逗号换为反括号 C# static原创 2008-11-07 12:59:00 · 5343 阅读 · 0 评论 -
使用oracle的start with... connect by prior根据子节点,找到从子节点到根目录所有路径
场景: 项目中海关编码目录表以树的方式存储,而且该表只包含一棵树,需要找到某个子节点到根目录的所有路径和某个根节点下的所有子节点路径。解决:根据子节点,找到从子节点到根目录所有路径select ID, PARENT_ID, GMT_CREATE,原创 2010-09-20 18:50:00 · 2980 阅读 · 0 评论 -
使用oracle的trunc和dbms_random.value随机取n条数据
场景:今天在review项目代码的时候看到这样一个问题,有一张号码表,每次需要从这样表中随机取6个空闲的号码,也就是每次取出来的6个号码应该都会有所不同。然后我就看到了这样的SQL select t.* from tel_number_tbl t where t.status = '空闲' and t.area_code = '0571' and t.delete_flg = '未删除' and rownum原创 2010-09-17 22:57:00 · 4905 阅读 · 1 评论 -
使用Oracle的row_number() over函数过滤重复数据,取最新的记录
问题:在项目中有一张设备检测信息表DEVICE_INFO_TBL, 每个设备每天都会产生一条检测信息,现在需要从该表中检索出每个设备的最新检测信息。也就是device_id字段不能重复,消除device_id字段重复的记录,而且device_id对应的检测信息test_result是最新的。 解决思路:用Oracle的row_number() over函数来解决该问题。解决过程: 1.查看表中的重复记录select t.id, t.device_id, t.update_dtm,原创 2010-08-27 00:11:00 · 8726 阅读 · 0 评论 -
如何开发ORACLE存储过程
在我的上一个银行项目中,我接到编写ORACLE存储过程的任务,我是程序员,脑袋里只有一些如何使用CALLABLE接口调用存储过程的经验,一时不知如何下手,我查阅了一些资料,通过实践发现编写ORACLE存储过程是非常不容易的工作,即使上路以后,调试和验证非常麻烦。简单地讲,Oracle存储过程就是存储在Oracle数据库中的一个程序。 一. 概述 Oracle存储过程开发的要点是:原创 2010-04-20 13:43:00 · 724 阅读 · 0 评论 -
使用Java调用Oracle数据库的存储过程实例
一:无返回值的存储过程 1、建立存储过程CREATE OR REPLACE PROCEDURE TESTA(PARA1 IN VARCHAR2,PARA2 IN VARCHAR2) ASBEGININSERT INTO T_TEST (I_ID,I_NAME) VALUES (PARA1, PARA2);END TESTA; 2、相应的JAVA程序import java转载 2010-04-19 15:03:00 · 998 阅读 · 0 评论 -
Oracle分页讨论
oracle分页???在mysql中只要limit x,y就可以分页成功,那oracle 中是怎么做的呢?=================================================方法一:SELECT id,rown FROM (SELECT id, ROWNUM rown FR原创 2010-04-15 17:03:00 · 809 阅读 · 0 评论 -
(Oracle)rownum用法详解
(Oracle)rownum用法详解2008-08-06 15:41对于rownum来说它是oracle系统顺序分配为从查询返回的行的编号,返回的第一行分配的是1,第二行是2,依此类推,这个伪字段可以用于限制查询返回的总行数,且rownum不能以任何表的名称作为前缀。(1) rownum 对于等于某值的查询条件如果希望找到学生表中第一条学生的信息,可以使用rownu转载 2010-04-15 16:46:00 · 2135 阅读 · 1 评论 -
oracle中占位符
跟其他语言的参数差不多,使用时要把把真实数据传过去替代优点记得一些,如果在查询中使用直接量(常量),那么每个查询都将是一个全新的查询,必须对查询进行解析、限定(命名解析)、安全性检查、优化等即重新生成执行计划。而使用了以后就可以重复使用最先创建的执行计划。原创 2010-03-17 20:52:00 · 11003 阅读 · 1 评论 -
锁的概述
锁的概述一. 为什么要引入锁多个用户同时对数据库的并发操作时会带来以下数据不一致的问题:丢失更新A,B两个用户读同一数据并进行修改,其中一个用户的修改结果破坏了另一个修改的结果,比如订票系统脏读A用户修改了数据,随后B用户又读出该数据,但A用户因为某些原因取消了对数据的修改,数据恢复原值,此时B得到的数据就与数据库内的数据产生了不一致不可重复读A用户读取数据,随后B用户读出该转载 2009-05-08 00:28:00 · 750 阅读 · 0 评论 -
共享锁与排他锁理解
共享锁(S锁):如果事务T对数据A加上共享锁后,则其他事务只能对A再加共享锁,不能加排他锁。获准共享锁的事务只能读数据,不能修改数据。排他锁(X锁):如果事务T对数据A加上排他锁后,则其他事务不能再对A加任任何类型的封锁。获准排他锁的事务既能读数据,又能修改数据。简要说明为什么会发生死锁?解决死锁的主要方法是什么?若干事务相互等待释放封锁,就陷入无限期等待状态,系统就进入死锁解决死锁的方法应从预防转载 2009-05-07 23:58:00 · 3656 阅读 · 1 评论 -
T-SQL语句创建触发器
create trigger 触发器名 on 表或视图for|after|instead of --操作时机insert,update,deleteassql语句 例1: 要求:在order_test表建立insert触发器,当向order_test表插入一行,如果cust_test表中对应 记录status值为1,说明处于准备状态不能写入该数据 create trigger转载 2009-05-07 23:38:00 · 4074 阅读 · 1 评论 -
数据库中的锁机制(数据库中有哪些锁)
数据库中的锁机制锁是网络数据库中的一个非常重要的概念,它主要用于多用户环境下保证数据库完整性和一致性。各种大型数据库所采用的锁的基本理论是一致的,但在具体实现上各有差别。目前,大多数数据库管理系统都或多或少具有自我调节、自我管理的功能,因此很多用户实际上不清楚锁的理论和所用数据库中锁的具体实现。 Microsoft SQL Server(以下简称SQL Server)作为一种中小型数据库管理系统,转载 2009-05-08 00:12:00 · 3526 阅读 · 0 评论 -
SQL2005 创建存储过程语句。
创建一个储存储过程“A”create proc A ( @name char(6) ) as select name from 表名where name=@name return原创 2009-05-07 23:51:00 · 958 阅读 · 0 评论 -
SQL语句建表等
以下就是示例:用 DDL 的 Create Table 建立一个表 Table1 ,主键是自动编号字段,另一个字段是长度是 10 的文本字段。CREATE TABLE Table1 (Id COUNTER CONSTRAINT PrimaryKey PRIMARY KEY, MyText TEXT (10)) 再建一个包含两个字段的表 Table2,字段 id 为长整型,字段 MyTe转载 2009-05-08 17:22:00 · 834 阅读 · 0 评论 -
如何用sql语句创建数据库
以前创建数据库一直使用的是企业管理器, 但是,现在觉得虽然用企业管理器能方便的创建数据库,但是却不了解其意义.所以我觉得还是写sql代码比较专业点.首先打开企业查询分析器然后sql语句为:use mastergoif exists (select * from sysdatabases where name=mlnt)drop database mlnt转载 2009-05-07 23:06:00 · 1121 阅读 · 0 评论 -
Oracle数据库对象分析
快速篇 Oracle中包含五种数据库对象,分别为别名、序列、视图、索引和簇,其中别名和序列为Oracle中特有的数据库对象。 别名:通过对Oracle中数据表设置别名之后,可以使用别名对数据表进行与原表名同样的各种操作。其语句关键字为synonym,下面看其具体用法。转载 2009-04-11 21:03:00 · 1128 阅读 · 0 评论 -
SQL中in和exists的区别和执行效率问题解析
in能够分为三类: 1、形如select * from t1 where f1 in ( 'a ', 'b '),应该和以下两种比较效率 select * from t1 where f1= 'a ' or f1= 'b ' 或 select * from t1 where f1 = 'a原创 2008-11-07 13:15:00 · 1189 阅读 · 0 评论 -
Oracle迁移到MySQL 一些注意
Oracle迁移到MySQL 一些注意数据类型oraclemysql Number(2)TINYINT -128到127(SIGNED),0到255(UNSIGNED)需要1个字节存储 SMALLINT-32768到32767(SIGN转载 2013-04-23 18:40:27 · 2198 阅读 · 0 评论