一、DML操作
1、插入语句
1.1普通插入操作 insert into table_name(field_name[..]) values(...)
1.2通过地址符插入insert into table(empno,ename,sal,deptno) values(&empno,&ename,&sal,&deptno)
说明&符号 可以标志一个位置由后面指定这个位置上具体的值
1.3批处理 insert into emp10 select * from emp where deptno=10;
1.4拷贝大量数据dbms_datapump(了解)
2、删除语句
2.1、delete
2.2、truncate
3、修改语句
直接利用update语句修改。
二、DDL操作
1、创建表
1.1create table test1
(tid number,
tname varchar2(20),
hiredate date default sysdate);
1.2 create table emp20
as
select * from emp where deptno=20;
2、修改表:追加列,修改列 删除列 重命名列 重命名表
2.1 追加列:alter table test1 add photo blob;
2.2 修改列:alter table test1 modify tname varchar2(40);
2.3 删除列:alter table test1 drop column photo;
2.4重命名列 alter table test1 rename column tname to username;
2.5 修改表名 rename test1 to test2;
3、 删除表 drop table TESTDELETE;
三、回收站操作
1、查看oracle中的回收站 show recyclebin;
2、清空回收站 purge recyclebin;
3、--闪回删除
flashback table TESTSAVEPOINT to before drop;
四、常用数据库对象
1 约束
1.1 约束类型
1.1.1 主键primary key
1.1.2 非空 not null
1.1.3 唯一 unique
1.1.4 检查 check(gender in ('男','女')),
1.1.5 外键 references dept(deptno)
on delete set null当删除父表时候子表外键设置为null
on delete cascade:当删除父表时候级联删除子表记录
1.2 约束名
constraint student_gender
2视图
2.1 创建视图 createview empinfoview
as
selecte.empno,e.ename,e.sal,e.sal*12 annsal,d.dname
from empe,dept d
wheree.deptno=d.deptno;
2.2 普通用户没有创建视图的权限,需要先授权
管理员给scott授权:grant create view to scott
2.3 视图(不能提高效率):
1) 从表中抽出的逻辑上相关的数据集合
2) 视图是一种虚表
3) 视图建立在已有表的基础上,视图赖以建立的这些表成为基表
4) 向视图提供数据内容的语句为select语句,可以将视图理解为存储起来的select语句
5) 视图向用户提供基表数据的另一种表现形式
2.4 视图的优点:
1)限制数据访问
2)简化复杂查询
3)提供数据的相互独立
4)同样的数据,可以有不同的显示方式
2.5 视图只有创建,删除和替换,没有修改
1)create orreplace view viewName as select ... with read only
2)with checkoption:只能操作看得到的(比如建立视图时候deptno=10,就不能插入不是10的记录)
2.6 f.包含以下元素之一时候,不能用delete:
1)组函数
2)groupby子句
3)distinct关键字
4)rownum伪列
g.包含以下元素之一时候,不能用update:
1)组函数
2)groupby子句
3)distinct关键字
4)rownum伪列
5)列的定义为表达式
h.包含以下元素之一时候,不能用insert:
1)组函数
2)groupby子句
3)distinct关键字
4)rownum伪列
5)列的定义为表达式
6)表中非空的列在视图定义中未包括
i.物化视图:可以缓存数据,可以提高效率
3序列
3.1 概念:可供多个用户用来产生唯一数值的数据库对象
3.2.序列:
1)自动提供唯一的数值
2)共享对象
3)主要用于提供主键值
4)将序列值装入内存可以提高访问效率
3.3.创建序列:create sequence sqname
3.4.序列出现裂缝:
1)回滚
2)系统异常
3)多个表同时使用同一序列
3.5.修改序列:alter sequence seqname,修改序列只会影响将来的值
3.6.删除序列:drop sequence seqname
4索引
4.1.创建索引:create index myindex on emp(deptno,deptno);
4.2.哪些情况下适合创建索引:
1)列中数据值分布范围广
2)列经常在where子句或连接条件中出现
3)表经常被访问而且数据量大,访问的数据大概占数据总量的2%~4%
4.3.同义词(别名):createsynonym mysynonym
同义词授权 grant create synonym to scott
4.4.公用同义词 :create public synonym mysynonym;
公有同义词授权 grant create public synonym to scott
4.5 查询其他用户下表的授权