DML语句的增删改与数据字典

1.增加语句:

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');

2.修改语句:

update 表名 set 列表=值,列=值,....,列值 where 条件;

将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语句执行前一定要检查where条件,最好备份

delete 删除表数据,保留表结构

truncate table 表名; --删除表中所有数据,保留表结构

drop table 表名 --删除表结构和数据;

重点:delete,truncate的区别,delete可以删除部分数据,也可以删除所有数据,它删除时,会记录日志,truncate删除表中所有数据,不记录日志,执行效率高

-------备份--------

create table 表名 as select语句; 

select * from dept;

delete from dept where deptno=50;

create table dept_bak as select * from dept;

select * from dept_bak;

数据字典

1.同义词
同义词:它是Oracle给数据库中的对象取的另一个名字,类似于sql语句中的别名,
但是和别名又有区别,别名只使用在sql语句中,同义词是保存在数据库, 
一次创建可以一直使用,同义词使用和使用原对象完全一样,可以给表、视图等起同义词

同义词共有两种类型
公有同义词可被所有的数据库用户访问
私有同义词只能在其模式内访问,且不能与当前模式的对象同名。

创建同义词语法:
 

create [public] synonym synonym_name for object;

create synonym:synonym是同义词的关键字
synonym_name:同义词名称
object:取同义词的对象,可以是表、视图等

create synonym e for emp;
使用
select * from emp;
select * from E;

--创建或替换现有的同义词
CREATE OR REPLACE SYNONYM emp_syn FOR SCOTT.emp;

删除同义词

DROP SYNONYM emp; 
DROP PUBLIC SYNONYM emp_syn; 

grant create any synonym to 用户名;

1.事务
事务有四个特性:
原子性(Atomicity):数据库认为对数据库的每一个操作都是完整的,要么执行,要么不执行
一致性(Consistency):认为对数据库的一组操作,要么都执行,要不都不执行
隔离性(Isolation):有多个用户去使用数据库,每个用户的操作是互不影响()
持久性(Durability):对数据库数据处理完成之后,数据就永久的保存到数据库中.事务分为隐式事务和显示事务
隐式事务:不需要人为去调用commit或者rollback,
         只要sql语句执行之后,它操作数据就会持久化到数据库
   1.set autocommit on
   2.create,drop,grant,revoke等语句执行完成之后会自动提交事务
   3.执行完一个update,delete,insert语句都会自动提交事务
显式事务:人为的调用commit或者rollback,来控制什么时候进行数据的持久化
   1.set autocommit off
   2.create,drop,grant,revoke等语句执行完成之后会自动提交事务
   3.调用commit提交事务(数据的持久化),调用rollback回滚事务
   (将数据库中的数据,恢复到本次事务未处理前的状态)
   脏读:当第1个事务,修改了数据库中某条数据,但它没有提交事务,第2事务读取了这条数据,
    这时第1事务,它将事务给回滚了,这时第2个事务读到的数据与数据库中的不一致.
不可重复读:当第1个事务读取了一条数据,这时第2个事务将这条数据给修改,并提交事务,
          第1个事务再去读取数据时,拿到数据和第一次读取的数据不一致
幻读:当第1个事务,根据某个条件从数据库中查出了若干条数据,
     这时第二事务给数据库里添加了一些(这些数据里有符合第一个事务的查询条件的事务)
     第1个事务再去根据相同条件查数据时,比第一次查的多了一些数据   
   共享锁(S锁):
 lock table on share mode,所有人都可以读取数据库表中的数据,
 但是不能对数据进行修改
排它锁:有一个拿到数据库中的某一条数据后,其它人不能对这条数据进行处理
悲观锁:有多个事务处理同一数据时,认为每个事务处理时,都会发生冲突,
        当1个事务在处理这条数据时,不允许其它事务操作这条数据(事务的等待) --执行效率慢
乐观锁:有多个事务处理同一数据时,它认为每个事务处理时,
        都不会发生冲突(所有事务都可以处理这个数据),
       当每个事务提交时,对数据库中的数据进行检查,
       如果果发现异常,提示用户去处理    --执行效率高
死锁:死锁一般事发生在两个事务中,第1个事务在处理时,拿到一个数据的操作权,
       另一个事务也拿到了一条数据的操作权,
       这时第1个事务要操作第2个事务正在处理的这条数据,
        第2个事务也需要操作第1个事务操作的这条数据

2.数据库字典
数据库字典:它是数据库软件自己维护的一组表,这些表用来记录数据库中所有的对象信息.

数据字典视图:就是数据库字典表的视图

dba_开头:管理员数据字典视图
user_开头:用户数据字典视图
all_开头:所有用户都可见的一些数据库字典视图

user_tables:数据库中的表信息,可以查询到当前用户下所有的表信息

select * from user_tables; 

user_col_comments:数据库中所有列的注释
select * from user_col_comments;

user_tab_cols:表中的所有列的信息
select * from user_tab_cols;

user_tab_comments:表的注释
select * from user_tab_comments;

user_objects:当前用户下所有的对象信息

select * from user_objects;

select * from user_objects where OBJECT_TYPE='TABLE';

select * from user_objects where OBJECT_TYPE='TABLE' and OBJECT_NAME='EMP';

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值