原創:oracle DML介紹與使用

Red88Army發表於2020-04-06
DML(Data Manipulation Language)資料操縱語言,SQL的分類之一,此外還有DDL(Data Definition Language)資料定義語言和DCL(Data Control Language)資料控制語言。DML包括:INSERT、UPDATE、DELETE。注意,select語句屬於DQL(Data Query Language)。


DML(Data Manipulation Language – 資料操作語言) 可以在下列條件下執行:
• 向表中插入資料
• 修改現存資料
• 刪除現存資料
1、插入語句
使用 INSERT 語句向表中插入資料。
INSERT INTO table [(column [, column...])]
VALUES (value [, value...]);
使用這種語法一次只能向表中插入一條資料
//向users表中插入一條完整的記錄
SQL> insert into users(username,password,name,address,zip) values('rrmy','1234','紅軍','北京',100089);
備註:如果是字串加’’ 如果是數字可與加’’也可以不加===>一般不加
SQL> commit;
注意:oracle資料庫在DOS命令中執行插入,修改等操作時,必須手動完成提交。否則不會(正真)插入成功。
在插入完整的記錄是users()中的表對應的欄位可以省略不寫.但一定要與資料庫中表的結構對應才行。
//向users表中插入一條非完整的記錄

SQL> insert into users(username,password) values('mj','123');
//注意:在插入部分子段的時候,必須滿足的表的約束條件,否則會出現如下異常資訊。
insert into users(username,password) values('mj','123')
RA-01400: 無法將 NULL 插入 ("RED"."USERS"."NAME")
SQL> insert into users(username,password,name) values('mj','123','馬傑');
1 row inserted
SQL> commit; //必須手動提交
Commit complete
以上簡單總結如下:
 為每一列新增一個新值。
 按列的預設順序列出各個列的值。
 在 INSERT 子句中隨意列出列名和他們的值。
 字元和日期型資料應包含在單引號中。

補充知識點:
隱式方式: 在列名錶中省略該列的值
SQL> insert into users(username,password,name) values('mj','123','馬傑');
顯示方式: 在VALUES 子句中指定空值。
SQL> insert into users values('test','123','test',null,null);

常見面試題:
//備份一張表
SQL> create table usess as select * from users;
//清空表中的記錄
SQL> delete from usess;
//使用插入語句把users表中記錄插入到usess中
SQL> insert into usess(username,password,name,address,zip) select username,password,name,address,zip from users;
SQL> commit
注意:
 不必書寫 VALUES 子句。
 子查詢中的值列表應於 INSERT 子句中的列名對應


2、更新資料
採用update語法進行更新資料:
語法如下:
UPDATE table
SET column = value [, column = value, ...]
[WHERE condition];
備註:一次可以更新多條記錄
//更新資料:更新users表 重新設定了passwrod 條件是唯一(主鍵是唯一)的條件。
SQL> update users set password='redarmy' where username='redarmy';
SQL> commit
注意:當更新多個欄位時,可以採用逗號進行區分.舉例如下:
SQL> update users set password='redarmy' , name='陳紅軍' where username='rrmy';
SQL> commit
備註:如果省略WHERE子句,則表中的所有資料都將被更新
SQL> update users set password='redarmy' , name='陳紅軍';
6 rows updated
SQL> commit;
Commit complete
SQL> select * from users;
USERNAME PASSWORD NAME ADDRESS ZIP
-------------------- -------------------- -------------------- -------------------- -------
huxz redarmy 陳紅軍 北苑家園 100012
liucy redarmy 陳紅軍 清華園 100084
redarmy redarmy 陳紅軍 北京 100089
rrmy redarmy 陳紅軍 北京 100089
mj redarmy 陳紅軍
test redarmy 陳紅軍
6 rows selected

補充:在update語句中使用子查詢
//更新huxz的郵編與使用者liucy的郵編一致
SQL> 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條件與更新一致,必須保證唯一性(主鍵是唯一)條件
SQL> delete from users where username='test';


以上內容版權歸redarmy_chen所有,如有轉載請附帶出處,如有疑問請傳送郵件至redarmy_chen@qq.com

相關文章