DML(Data Manipulation Language)數(shù)據(jù)操縱語言,SQL的分類之一,此外還有DDL(Data Definition Language)數(shù)據(jù)定義語言和DCL(Data Control Language)數(shù)據(jù)控制語言。DML包括:INSERT、UPDATE、DELETE。注意,select語句屬于DQL(Data Query Language)。
1.DML(Data Manipulation Language – 數(shù)據(jù)操作語言) 可以在下列條件下執(zhí)行:
2.• 向表中插入數(shù)據(jù)
3.• 修改現(xiàn)存數(shù)據(jù)
4.• 刪除現(xiàn)存數(shù)據(jù)
5.1、插入語句 6.使用 INSERT 語句向表中插入數(shù)據(jù)。
7.INSERT INTO table [(column [, column...])]
8.VALUES (value [, value...]);
9.使用這種語法一次只能向表中插入一條數(shù)據(jù)
10.//向users表中插入一條完整的記錄 11.SQL> insert into users(username,password,name,address,zip) values('rrmy','1234','紅軍','北京',100089); 12.備注:如果是字符串加’’ 如果是數(shù)字可與加’’也可以不加===>一般不加
13.SQL> commit;
14.注意:Oracle數(shù)據(jù)庫在DOS命令中執(zhí)行插入,修改等操作時,必須手動完成提交。否則不會(正真)插入成功。
15.在插入完整的記錄是users()中的表對應的字段可以省略不寫.但一定要與數(shù)據(jù)庫中表的結構對應才行。
16.//向users表中插入一條非完整的記錄 17.
18.SQL> insert into users(username,password) values('mj','123'); 19.//注意:在插入部分子段的時候,必須滿足的表的約束條件,否則會出現(xiàn)如下異常信息。 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.? 字符和日期型數(shù)據(jù)應包含在單引號中。
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、更新數(shù)據(jù) 52.采用update語法進行更新數(shù)據(jù):
53.語法如下:
54. UPDATE table
55. SET column = value [, column = value, ...]
56. [WHERE condition];
57.備注:一次可以更新多條記錄
58.//更新數(shù)據(jù):更新users表 重新設置了passwrod 條件是唯一(主鍵是唯一)的條件。 59.SQL> update users set password='redarmy' where username='redarmy'; 60.SQL> commit
61.注意:當更新多個字段時,可以采用逗號進行區(qū)分.舉例如下:
62.SQL> update users set password='redarmy' , name='陳紅軍' where username='rrmy'; 63.SQL> commit
64.備注:如果省略WHERE子句,則表中的所有數(shù)據(jù)都將被更新
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.//備注:在更新數(shù)據(jù)的時候 where條件中也可以使用子查詢。 84.3、刪除數(shù)據(jù) 85. 在表中如果某些數(shù)據(jù)不在需要就可以使用delete語句進行刪除,并釋放該數(shù)據(jù)所占用的存儲空間刪除語法如下:
86.DELETE [FROM] table
87.[WHERE condition];
88.備注:delete語句只是從表中刪除數(shù)據(jù),不會刪除表結構.刪除表結構采用drop語句。
89.注意:刪除表中的數(shù)據(jù)時,一定要考慮表的約束(否則會出現(xiàn)一些異常信息)
90.//清空表 delete from 表名 ||delete 表名 91.//刪除數(shù)據(jù) where條件與更新一致,必須保證唯一性(主鍵是唯一)條件 92.SQL> delete from users where username='test';
本文出自:億恩科技【www.riomediacenter.com】
服務器租用/服務器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質保障!--億恩科技[ENKJ.COM]
|