解釋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
廣告