解釋DBMS中delete命令的用法


Delete命令是一種資料操作命令,用於從表中刪除記錄。所有記錄可以一次性刪除,或者可以根據條件刪除一組記錄。

從表中刪除特定行

要刪除表中的特定行,我們需要指定where條件。根據該條件,該特定行將從表中刪除。

語法如下:

delete from tablename where condition

例如:

Delete from employee where name=’sneha’;

示例

下面是一個從表中刪除特定行的示例:

create table employee(ename varchar(30),department varchar(20), age number(30), salary number(20));
insert into employee values('ram','projectmanager',40,50000);
insert into employee values('priya','assistant director',45,45000);
insert into employee values('hari','developer',46,30000);
select * from employee;

輸出

您將獲得以下輸出:

ram|projectmanager|40|50000
priya|assistant director|45|45000
hari|developer|46|30000

現在,使用以下程式:

示例

delete from employee where ename='priya';
select * from employee;

輸出

您將獲得以下輸出:

ram|projectmanager|40|50000
hari|developer|46|30000

基於條件刪除資料

例如:

delete from employee where age>45;

示例

下面是一個示例,用於刪除年齡大於45歲的員工的行,其餘員工將保留在資料庫中:

create table employee(ename varchar(30),department varchar(20), age number(30), salary number(20));
insert into employee values('ram','projectmanager',40,50000);
insert into employee values('priya','assistant director',45,45000);
insert into employee values('hari','developer',46,30000);
select * from employee;

輸出

您將獲得以下輸出:

ram|projectmanager|40|50000
priya|assistant director|45|45000
hari|developer|46|30000

現在,使用以下程式:

delete from employee where age>45;
select * from employee;

輸出

您將獲得以下輸出:

ram|projectmanager|40|50000
priya|assistant director|45|45000

基於子查詢的結果刪除資料

刪除也可以基於子查詢的結果進行。

例如:

delete from employee where age in (select age from employee where age>45)

從表中刪除所有行

如果我們想刪除整個表,可以使用以下命令:

delete from employee;
(or)
delete * from employee;

要從表中刪除所有行,我們還可以使用TRUNCATE命令。

語法如下:

TRUNCATE table tablename;

例如:

TRUNCATE table employee

TRUNCATE 刪除表中的所有行,無需備份。

示例

下面是一個從表中刪除所有行的示例:

create table employee(ename varchar(30),department varchar(20), age number(30), salary number(20));
insert into employee values('ram','projectmanager',40,50000);
insert into employee values('priya','assistant director',45,45000);
insert into employee values('hari','developer',46,30000);

delete from employee;
select * from employee;

輸出

您將獲得以下輸出:

no rows displayed

更新於: 2021年7月3日

4K+ 閱讀量

開啟您的職業生涯

透過完成課程獲得認證

開始學習
廣告