Oracle-02
1、表的数据(内容)操作---数据操纵语言DML
insert/update/delete语句进行操作,需要执行TCL中commit语句才能确认此操作
1)insert往数据表插入一条数据
a. 要插入全部字段
insert into table_name values(值1,值2,值3...);
b. 指定的字段,只插入指定的字段对应值
insert into table_name(column_name1,column_name2) values(值1,值2)
如:向部门表中添加数据
//第一种写法插入全部字段
insert into dept_xu values(10,'研发部','南京'); //需要手动提交commit
//第二种写法,只插入指定字段
insert into dept_xu(deptno,dname,location) values(20,'行政部','南京');
注意:sql默认是自动提交的,若没有自动提交需要手动提交。如果不提交,只是当前会话可以看到数据,但数据信息并没有真正放入数据库中
a. 全部字段方式插入,数据要跟表结构字段一一对应,字段是不能多也不能少
b. 数据问题,字符和数值类型,若定义结构的时候都有指定的长度,数据不能超过范围,日期数据要注意格式匹配问题
c. 插入字符,日期数据时需要使用单引号
2)update 更新语句
语法:update table_name set column_name1=value1,column_name2=value2...[where 条件];
注意:
a. 修改多列,中间用逗号隔开
b. 如果没有where语句,则表示没条件,表数据中全部记录的指定字段将被修改成相同的
c. [] 表示语句可选项,where语句可加可不加
eg:修改部门表中40号部门地点改为‘南京’
update dept_xu set location='南京' where deptno=40;
commit;
3)delete 删除数据
语法:delete [from] table_name [where 条件];
注意:若没有where语句,表示表的数据全部被删除
例如:将部门表中的50号部门删除
delete from dept_xu where deptno=50;
总结:
在数据定义语言中(DDL)
drop table table_name; //删除表结构和数据
truncate table table_name; //删除数据保留表结构
数据操作语言(DML)
delete from table_name; //删除表全部数据(表的结构也是保留的)
truncate和delete区别:
a. delete是DML语句可以回滚,truncate是DDL语句立即生效,不可以回滚
b. delete是可以有条件的删除,truncate是全部数据删除
c. 如果要删除全部数据,且数据量比较大,delete语句的执行效率比truncate低