- 浏览: 155061 次
- 性别:
- 来自: 北京
-
文章分类
- 全部博客 (130)
- PL/SQL (18)
- JSTL (2)
- Linux (5)
- 反射 (1)
- 路径 (6)
- za (5)
- 数组 (1)
- 无聊代码 (2)
- GC (1)
- 源代码学习 (1)
- ThreadLocal (3)
- 多线程 (5)
- 锁 (2)
- 服务器 (2)
- exception (3)
- struts (2)
- spring (7)
- hibernate (3)
- oracle (8)
- JS (4)
- jsp/servlet基础 (1)
- 菜 (1)
- JVM (2)
- PC (1)
- 设计模式 (2)
- uml (1)
- Bean (2)
- IO (3)
- eclipse (0)
- Collection (14)
- 内部类 (1)
- 正则 (4)
- 编码?? (1)
- 加密 (2)
- Date (3)
- 佛 (3)
- XML (1)
- JFreeChart (1)
- itext (0)
- JDBC (1)
- word (1)
最新评论
-
qq_27688163:
public static void printIsta ...
基础多态 -
qq_27688163:
最后运行的结果应该是:i=3lalai=3lalaBB13
基础多态 -
mercyblitz:
Thread 没有生命周期时间,对于这种资源(需要关闭的),T ...
ThreadLocal3
表结构: CREATE TABLE ATEST (ID INTEGER, NAME VARCHAR(256), CODE INTEGER, NAME2 VARCHAR(256) ) CREATE TABLE BTEST (ID INTEGER, CODE INTEGER ) CREATE TABLE CTEST (ID INTEGER, NAME VARCHAR(256), NAME2 VARCHAR(256) ) SQL语句: 一张表更新另一张表的字段: update atest set atest.name=(select ctest.name from ctest where atest.id = ctest.id) where atest.id in (select ctest.id from ctest); 两张表关联更新另一张表的字段: update atest set (name,name2) = (SELECT CASE WHEN CTEST.NAME IS NULL THEN ATEST.NAME ELSE CTEST.NAME END, CASE WHEN CTEST.NAME2 IS NULL THEN ATEST.NAME2 ELSE CTEST.NAME2 END FROM BTEST LEFT JOIN CTEST on BTEST.ID = CTEST.ID WHERE atest.CODE = BTEST.CODE) WHERE atest.CODE IN (SELECT BTEST.CODE FROM BTEST); 另外一个: http://blog.csdn.net/Bobwu/archive/2009/01/13/3768636.aspx 1. declare cursor t1 is select * from tablename; begin for rec in t1 loop update tablename t set t.detail=rec.jieshao where t.objectid=rec.objid; end loop; end; 2. update student set (name,id )= (select name ,id from (select student.rowid rd,student1.name,student1.id from student1,student where student1.int_id =student.int_id) tmp where student.rowid=tmp.rd); commit; 3. update test_a a set (a.name,a.age)= (select b.name,b.age from test_b b where a.id = b.id) where exists (select * from test_b c where c.id=a.id) 4. UPDATE t_A SET Djrq= ( SELECT djrq FROM t_B WHERE t_A.ID = T_B.ID WHERE ROWNUM = 1 ) WHERE t_A.ID IN ( SELECT ID FROM t_B WHERE jwh='XX村' ) 5. update tbl1 a set (a.col1, a.col2) = (select b.col1, b.col2 from tbl2 b where a.key = b.key) where a.key in(select key from tbl2)
MERGE INTO test1 a USING all_objects b ON (a.object_id = b.object_id) WHEN MATCHED THEN UPDATE SET a.status = b.status WHEN NOT MATCHED THEN INSERT (object_id, status) VALUES (b.object_id, b.status); update account set firstname = (select max( firstname) from account where userid = 'ACID') where userid = 'j2ee' 这是一个经典的问题,太多的理论不说了,我直接举个例子吧。 两张表T_USER(用户信息表),T_NAME_MAP(新老姓名映射表) T_USER的字段:USER_ID,USER_NAME,USER_INFO; T_NAME_MAP的字段:USER_ID,NEW_NAME; 具体语句: UPDATE T_USER A SET A.USER_NAME = (SELECT B.NEW_NAME FROM T_NAME_MAP B WHERE A.USET_ID = B.USER_ID) WHERE EXISTS (SELECT 1 FROM T_NAME_MAP C WHERE A.USER_ID = C.USER_ID ); 特别提醒: 1、如果T_USER表中的一个USER_ID在T_NAME_MAP 表中存在两条以上的记录,则该语句会报错。因为Oracle是无法辨别你要“更新”哪一条的。当然,从纯技术的角度来看,这种情况也是可以处理的,你可以在B.NEW_NAME 上加一个函数,如MAX(B.NEW_NAME ). 2、WHERE EXISTS 语句绝对不可以省略,有了这个子句,才能实现“一对一”的批量更新,否则会报错“返回多行”了。 以上,希望可以对你有所帮助,共同提高
发表评论
-
update1
2010-08-19 09:41 860UPDATE COST_EVENT CE SET (C ... -
增加不存在的数据
2010-08-18 00:21 829select siteID, siteN ... -
无聊的经典SQL
2010-07-28 15:27 8962007年07月27日 星期五 上 ... -
oracle merge
2010-07-19 22:37 801create table PRODUCTS ( ... -
put_line_unlimit mail.pkg --attachment
2010-07-18 15:08 824create or replace procedure put ... -
动态交叉表
2010-07-15 16:04 851PROCEDURE cross_table_test(DAT ... -
SQL1
2010-06-23 16:22 720select * from (select e.id, ... -
oracle临时表
2010-06-23 16:10 687drop table Student create gl ... -
data in DB
2010-06-22 12:47 697create or replace procedure EIS ... -
at 测试使用attachment
2010-06-19 11:06 818测试使用 attachment -
oracle 连接 join at
2010-06-16 21:24 1423--1 等值连接 SELECT * FROM EMP e, ... -
level 100?
2010-02-26 18:49 888SELECT MQ.DT_COL, SUM ... -
消失的日期
2010-02-26 16:06 9171582年前使用的是凯撒时期制定的儒略历,4年一闰。1582年 ... -
date function
2010-02-26 14:48 697--Trunc ,Round return date - ... -
不存在的数据
2010-02-25 17:28 737表A id name time 1 aa 2 ... -
无聊SQL1
2010-01-12 13:09 745select (select min(event.event_ ... -
分割字符
2009-12-29 17:04 781CREATE OR REPLACE TYPE mytable ...
相关推荐
- **解释:** 当执行数据的插入或更新操作时,可以使用的主机变量总字节数被限制在 32767 字节之内。 #### 其他限制 - **SQL 语句的最大长度:** 一个 SQL 语句的最大长度不超过 65535 字节。 - **选择列表中最大的...
即对于表T1中的每一行,如果存在匹配的表T2中的行,则更新表T1中的相应字段。这种方式虽然简单直接,但效率较低,尤其是当表中数据量较大时。例如,以下是一些常规的更新语句示例: ```sql UPDATE T1 SET A2 = 3 ...
3. 读取工作表数据:使用HSSFSheet对象获取工作表中的行和列数据,例如使用getLastRowNum()方法获取工作表中的行数,然后使用for循环迭代读取每一行数据。 技术要点2:DB2数据库连接和SQL执行 DB2是IBM公司开发的...
- 查询一张表以确认数据的准确性:`select * From TBL_IPLOCK`。 ##### 2.7 更新应用程序堆大小 - **步骤7**:为了提高数据库性能,特别是存储过程的执行效率,可以考虑更新应用程序堆大小。 - 执行命令:`db2 ...
#### 一、DB2游标概念与使用 **1.1 游标简介** 在DB2中,游标是一种用于遍历查询结果集的强大工具。它允许用户一行一行地处理数据,这对于需要逐行处理数据的应用场景非常有用。游标通常用于以下几种情况: - 需要...
- Oracle的表空间数据文件通常较小且数量较多,而DB2则倾向于使用较大的数据文件。 - **1.5.3 数据库使用内存的差异** - Oracle和DB2在内存管理机制上有明显的区别,Oracle更侧重于动态调整内存使用量,而DB2则...
值得注意的是,一个EXTENT在同一时间只能由一张表使用,不能共享。 5. **数据页**:数据页是DB2中最小的数据存储单位,是数据在物理磁盘上的基本存储形式。每个数据页通常大小固定,如4KB或8KB等。 #### 三、容器...
col2 SMALLINT NOT NULL, col3 CHAR(10), PRIMARY KEY(col1, col2)) IN tbsp1 DISTRIBUTEBY HASH(col1)`:创建一张名为`table1`的表,并指定其存储在表空间`tbsp1`中,数据按照`col1`列进行哈希分布。 5. **服务...
DB2是一个广泛使用的、高性能的关系型数据库管理系统,它支持SQL语言进行数据操作。在数据库初始化或配置过程中,脚本通常用于执行一系列创建表、设置权限、导入数据等任务。然而,分号在SQL语句中用作命令终止符,...
FROM another_table`:通过查询另一张表插入数据。 2. 查询资料: - 基本查询:`SELECT column1, column2,... FROM table_name`。 - 子查询:可以在`SELECT`语句中嵌套`SELECT`语句,用于从多个源获取数据。 3....
1. **数据更新失败**:当多个事务尝试同时修改同一行数据时,为了避免数据冲突,DB2会自动锁定该行数据,直到其中一个事务完成更新。 2. **读取未提交的数据**:为了避免用户读取到其他事务尚未提交的数据,DB2会...
- **作用**: 更新表上的统计信息,帮助优化查询计划。 - **示例**: 更新`tb1`表上的统计信息。 **42. 备份数据库test** - **命令**: `db2backup db test` - **作用**: 创建指定数据库的完整备份。 - **示例**: 创建...
16. **插入数据到另一张表** - **命令**: `#db2 "insert into t1 select * from t2"` - **功能**: 将`t2`表中的所有数据插入到`t1`表中。 - **参数**: - `t1`: 目标表。 - `t2`: 数据源表。 17. **查询数据** ...
- **插入数据**:使用INSERT INTO语句向表中插入新的数据行。 - **更新数据**:UPDATE语句用于修改表中的现有数据。 - **删除数据**:DELETE语句用于从表中删除数据行。 ### 6. 数据查询语言(DQL) - **SELECT语句*...
数据仓库的生成涉及到从操作型环境(如DB2数据库服务器)中抽取数据,并加载到数据仓库(如MS SQL SERVER服务器)。这一步骤通常需要编写接口程序,确保数据的准确传输和转换。 最后,数据仓库的数据导出与展现环节...
在本文档中,我们将深入探讨基于 DB2 的一系列数据库操作,包括数据库的基本操作、表的操作、数据操作与事务处理、内置函数、多表查询、子查询以及其他的数据库对象,如视图、索引、序列,以及存储过程和触发器。...
- **定义**:视图是一种虚拟表,其内容由存储在另一张表中的数据通过 SELECT 语句来定义。 - **作用**: - 简化复杂的查询语句。 - 保护数据,通过只暴露特定的数据子集给用户。 - 提高数据的一致性和安全性。 #...
在DB2中,创建分区表时需要明确指定如何进行数据分区以及数据如何组织。在这个问题中,我们需要创建一个按照C1列进行范围分区的表,且每三个月为一个分区。同时,对于每个分区内的数据,我们希望基于C2和C3列进行...
假设我们有两个事务,事务A和事务B,它们分别对同一张表中的某些行进行操作: 1. **事务A**:获取了表中某一行的共享锁(`S`)。 2. **事务B**:尝试获取同一行的互斥锁(`X`)。 在这种情况下,事务B将无法成功获取锁...