Oracle数据库 DML语句的介绍与使用(转载)

DML(Data Manipulation Language)数据操纵语言,SQL的分类之一,此外还有DDL(Data Definition Language)数据定义语言和DCL(Data Control Language)数据控制语言。DML包括:INSERT、UPDATE、DELETE。注意,select语句属于DQL(Data Query Language)。

  1. DML(Data Manipulation Language – 数据操作语言) 可以在下列条件下执行:   
  2. •   向表中插入数据   
  3. •   修改现存数据   
  4. •   删除现存数据   
  5. 1、插入语句   
  6. 使用 INSERT 语句向表中插入数据。   
  7. INSERT INTO table [(column [, column...])]    
  8. VALUES      (value [, value...]);   
  9. 使用这种语法一次只能向表中插入一条数据   
  10. //向users表中插入一条完整的记录   
  11. SQL> insert into users(username,password,name,address,zip) values('rrmy','1234','红军','北京',100089);   
  12. 备注:如果是字符串加’’ 如果是数字可与加’’也可以不加===>一般不加   
  13. SQL> commit;   
  14. 注意:Oracle数据库在DOS命令中执行插入,修改等操作时,必须手动完成提交。否则不会(正真)插入成功。   
  15. 在插入完整的记录是users()中的表对应的字段可以省略不写.但一定要与数据库中表的结构对应才行。   
  16. //向users表中插入一条非完整的记录   
  17.   
  18. SQL> insert into users(username,password) values('mj','123');   
  19. //注意:在插入部分子段的时候,必须满足的表的约束条件,否则会出现如下异常信息。   
  20. insert into users(username,password) values('mj','123')    
  21. RA-01400: 无法将 NULL 插入 ("RED"."USERS"."NAME")   
  22. SQL> insert into users(username,password,name) values('mj','123','马杰');   
  23. 1 row inserted   
  24. SQL> commit; //必须手动提交   
  25. Commit complete   
  26. 以上简单总结如下:   
  27.    为每一列添加一个新值。   
  28.    按列的默认顺序列出各个列的值。    
  29.    在 INSERT 子句中随意列出列名和他们的值。    
  30.    字符和日期型数据应包含在单引号中。   
  31.   
  32. 补充知识点:   
  33. 隐式方式: 在列名表中省略该列的值   
  34. SQL> insert into users(username,password,name) values('mj','123','马杰');   
  35. 显示方式: 在VALUES 子句中指定空值。   
  36. SQL> insert into users  values('test','123','test',null,null);   
  37.   
  38. 常见面试题:   
  39. //备份一张表   
  40. SQL> create table usess as select * from users;   
  41. //清空表中的记录   
  42. SQL> delete from usess;   
  43. //使用插入语句把users表中记录插入到usess中   
  44. SQL> insert into usess(username,password,name,address,zip) select username,password,name,address,zip from users;   
  45. SQL> commit   
  46. 注意:   
  47.    不必书写 VALUES 子句。    
  48.    子查询中的值列表应于 INSERT 子句中的列名对应   
  49.   
  50.   
  51. 2、更新数据   
  52. 采用update语法进行更新数据:   
  53. 语法如下:   
  54.   UPDATE        table    
  55.   SET       column = value [, column = value, ...]   
  56.   [WHERE        condition];   
  57. 备注:一次可以更新多条记录   
  58. //更新数据:更新users表 重新设置了passwrod 条件是唯一(主键是唯一)的条件。   
  59. SQL> update users set password='redarmy' where username='redarmy';   
  60. SQL> commit   
  61. 注意:当更新多个字段时,可以采用逗号进行区分.举例如下:   
  62. SQL> update users set password='redarmy' , name='陈红军'  where username='rrmy';   
  63. SQL> commit   
  64. 备注:如果省略WHERE子句,则表中的所有数据都将被更新   
  65. SQL> update users set password='redarmy' , name='陈红军';   
  66. 6 rows updated   
  67. SQL> commit;    
  68. Commit complete   
  69. SQL> select * from users;   
  70. USERNAME      PASSWORD      NAME             ADDRESS             ZIP   
  71. -------------------- -------------------- -------------------- -------------------- -------   
  72. huxz               redarmy          陈红军            北苑家园          100012  
  73. liucy               redarmy          陈红军            清华园             100084  
  74. redarmy          redarmy          陈红军            北京                100089  
  75. rrmy               redarmy          陈红军            北京                100089  
  76. mj                  redarmy          陈红军                                    
  77. test                redarmy          陈红军                                    
  78. 6 rows selected   
  79.   
  80. 补充:在update语句中使用子查询   
  81. //更新huxz的邮编与用户liucy的邮编一致   
  82. SQL> update users set zip=(select zip from users where username='liucy') where username='huxz';   
  83. //备注:在更新数据的时候 where条件中也可以使用子查询。   
  84. 3、删除数据   
  85.     在表中如果某些数据不在需要就可以使用delete语句进行删除,并释放该数据所占用的存储空间删除语法如下:   
  86. DELETE [FROM]     table    
  87. [WHERE    condition];   
  88. 备注:delete语句只是从表中删除数据,不会删除表结构.删除表结构采用drop语句。   
  89. 注意:删除表中的数据时,一定要考虑表的约束(否则会出现一些异常信息)   
  90. //清空表  delete from 表名 ||delete 表名     
  91. //删除数据 where条件与更新一致,必须保证唯一性(主键是唯一)条件   
  92. SQL> delete from users where username='test';   
posted @ 2015-10-26 22:54  呼哧呼哧  阅读(1432)  评论(0编辑  收藏  举报