Oracle資料庫 DML語句的介紹與使用

來源:互聯網
上載者:User

DML(Data Manipulation Language)資料操縱語言,SQL的分類之一,此外還有DDL(Data Definition Language)資料定義語言 (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';   

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.