SQL关联操作(查询与更新)

    sql的除了关联查询,还可以关联更新删除等,有时可以一条sql搞定数据移植, 避免写存储过程时。
以下列举了sql的各种级联操作场景。 
      主表:部门表-dept(dept_id,dname,enum)
      从表:员工表-emp (emp_id , ename , sal,dept_id)
      //以下是oracle的sql语法
 1,关联查询
    场景:查询所有员工的部门名称              
    
 2,关联更新
    场景:更新部门表的人数enum       
    update dept d set d.enum = 
             (select count(*) from emp e    where e.dept_id=d.dept_id ); 
 3,关联子查询
    场景a:哪些员工的工资-sal 比本部门的平均工资高     
    
    场景b:查出没有员工的部门     
    
 4,关联删除
    场景:删除没有员工的部门

备注:以上博文是从我的开源中国上搬家过来的

时间: 2024-08-26 20:31:33

SQL关联操作(查询与更新)的相关文章

SQL用子查询结果更新多个字段

作者:iamlasong 要求:表格的内容需要变更,变更的内容放在一个临时表中,用SQL语句更新正式表中多个字段. 如果更新一个字段,直接用字段名=子查询就可以了,多个字段更新,将字段在括号中并列写出即可,如下: update tb_jg t set t.jgfl = 'sd', (     t.zj_code, t.zj_mc) = (select a.zj_code, a.zj_mc from song_temp a where a.zj_code = t.zj_code) where ex

SQL随着子查询结果更新多个字段

笔者:iamlasong 要求:表格内容需要改变,在临时表中内容的变化,使用SQL官方声明更新表若干领域. 假设更新一个字段,直接用字段名=子查询就能够了,多个字段更新,将字段在括号里并列写出就可以,例如以下: update tb_jg t set t.jgfl = 'sd', (     t.zj_code, t.zj_mc) = (select a.zj_code, a.zj_mc from song_temp a where a.zj_code = t.zj_code) where exi

sql 两表查询后 更新某表中部分字段

这是上一个sql更新某表字段的一个延伸,在更新表数据时,实际上会有多表数据查询场景,查询后,只需要更新某一个表中的数据,以下提供两个方法, 第一种使用update 两表查询 update api_manage_apicollectioninfo_copy a, api_manage_apicollectionmanage b set a.header=replace(a.header,'XXXDDD','zhangjun') WHERE a.api_collection_id=b.id and

sql关联表查询结果并插入

这里涉及三个表,AA,BB,CC,将AA的数据更新到CC表中,将AA中LABEL_ID分别截取字段与BB表中的label_id对应查询到LABEL_NAME作为CC表的一个字段插入,这里分成四段查询 insert into CC select T.apmac,T1.LABEL_NAME,T2.LABEL_NAME,T3.LABEL_NAME,T4.LABEL_NAME,T.LABEL_ID,'杭州' from(select a.AP_MAC as apmac,a.LABEL_ID ,substr

一对一关联查询时使用relation连贯操作查询后,调用getLastSql()方法输出的sql语句

如题: 一对一关联查询时使用relation连贯操作查询后,调用getLastSql()方法输出的sql语句不是一条关联查询语句. 例如: $list = $db->relation(true)->where($where)->order('blogid desc')->limit($Page->firstRow.','.$Page->listRows)->select(); $sql = $db->getLastSql(); 输出的sql语句为: SELE

mssql sql高效关联子查询的update 批量更新

/* 使用带关联子查询的Update更新     --1.创建测试表 create TABLE Table1     (     a varchar(10),     b varchar(10),     c varchar(10),     CONSTRAINT [PK_Table1] PRIMARY KEY CLUSTERED     (     a ASC     )     ) ON [PRIMARY] create TABLE Table2     (     a varchar(10

通过Spark SQL关联查询两个HDFS上的文件操作

order_created.txt   订单编号  订单创建时间 10703007267488 2014-05-01 06:01:12.334+01 10101043505096 2014-05-01 07:28:12.342+01 10103043509747 2014-05-01 07:50:12.33+01 10103043501575 2014-05-01 09:27:12.33+01 10104043514061 2014-05-01 09:03:12.324+01 order_pic

Hibernate关联操作、查询操作、高级特性、并发处理机制

本文所需的数据库初始文件,Hibernate常用操作的完整示例代码(包含所有Hibernate操作所需jar文件)提供下载学习:http://download.csdn.net/detail/daijin888888/9551724 1.Hibernate关联映射 1)什么是关联映射? 如果表之间具有关联关系,Hibernate允许我们在hbm.xml中描述他们的关联关系,然后在我们操作其中一张表时,自动的根据这种关系操作到另外的关系表,那么这种关联关系的设置,我们称之为关联映射. 2)关联映射

SQL 2005 中查询或执行另外的数据库操作的方法

原文:SQL 2005 中查询或执行另外的数据库操作的方法 摘要: 如果,你想在一台数据库服务器上,查询另一个台数据服务器的数据该如何做呢?如果,你想在同一台数据服务器上,在不同的数据库之间查询数据,又该怎么办呢? 1.Synonym 2.openquery 3.Linked Servers Server Object-->Linked Servers--> serverType 选择 SQL Server, 在 Security 中 选择"Be made using this se