设为首页 收藏本站
查看: 532|回复: 0

[经验分享] Oracle中DML数据操作语言(七)

[复制链接]

尚未签到

发表于 2016-7-27 07:27:17 | 显示全部楼层 |阅读模式
OracleDML数据操作语言(七)

DML(Data Manipulation Language – 数据操作语言) 可以在下列条件下执行:
1、向表中插入数据
2、修改现存数据
3、删除现存数据
 
1、插入语句
使用 INSERT 语句向表中插入数据。
INSERT INTO   table [(column [, column...])]
VALUES             (value [, value...]);
使用这种语法一次只能向表中插入一条数据
//users表中插入一条完整的记录
 
    


 
 
  
commit;


 


 
  注意:oracle数据库在DOS命令中执行插入,修改等操作时,必须手动完成提交。否则不会(正真)插入成功。
  
  
在插入完整的记录是users()中的表对应的字段可以省略不写.但一定要与数据库中表的结构对应才行。
//users表中插入一条非完整的记录
 

 

  
insert into users(username,password) values('zxf','123');



  //注意:在插入部分子段的时候,必须满足的表的约束条件,否则会出现如下异常信息。
  
  
insert into users(username,password) values('mj','123')

RA-01400: 无法将 NULL 插入 ("RED"."USERS"."NAME") 
insert into users(username,password,name) values('mj','123','马杰');

 



 



1 row inserted

 

  
commit;

  //



必须手动提交

  
  
Commit complete

以上简单总结如下:

为每一列添加一个新值。

按列的默认顺序列出各个列的值。

在 INSERT 子句中随意列出列名和他们的值。

字符和日期型数据应包含在单引号中

 

补充知识点:

隐式方式: 在列名表中省略该列的值

  
insert into users(username,password,name) values('xiaofei','123','小飞');


 



 

  
 

显示方式: 在VALUES 子句中指定空值。

 

  
insert into users  values('test','123','test',null,null); 



   常见面试题:
  
  
//备份一张表


create table usess as select * from users;


 



//清空表中的记录

SQL>
create table usess as select * from users;


 



用插入语句把users表中记录插入到usess中
insert into usess(username,password,name,address,zip) select username,password,name,address,zip from users;

commit;

 



注意:

l        不必书写 VALUES 子句。
l        子查询中的值列表应于 INSERT 子句中的列名对应
 

 

2、更新数据
采用update语法进行更新数据:
语法如下:
  UPDATE                 table
  SET                column = value [, column = value, ...]
  [WHERE               condition];
备注:一次可以更新多条记录
//更新数据:更新users 重新设置了passwrod 条件是唯一(主键是唯一)的条件。
 
update users set password='123' where username='xiaofei';


commit;

 


注意:当更新多个字段时,可以采用逗号进行区分.举例如下: 
update users set password='1234' , name='张小飞'  where username='rrmy';

 



SQL> commit;

备注:如果省略WHERE子句,则表中的所有数据都将被更新


  
update users set password='redarmy' , name='张小飞'  ;

 




 


6 rows updated
SQL> commit;

补充:在update语句中使用子查询
//更新huxz的邮编与用户liucy的邮编一致


  
update users set zip=(select zip from users where username='liucy') where username='huxz';

 ;



 


//备注:在更新数据的时候 where条件中也可以使用子查询。
 
3、删除数据
    在表中如果某些数据不在需要就可以使用delete语句进行删除,并释放该数据所占用的存储空间删除语法如下:
DELETE [FROM]         table
[WHERE    condition];
备注:delete语句只是从表中删除数据,不会删除表结构.删除表结构采用drop语句。
注意:删除表中的数据时,一定要考虑表的约束(否则会出现一些异常信息)
//清空表  delete from 表名 ||delete 表名 
//删除数据 where条件与更新一致,必须保证唯一性(主键是唯一)条件 
update users set zip=(select zip from users where username='liucy') where username='huxz';

 


 
 
 

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-249883-1-1.html 上篇帖子: ORACLE 连接方式 NESTED LOOP、HASH JOIN 下篇帖子: oracle锁等待/死锁原因分析
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表