oracle修改数据语法。 属于联表查询进行修改来的。
update mset m2 = 't' ,m3='u'where exists(select 1 from q where m1=q1 and m2=q2 and m3=q3)
更新m表后,
重新执行查询,得出n
设定dept表deptno列为主键。
alter
table
dept
add
constraint
pk_deptno
primary
key
(deptno);
在emp表deptno列上建立外键引用dept表deptno,指定外键类型为级联删除。
alter
table
emp
add
constraint
fk_deptno
foreign
key
(deptno)
references
dept(deptno)
on
delete
cascade;
这样删除dept表
只需:delete
from
dept
where
city='shanghai';
就可以自动删除对应emp表内容。
修改关联数据的方法如下。
有以下两张表:
根据test2表中的id和test1表中的id关联,修改test1表中name字段,语句如下:
update test1 a set a.name=(select b.name from test2 b where a.id=b.id) where a.id in (select id from test2);
更新后,test1表中结果:
这样写,别名太多了,去掉了一些:
UPDATE Tmp_09_Graduate g
SET g.Schoolid =
(SELECT C8900
FROM C89
WHERE C8900 = g.Enrollschool
AND Rownum = 1)
WHERE g.Enrollschool IN (SELECT C8900 FROM C89);
不明白,这个schoolid和enrollschool难道不是同一个值?
分析一下这个语句:
where里的SELECT子句,返回的是c.c8900,条件是enrollschool在这个返回列表里,即enrollschool和某个c8900是相同的,然后你又set schoolid=c8900,那和set schoolid=enrollschool有什么差别?(假设对于某个enrollschool只有一个C8900对应哈,不然执行会报错的)
select c.c8900 from c89 c;查询的结果可能是多个值,多个值怎么可以全部赋给g.schoolid呢。
想了想,是不是可以这样做呢?
update tmp_09_graduate g
set g.schoolid = g.enrollschool
where g.enrollschool in (select c.c8900 from c89 c);
oracle数据库怎么批量修改数据?
1、使用以下代码即可同时更新一个表中几个字段的值:updateASET(C1,C2,C3,C4)=(SELECTC1,C2,C3,C4FROMBWHEREID=A.ID)Oracle数据库最新版本为OracleDatabase12c。2、update表名set(字段1,字段2,字段3,...)=(select数值1,数值2,数值3,...)where条件多个字段可以使用逗号隔开,每一个...
Oracle数据库中查出来的数据可以在表上直接修改吗?
1、select * from table for update;解锁直接修改,然后提交。这个有一个不好的地方,这样会锁表。一般采用第二种方式 2、select rowid,t.* from table t ;解锁直接修改,然后提交 ,这种方式不会锁表。
oracle数据库如何修改字段的数据类型?
1、首先打开plsql,连接上oracle数据库,假设有一张数据库表叫做 tblTest,通过sql查询也可以看出,这里面是有测试数据的。2、oracle数据库添加列,比如,往测试表 tblTest 添加一个 日期类型的列 UpdateDate,sql语句就可以像下面这样实现,写完SQL之后,选中这一行sql,点击plsql左上角次轮状的图标执...
如何批量修改oracle数据库中某一个表中的某一列数据?
最好的方法是批量修改,即每次修改5000条(一次修改不要超过一万条,否则影响性能). 虽然在11g中,我们也可以选择使用merge命令,但你的这种情况最好先修改一部分然后看看影响,毕竟在生产环境作这样的操作风险很大。如果是误操作,最好还是请DBA来恢复,虽然这样做会被挨骂,但总比错上加错,最后连挨骂的...
Oracle数据库数据修改语句
使用update g set g.rsc_status = '43'。使用b表数据更新a表,那么where条件是什么,也就是说,更新a表中哪些数据,用b表中的哪些数据更新,二者的关系是什么。从你的语句中我看不出b表和a表的关联。找到关联条件后,通过关联条件查出的b表数据是否唯一,如果不唯一,还是会出现“返回值多于一行...
oracle问题:alter update modify 的区别是什么???
一、修改不同 1、alter:alter修改表的数据结构。2、update:update修改表的数据内容。3、modify:modify修改字段类型和长度,即修改字段的属性。二、声明不同 1、alter:alter在声明修改的数据库时使用。2、update:update在声明修改的表时使用。3、modify:modify在声明修改的文件时使用。三、执行不同 ...
oracle怎么修改一个字段的数据并递增
很简单的一句 update emp set "number"=rownum ;commit;number是oracle关键字,所以加了引号,你要是实际表中不叫这个名字,可以不加引号的
oracle数据库,查询到的结果怎样修改?
(1)类型,有一行值X.从DUAL表选择数据常被用来通过SELECT语句计算常数表达式,由于DUAL只有一行数据,所以常数只返回一次。Oracle下的DUAL查询如下所示:SELECT ‘x’ FROM dual 而对等的SQL Server查询则是下面这个样子:SELECT ‘x’连接 Oracle用|| 符号作为连接符,而SQL Server的连接符是加号:+ ...
oracle数据循环修改
使用游标取出数据,用一个数字变量进行计数,然后对数字求mod 3,为1的赋值a,2的赋值b,0的赋值c。假设表有主键id,要修改的列为value,部分代码如下:cnt := 0;for aa in (select id from tabxxx order by id) loop cnt:=cnt 1;if mod(cnt,3)=1 then update tabxxx set value='a' ...
怎样用sql语句修改oracle中表的数据
添加一个和原字段同名的字段 ALTER TABLE 表名 ADD 字段名 VARCHAR2(30);将原来的数据更新到新字段中,这是要注意,一定要显示进行数据类型转换(不同于MSSQL)UPDATE 表名 SET 字段名 = CAST(字段名1 AS VARCHAR2(30));
伊影卉林: 修改关联数据的方法如下.有以下两张表:根据test2表中的id和test1表中的id关联,修改test1表中name字段,语句如下:update test1 a set a.name=(select b.name from test2 b where a.id=b.id) where a.id in (select id from test2); 更新后,test1表中结果:
龙泉市13482527668: oracle数据库sql命令怎么改 - ?
伊影卉林: oracle中修改数据用update语句. 语法: UPDATE 表名 SET 字段='XXX' WHERE 条件; 如,数据库中,test表数据如下: 现在要将王五的名字改成王九,可用如下语句: update test set name='王九' where name='王五'; commit; 执行后结果:
龙泉市13482527668: sql语句连表修改数据 - ?
伊影卉林: 1、首先打开SQL Server Management管理工具,使用sql语句创建一张测试表. 2、接着在测试表中,插入3条测试数据. 3、然后用select * from tblUpdate语句,查询刚刚插入的数据. 4、使用update tblUpdate set Col2 批量修改整个表的数据. 5、使用update tblUpdate set Col2 =批量修改指定条数的记录.
龙泉市13482527668: oracle中, 怎样修改一条记录中一个字段的值 - ?
伊影卉林: 需要用update语句来进行修改.update语句基本语法:update 表名 set 字段='值' where 条件;如test表中有如下数据:现在要将ID=3的这条数据的NAME改成badkano,可用如下语句:update test set NAME='badkano' where ID=3; commit;运行后的结果:说明:update语句执行后,必须commit来提交,否则只在当前session中有效.
龙泉市13482527668: oracle 插入修改语句怎么写 - ?
伊影卉林: 语法出现问题了,将VALUES后面的每个()后面加"," 记得是英文的,运行就可以了.修改的时候提示语句未结束,把你的SQL语句贴出来看下. 我现在模拟不出来oracle的环境.你可以在编辑窗口中单独运行一条语句试试?如果一条可以的话那就是后面语句的问题了.另外执行以后你的工具应该还有一个提交按钮,你执行以下,数据才会被刷新到数据库中的.
龙泉市13482527668: sql 的增删改 - ?
伊影卉林: 、增:有2种方法1.使用insert插入单行数据: 语法:insert [into][列名] values例:insert into Strdents (姓名,性别,出生日期) values ('王伟华','男','1983/6/15') 注意:如果省略表名,将依次插入所有列2.使用insert,select语句将现有表...
龙泉市13482527668: 请问oracle 如何语法添加外键时修改级联为Cascade?
伊影卉林: alter table ** drop constraint fk_cId alter table ** add constraint fk_cId foreign key (id) references classes(id) on delete cascade
龙泉市13482527668: oracle如何通过两个表关联,修改其两表中某列中的数据? - ?
伊影卉林: 不管是update还是merge每次都是只能修改一站表,还没听说一次修改两张表的. 如果分别修改那就比较简单了(先确定B列是否唯一,如果不唯一,那么可能存在修改扩大的问题,所以可能还要修改语句),update a set a.d=2 where a.b=(select b from E where h=1)(这是a表的,b表的改法更容易) 如果一起修改,那么可能只能临时修改,也就是select的时候修改一下,这个一般没什么用.
龙泉市13482527668: Oracle 为用户指定表空间和修改用户的表空间语法是什么? - ?
伊影卉林: alter user 用户名 default tablespace 表空间名字 ;--创建时候指定表空间. alter table schema.AC01 move tablespace AA; --分配到指定表空间. ----------- 案例一:创建表空间及用户 /*第1步:创建临时表空间 */ create temporary tablespace ...
龙泉市13482527668: 如何oracle修改字段类型 - ?
伊影卉林: 因为业务需要,修要修改某个字段数据类型有number(5),变为number(5,2)型 要是没有数据的话直接用以下语句即可 alter table tb_test modify permile number(5,2); 但是有数据的话 就不能用上面方法了, alter table tb_test add permile_temp ...