oracle PLSQL 查询语句select t.*, t.rowid from PU.YK t

1、这语句是什么意思,请整句给个解释,谢谢。
2、这样的语句查出来后为什么不能像SQL那样直接修改,如果需要修改的话应该怎么做。
请给答案,不要像一楼那样灌水。

1, t.* 表示查询表t 所有字段
t.rowid 表示唯一标识t表中伪列
PU.YK 表示的是用户PU下的YK表
PU.YK t 表示的是t是YK这个表的别名(也就是另外一个简化的名字,可以随意写)
整个语句的意思也就是查询PU用户下YK表的所有记录信息,以及每条记录对应的ROWID信息
2,
在plsql里面独特的rowid(也就是上面提到的伪劣),在sql中不支持。所以就没有办法修改了,但是如果要修改的话。可以直接去原本修改。比如直接在YK表中修改。

select * from pu.yk;
然后相应的修改YK这张表里面的东西就可以了。

如果还有不会可以的再问我哦 。嘿嘿
哈哈哈
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-05-18
解释如下
t.* -----表示查询表t 所有字段
t.rowid---表示唯一标识t表中的物理位置字段(伪列),这个字段是每个表中都默认有的,当设计表时没有设置主键或唯一标实的时候,也可吧他动作表的唯一标示(删除重复数据可用到)
PU.YK---表示查询的是用户名为PU下的YK表,如果是以PU用户登陆的数据库,PU也可以省略
t---PU.YK 表的别名,用于书写的时候方便简单,与PU.YK 完全相同,只是名字不同而已,就行你的学名和你的小名一样。
整个语句的意思也很简单,就是查询PU用户下YK表的所有记录信息,以及每条记录对应的ROWID信息

rowid是oracle特有的,sqlserver不支持,sqlserver可设置自增字段或唯一标识列代替本回答被网友采纳
第2个回答  2012-10-08
PU应该是用户名,PU.YK就是PU用户下的YK表;
最后的t是别名,代替PU.YK;
t.*是指PU用户下的YK表中满足条件的所有数据;
t.rowid是每条数据对应的物理地址的id;
语句含义为:查询PU用户下的YK表的全部数据及每条数据对应的rowid
第3个回答  2012-10-08
第一个问题已经回答的很清楚了,我来说一下第二个问题。
1、问题中给出的语句是查出记录后可以直接修改的,语句本身没有问题。
2、问题出在你登入的用户对PU用户YK表有没有增删改权限。
解决方法:1、直接以PU用户登入,然后进行上述处理。
2、为你登入的用户授予PU用户YK表增删改权限。
第4个回答  2012-10-08
1查询PU用户下的YK表中的所有列信息,并且增加了一列伪列
2因为伪列是数据库中实际不存在的所以没有办法进行修改 只能修改数据库中其他实际存在的列

oracle PLSQL 查询语句select t.*, t.rowid from PU.YK t
1, t.* 表示查询表t 所有字段 t.rowid 表示唯一标识t表中伪列 PU.YK 表示的是用户PU下的YK表 PU.YK t 表示的是t是YK这个表的别名(也就是另外一个简化的名字,可以随意写)整个语句的意思也就是查询PU用户下YK表的所有记录信息,以及每条记录对应的ROWID信息 2,在plsql里面...

oracle plsql中有导出表的右键菜单',再哪有导入表的界面
直接 selecet t.*,rowid from 表 t 点小锁头解锁可以设置值,选中第一行复制

oracle sql select 语句为何里头有rowid就成可编辑了?
因为rowid显示的是数据的存放地址,所以效果跟for update一样,可以直接根据数据存储的地址更新数据。

如何在表格中直接修改数据 plsql
你好!1.邮件表名称 英文 edit data 中文 编辑数据 修改后别忘了两次提交 2.查询时select t.*,t.rowid from table_name t 仅代表个人观点,不喜勿喷,谢谢。

oracle中查找一个字符串中某个字符的位置是什么函数
insert into test_instr values ('abc');insert into test_instr values ('cdaf');insert into test_instr values ('bbed');3、查询表的记录,select t.*, rowid from test_instr t;4、编写sql,查找字母'a'在表中各记录的位置;select t.*, instr(str,'a') location from test_instr t...

select * from f0092;和select t.*, t.rowid from f0092 t;查询结果竟 ...
rowid是数据存储的物理地址,是数据的物理编号,两条数据的结果都是都是一样的无非后者多了一个rowid的列,你可以试着对某个字段排序比对一下,数据都是一样的

sql查询语句计算重复数据个数
test_count values(9, 3);insert into test_count values(10, 3);commit;3、查询表中全量数据,select t.*, rowid from test_count t;4、编写sql,可以得到每一个value重复的个数,并按照由大到小排列;select value, count(*) from test_count t group by value order by 2 desc ...

plsql里如何给表加数据
一、(将别的table的数据插入自己新建的table):insert into table select * from 别的table 二、select * from test for update 然后点击下面的小锁直接自己key数据

oracle中select emp.*,emp.rowid from emp是什么意思?
这个是Oracle的查询语句 select查询语句前缀 emp.* :emp表的所有字段 emp.rowid :emp表的行ID,在PLSQL中加上rowid之後可以进行手动编辑 from emp : 表示从emp中查

oracle数据库,查询到的结果怎样修改?
列的选择 用PLSQL执行数据查询的时候,FROM子句是必须的,这同SQL Server的要求是一样的。 SELECT语句必须选择针对的数据表。在Oracle数据库内有一种特殊的表DUAL.DUAL表由 Oracle连同数据字典一同创建,所有的用户都可以用名称DUAL访问该表。这个表里只有一列DUMMY,该列定义为VARCHAR2 (1)类型,有...

相似回答