`
peizhiinfo
  • 浏览: 1427486 次
文章分类
社区版块
存档分类
最新评论

原创:oracle DML介绍与使用<八>

 
阅读更多

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

Java代码 复制代码收藏代码
  1. DML(DataManipulationLanguage–数据操作语言)可以在下列条件下执行:
  2. •向表中插入数据
  3. •修改现存数据
  4. •删除现存数据
  5. 1、插入语句
  6. 使用INSERT语句向表中插入数据。
  7. INSERTINTOtable[(column[,column...])]
  8. VALUES(value[,value...]);
  9. 使用这种语法一次只能向表中插入一条数据
  10. //向users表中插入一条完整的记录
  11. SQL>insertintousers(username,password,name,address,zip)values('rrmy','1234','红军','北京',100089);
  12. 备注:如果是字符串加’’如果是数字可与加’’也可以不加===>一般不加
  13. SQL>commit;
  14. 注意:oracle数据库在DOS命令中执行插入,修改等操作时,必须手动完成提交。否则不会(正真)插入成功。
  15. 在插入完整的记录是users()中的表对应的字段可以省略不写.但一定要与数据库中表的结构对应才行。
  16. //向users表中插入一条非完整的记录
  17. SQL>insertintousers(username,password)values('mj','123');
  18. //注意:在插入部分子段的时候,必须满足的表的约束条件,否则会出现如下异常信息。
  19. insertintousers(username,password)values('mj','123')
  20. RA-01400:无法将NULL插入("RED"."USERS"."NAME")
  21. SQL>insertintousers(username,password,name)values('mj','123','马杰');
  22. 1rowinserted
  23. SQL>commit;//必须手动提交
  24. Commitcomplete
  25. 以上简单总结如下:
  26. ?为每一列添加一个新值。
  27. ?按列的默认顺序列出各个列的值。
  28. ?在INSERT子句中随意列出列名和他们的值。
  29. ?字符和日期型数据应包含在单引号中。
  30. 补充知识点:
  31. 隐式方式:在列名表中省略该列的值
  32. SQL>insertintousers(username,password,name)values('mj','123','马杰');
  33. 显示方式:在VALUES子句中指定空值。
  34. SQL>insertintousersvalues('test','123','test',null,null);
  35. 常见面试题:
  36. //备份一张表
  37. SQL>createtableusessasselect*fromusers;
  38. //清空表中的记录
  39. SQL>deletefromusess;
  40. //使用插入语句把users表中记录插入到usess中
  41. SQL>insertintousess(username,password,name,address,zip)selectusername,password,name,address,zipfromusers;
  42. SQL>commit
  43. 注意:
  44. ?不必书写VALUES子句。
  45. ?子查询中的值列表应于INSERT子句中的列名对应
  46. 2、更新数据
  47. 采用update语法进行更新数据:
  48. 语法如下:
  49. UPDATEtable
  50. SETcolumn=value[,column=value,...]
  51. [WHEREcondition];
  52. 备注:一次可以更新多条记录
  53. //更新数据:更新users表重新设置了passwrod条件是唯一(主键是唯一)的条件。
  54. SQL>updateuserssetpassword='redarmy'whereusername='redarmy';
  55. SQL>commit
  56. 注意:当更新多个字段时,可以采用逗号进行区分.举例如下:
  57. SQL>updateuserssetpassword='redarmy',name='陈红军'whereusername='rrmy';
  58. SQL>commit
  59. 备注:如果省略WHERE子句,则表中的所有数据都将被更新
  60. SQL>updateuserssetpassword='redarmy',name='陈红军';
  61. 6rowsupdated
  62. SQL>commit;
  63. Commitcomplete
  64. SQL>select*fromusers;
  65. USERNAMEPASSWORDNAMEADDRESSZIP
  66. ---------------------------------------------------------------------------------------
  67. huxzredarmy陈红军北苑家园100012
  68. liucyredarmy陈红军清华园100084
  69. redarmyredarmy陈红军北京100089
  70. rrmyredarmy陈红军北京100089
  71. mjredarmy陈红军
  72. testredarmy陈红军
  73. 6rowsselected
  74. 补充:在update语句中使用子查询
  75. //更新huxz的邮编与用户liucy的邮编一致
  76. SQL>updateuserssetzip=(selectzipfromuserswhereusername='liucy')whereusername='huxz';
  77. //备注:在更新数据的时候where条件中也可以使用子查询。
  78. 3、删除数据
  79. 在表中如果某些数据不在需要就可以使用delete语句进行删除,并释放该数据所占用的存储空间删除语法如下:
  80. DELETE[FROM]table
  81. [WHEREcondition];
  82. 备注:delete语句只是从表中删除数据,不会删除表结构.删除表结构采用drop语句。
  83. 注意:删除表中的数据时,一定要考虑表的约束(否则会出现一些异常信息)
  84. //清空表deletefrom表名||delete表名
  85. //删除数据where条件与更新一致,必须保证唯一性(主键是唯一)条件
  86. SQL>deletefromuserswhereusername='test';
  87. 以上内容版权归redarmy_chen所有,如有转载请附带出处,如有疑问请发送邮件至redarmy_chen@qq.com
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics