1.插入语句(增)
insert into 表名(列名1,列名2,列名3,列名4)values(value1,value2 ,value3 ,value4)
insert into table_name(col_name,col_name,...col_name) values(value,value,..,value);
insert into: 关键字
table_name: 表名
col_name: 列名(要插入数据的列),可以省略,省略时表示给表中的每个字段都插入数据
values: 赋值关键字
value: 各个字段的值
select * from dept;
insert into dept(deptno,dname) values(50,'DEVELEP');
insert into dept values(60,'TEST','QINGDAO');
–从已有的数据库表中查出数据并插入另一个表
insert into 表名(列名,列名,…,列名) select子查询
insert into dept select 70,'HR','QD' from dual;
insert into dept
select 80,'HR','QD' from dual
union all
select 90,'HR','QD' from dual
union all
select 95,'HR','QD' from dual;
2.修改语句update (改)
表 set 列=值 where
语法:update 表名 set 列名=值,列=值,…,列值 where 条件;
update dept set loc='JIMO' where deptno=50;
select * from dept;
select * from sc order by sno;
–将s001学生的c001课程成绩改为该课程的平均成绩
update sc set score=(select avg(score) from sc where cno='c001') where sno='s001' and cno='c001';
3.删除语句(删)
delete from表 where
语法:delete [from] 表名 where 条件;
select * from dept;
create table dept_bak as select * from dept; --创建新表dept命名为dept_bak
delete from dept where deptno=50;--删除部门编号50的部门信息
select * from dept_bak;
注意:delete语句执行前一定要检查where条件,最好备份
delete 删除表数据,保留表结构
truncate table 表名; --删除表中所有数据,保留表结构
drop table 表名 --删除表结构和数据;
重点:delete,truncate的区别:
delete可以删除部分数据,也可以删除所有数据,删除时会记录日志,
truncate删除表中所有数据,不记录日志,执行效率高
注:
rowid伪列
oracle数据库的表中的每一行数据都有一个唯一的标识符,或者称为rowid。
ROWID为该表行的唯一标识,该值表明了该行在oracle数据库中的物理具体位置。
包含着数据对象编号,对应文件编号, 块编号和 行编号的信息。
使用rowid可以去除重复记录