查詢 備份查詢數據 插入 插入查詢結果 更新 通過查詢結果更新 刪除 截斷表 刪除和截斷的區別 TRUNCATE 是 DDL 命令,命令執行完就提交,刪除的數據不能恢復; DELETE 命令是 DML 命令,命令執行完需提交後才生效,刪除後的數據可以通過日誌文件恢復。 TRUNCATE 的執行速度比 ...
查詢
select *|列名|表達式 from 表名 where 條件 order by 列名
select t.* from STUDENT.STUINFO t where t.stuname = '李四';
select t.stuid,t.classno,t.stuaddress,t.grade from STUDENT.STUINFO t where t.stuname = '李四';
select t.* from STUDENT.STUINFO t where t.classno = 'C201801' ORDER BY T.AGE ASC;
備份查詢數據
create table 表名 as select 語句
create table student.stuinfo2 as select * from student.stuinfo;
select * from student.stuinfo2;
插入
insert into 表名(列名1,列名2,列名3.....) values(值1,值2,值3.....);
insert into STUDENT.STUINFO (STUID, STUNAME, SEX, AGE, CLASSNO, STUADDRESS, GRADE, ENROLDATE, IDNUMBER)
values ('SC201801005', '龍七', '1', 26, 'C201801', '福建省廈門市XXX號', '2018', to_date('01-09-2018', 'dd-mm-yyyy'), '3503021992XXXXXXXX');
select * from student.stuinfo t where t.stuid='SC201801005';
插入查詢結果
INSERT INTO 表名 SELECT 子句
delete from student.stuinfo t where t.stuid in (select b.stuid from student.stuinfo2 b);
insert into student.stuinfo select * from student.stuinfo2;
select * from student.stuinfo;
更新
update 表名 set 列名1=值1,列名2=值2,列名3=值3... where 條件
update student.stuinfo t set t.age = '24', t.idnumber = '3503021994XXXXXXXX' where t.stuname = '張三';
commit;
select * from student.stuinfo t where t.stuname='張三';
通過查詢結果更新
update 表1 set 列名=(select 列名 from 表2 where 表1.列名=表2.列名)
where exists (select 1 from 表2 where 表1.列名=表2.列名)
update student.stuinfo t
set (age, idnumber) = (select age, idnumber from student.stuinfo2 b where b.stuid = t.stuid)
where exists (select 1 from student.stuinfo2 b where b.stuid = t.stuid and b.stuname = '張三');
select *from student.stuinfo t where t.stuname='張三';
刪除
delete from 表名 where 條件
delete from stuinfo t where t.stuname='張三';
截斷表
truncate table 表名
truncate table stuinfo2;
刪除和截斷的區別
- TRUNCATE 是 DDL 命令,命令執行完就提交,刪除的數據不能恢復; DELETE 命令是 DML 命令,命令執行完需提交後才生效,刪除後的數據可以通過日誌文件恢復。
- TRUNCATE 的執行速度比 DELETE 速度快很多。
- TRUNCATE 會重置索引,DELETE 不會。
- DELETE 會觸發觸發器,TRUNCATE 不會。
- DELETE 的原理是一條一條從表中刪除數據,並將刪除操作當做事務記錄在資料庫日誌中,可以回滾;TRUNCATE 是一次性將數據頁刪除,不能回滾。