9、操纵数据

九、操纵数据

数据操纵语言:
1、向表添加新行:add new rows to a table
2、更新表现有的行:modify existing rows in a table
3、从表中删除现有行:remove existing rows from a table

insert语法:
插入新行 inserting new rows
1、列表中的值的顺序与insert语句列表中列顺序一致或与表中顺序一致
2、在insert语句列出列是可选的
3、字符和日期的需要单引号引起来

SQL> insert into dept(deptno,dname,loc) values(50,'public','xian');

插入空值:null或者''
插入特定值:sysdate
时间插入法:to_date('feb 3, 1999','mon dd, yyyy')
替代变量插入:&
从其他表复制:不使用关键字values,列中的个数,类型,顺序必须与子查询相匹配,子查询中的所有行被插入到行中
insert into emp.exit (ename,sal,comm)
select ename,sal,comm from emp;

更改表中数据:changing data in a table
修改存在数据用update

update emp set deptno=10 where deptno=20;
修改指定行用where,缺少where修改所有行
指定set column_name=null会更新列为空值
例:
update emp set job=(select job from emp where empno=10),
sal=(select sal from emp where empno=10) 
where empno=20;
将员工号为20的人的薪水和工作与10号相同

update子查询语句更新的行记录来自另一个表
update copy_emp set deptno=(select deptno from emp where empno=100)
where job=(select job from emp where empno=200);

删除行记录:remove a row from table
删除指定行用where语句
delete from dept where deptno=10;
缺少where语句删除所有行
delete from copy_emp;

truncate语句:
1、从表中删除所有行,保留表结构
2、DDL语句,不容易恢复
truncate table emp_copy;

事务开始与结束:database transactions :start and end
1、执行第一个DML语句就是事务的开始
2、结束:使用commit,rollback,DDL、DCL语句执行(自动结束),使用exit正常退出

DML(data manipulation language)是数据操纵语言:它们是SELECT、UPDATE、INSERT、DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言
DDL(data definition language)是数据定义语言:DDL比DML要多,主要的命令有CREATE、ALTER、DROP等,DDL主要是用在定义或改变表(TABLE)的结构,数据类型,表之间的链接和约束等初始化工作上,他们大多在建立表时使用
DCL(data control language)是数据库控制语言:是用来设置或更改数据库用户或角色权限的语句,包括(grant,deny,revoke等)语句

在进行DML语句时可以进行点的保存以便于恢复数据
保存点:savepoint对当前事物做个保存点
savepoint update done;  保存点
rollback to savepoint 回到指定保存点

隐式事务:implicit transaction processing(相当于进行了commit)
1、输入  DDL、DCL语句
2、正常退出

事务结束之前数据状态:state of the date before commit or rollback
1、数据可以恢复
2、当前用户可以看到DML操作
3、其他用户看不到当前操作

事务结束数据状态:state of data after commit
1、数据保存到数据库

 


 

 

 

 


 

 

 

 

 

 

 

 

 

  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值