Oracle数据库相关知识点

1.修改表名与删除表
(1)删除表中的列语句的语法结构是什么?
Delete 列名 from table_name
(2)删除表中的行语句的语法结构是什么?
delete from table_name where (条件);
(3)截断表的语句是什么?
Truncate table table_name
(4)删除表的语句是什么?
Drop table table_name
(5)截断表与删除的区别是什么?
截断表是删除表中的所有数据,但是保留表结构,在截断表时不能给定条件,截断表是隐式事务
删除表表示删除表中所有数据以及表结构,也是隐式事务
2.定义约束原则
(1)无
3.定义非空约束
(1)数据库中的约束有哪些类型?
非空约束(not null):指定列不能包含空值
唯一约束(unique):指定列的值或者列的组合的值对于表中所有的行必须是唯一的
主键约束(primary key):表的每行的唯一的标识
外键约束(foreign key):在列和引用表的一个列之间建立并且强制一个外键关系
用户自定义约束(check):指定一个必须为真的条件
(2)每个约束的含义是什么?
非空约束(not null):指定列不能包含空值
唯一约束(unique):指定列的值或者列的组合的值对于表中所有的行必须是唯一的
主键约束(primary key):表的每行的唯一的标识
外键约束(foreign key):在列和引用表的一个列之间建立并且强制一个外键关系
用户自定义约束(check):指定一个必须为真的条件
(3)定义约束的原则是什么?
创建一个约束:在创建表的同事,或者在常见表之后都可以定义约束。可以给约束起名字,但是约束名不能相同,必须是唯一的。如果没有为约束起名字,Oracle服务器将用默认格式SYS_Cn产生一个名字,这里n是一个唯一的整数,所以约束名是唯一的
4.定义唯一性约束
(1)创建dept90表,包含如下列:id number具备唯一性约束、name varchar2(20)。
create table dept90(id number constraint dept90_uk unique,name varchar2(20));

5.定义主键约束
(1)创建dept70表,包含如下列:id number具备主键约束。
create table dept70(id number,name varchar2(20),constraint dept70_pk primary key(id,name));

6.定义外键约束
(1)创建dept40表,包含如下列:id number、d_id number并为d_id列分配键列约束参照DEPT60表的id列。
create table dept40(id number,d_id number,constraint dept40_fk foreign key(d_id) references dept60(id));

7.定义检查约束
(1)创建dept30表,包含如下列:id number、salary number(8,2)。为salary分配检查约束检查条件为salary>1000。
create table dept30(id number,salary number(8,2) constraint dept30_ck check(salary>1000));

8.禁用与启用约束
(1)在Oracle中查看约束的数据字典表叫什么名字?
user_constraints
(2)禁用约束语句的语法结构是什么?
alter table dept40 disable constraint dept40_fk;

(3)级联禁用约束语句的语法结构是什么?
alter table dept50 disable constraint dept50_pk cascade;

(4)启用约束语句的语法结构是什么?
alter table dept40 enable constraint dept40_fk;

9.什么是视图
(1)什么是视图?
可以通过创建表的视图来表现数据的逻辑子集或数据的组合。视图是基于表或另一个视图的逻辑表,一个视图并不包含它自己的数据,它像一个窗口,通过该窗口可以查看或改变表中的数据。视图基于其上的表为基表。
(2)视图的优越性是什么?
(1)视图限制数据的访问,因为视图能够选择性的显示表中的列
(2)视图可以用来构成简单的查询以取回复杂查询结果。例如,视图能用于从多表中查询信息,而用户不必知道怎样连接语句
(3)视图对特别的用户和应用程序提供数据独立性,一个视图可以从几个表中取回数据
(3)视图分为几种类型?
简单视图、复杂视图
(4)不同类型的视图的区别是什么?
特性 简单视图 复杂视图
表的数目 一个 一个或多个
包含函数 无 有
包含数据分组 无 有
通过视图进行DML操作 是 不允许

10.创建简单视图
(1)创建简单视图的语法结构是什么?
create view emp80 as select e.department_id,e.last_name,e.hire_date from employees e where e.department_id=80

11.创建复杂视图
(1)创建一个名为DEPT_NAME的复杂视图,包含每个部门的部门名称,部门最低薪水、部门最高薪水以及部门的平均薪水。
create view dept_name(name,minsal,maxsal,avgsal) as select d.department_name,min(e.salary),max(e.salary),avg(salary) from employees e,departments d
where e.department_id=d.department_id group by d.department_name

12.视图中 DML 操作的执行规则
(1)使用DML操作的执行规则是什么?
如果视图中包含下面的部分就不能修改数据
(1)组函数
(2)Group by子句
(3)Distinct关键字
(4)用表达式定义的列
(2)如何设置视图拒绝DML操作?
在创建视图时在末尾用关键字with添加read only
create view v_1 as select * from employees with read only;

13.删除视图
(1)如何删除视图?
drop view v_1;

(2)删除视图后数据为什么不会丢失?
因为视图只是查询数据的一种方式,它并不会存储数据
14.什么是内建视图
(1)什么是内建视图?
内建视图是一个带有别名(或相关名)的可以在SQL语句中使用的子查询,一个主查询的在from子句中指定的子查询就是一个内建视图

15.使用内建视图实现TOP-N分析
(1)什么是TOP-N分析?
Top-N查询在需要基于一个条件,从表中显示最前面的n条记录或最后面的n条记录时有用的。该结果可以用于进一步分析。
(2)从 employees表中显示挣钱最多的 3 个人的名字及其薪水。
select rownum,last_name,salary
from(select last_name,salary from employees order by salary desc)
where rownum<=3;

(3)显示 employees表中4 个资格最老的雇员显示他们的入职时间与名字。
select rownum,last_name,hire_date
from (select last_name,hire_date from employees order by hire_date)
where rownum<=4;

16.Oracle的分页查询
(1)什么是分页查询?
当查询的结果集数据量过大时,可能会导致各种各样的问题发生。最终都会导致查询无法完成。解决这个问题的一个策略就是“分页查询”,也就是说不要一次性查询所有的数据,每次只查询一部分数据,这样分批次的进行处理,可以呈现出很好的用户体验,对服务器资源消耗也不大。
(2)查询雇员表中数据,每次只返回10条数据。
select em.* from (select rownum rn,e.* from employees e)em where em.rn between 1 and 10;

17.什么是序列
(1)什么是Oracle的序列?
序列是用户创建的数据库对象,序列会产生唯一的整数。序列的一个典型的用途是创建一个主键的值,它对于每一行必须是唯一的。序列由一个Oracle内部程序产生并增加或减少
(2)创建序列的语法结构是什么?
create sequence dept_seq increment by 10 start with 120 maxvalue 9999 nocache nocycle;

18.创建序列
(1)创建一个序列名称为:dept_seq,增长间隔为10,从120开始,最大值为9999,不缓存。不循环使用。
create sequence dept_seq increment by 10 start with 120 maxvalue 9999 nocache nocycle;

(2)通过PL/SQL Developer创建和dept_seq相同的序列,并命名为dept_seq2。

19.使用序列
(1)Oracle记录序列的数据字典表叫什么?
User_sequences
(2)Oracle的序列中包含多少伪列?每个伪列的特点是什么?
Nextval伪列:返回下一个可用的序列值,他每次返回一个唯一的被引用值,即使对于不同的用户也是如此。
Currval伪列:获取当前的序列值
20.修改删除序列
(1)修改序列的语法结构是什么?
alter sequence dept_seq increment by 20 maxvalue 999999 nocache nocycle;

(2)修改序列的原则是什么?
必须是被修改序列的所有者,或者有alter权限。
用alter sequence语句,只有以后的序列数会受影响
用alter sequence语句,startwith选项不能被改变。为了以不同的数重新开始一个序列,该序列必须被删除和重新创建。
21.什么是索引
(1)什么是索引?
在关系型数据库中,索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,他是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容。
(2)索引有哪些类型?
唯一性索引:当你再一个表中定义一个列为主键,或者定义一个唯一键约束时Oracle服务器自动创建该索引,索引的名字习惯上是约束的名字
非唯一性索引:由用户创建。
(3)创建索引的方式有几种?
自动:在一个表的定义中,当定义一个primary key 或unique约束时,一个唯一索引被自动创建
手动:用户能够在列上创建非唯一的索引来加速对行的访问
22.索引的使用
(1)什么情况下创建索引?
一个列包含一个大范围的值
一个列包含很多的空值
一个或多个列经常同时早一个where子句或一个链接条件中被使用
表很大,并且经常的查询期望取回少于2%-4%的行
(2)什么情况下不创建索引?
表很小
不经常在查询中作为条件被使用的列
大多数查询期望取回多于表中2%-4%的行
表经常被更新
23.创建索引(单行索引,复合索引,函数索引)
(1)Oracle的非唯一性索引包含哪些类型?
单行索引、复合索引、函数索引
(2)创建索引的语法结构是什么?
– 创建单行索引
create index emp_index on employees(last_name);
– 创建复合索引
create index dept_man_index on departments(manager_id,location_id);
– 创建函数索引
create index dept_upper on departments(upper(department_name));

(3)删除索引的语法结构是什么?

drop index dept_upper;

24.同义词的使用
(1)什么是Oracle的同义词?
同义词可以去除对象名必须带的方案限制,并提供给你一个可替换表名、视图名、序列名和存储过程名或其他对象名。该方法对具有特别长的对象的名字很有用。
(2)创建同义词的语法结构是什么?
create synonym em for employees;

(3)删除同义词的语法结构是什么?
drop synonym em;

25.创建用户
(1)什么是Oracle的用户?
Oracle用户是用来连接数据库和访问数据库对象的
(2)创建用户的语法结构是什么?
create user u_test identified by orcl;

(3)删除用户的语法结构是什么?
drop user u_test;

(4)删除用户同时删除该用户下的其他对象的语法结构是什么?
drop user u_test cascade;

26.授予用户系统权限
(1)数据库控制语言的作用是什么?
为用户授予和撤销相应的权限
27.撤销用户系统权限
(1)撤销权限的句法结构是什么?
revoke create table from u_bjsxt;

28.通过角色为用户授权
(1)什么是角色?
角色是命名的可以授予用户的相关权限的组,该方法使得授予、撤回和维护权限容易的多。一个用户可以使用几个角色,并且几个用户也可以被指定相同的角色。
(2)创建角色的语法结构是什么?
create role manager;

(3)为角色授予权限的语法结构是什么?
grant create session,create table,create view,create sequence to manager;

(4)为用户授予角色的语法结构是什么?
grant manager to newbjsxt;

(5)撤销用户角色的语法结构是什么?
revoke manager from newbjsxt;

29.什么是执行计划
(1)什么是执行计划?
执行计划是一条查询语句再Oracle中的执行过程或访问路径的描述
(2)执行计划中的Cardinality、Bytes、COST、Time字段分别表示什么含义?
基础(Cardinality):Oracle估计的当前操作的返回结果集行数
字节(Bytes):执行该步骤后返回的字节数
耗费(COST):Oracle估计的该步骤的执行成本,用于说明SQL执行的代价
时间(Time):Oracle估计的房钱操作所需要的时间
(3)执行计划中的执行顺序是什么顺序?
缩进最多的最先执行;缩进相同时,最上面的最先执行。
30.执行计划中的表与索引的访问方式
(1)数据库中的TABLE ACCESS FULL表示什么含义?
全表扫描
(2)数据库中的TABLE ACCESS BY INDEX ROWID表示什么含义?
通过ROWID的表存取
(3)数据库中的TABLE ACCESS BY INDEX SCAN表示什么含义?
索引扫描
31.执行计划的使用
32.Oracle的数据导入与导出
(1)数据库导入导出需要注意什么?
目标数据库要与数据库有这名称相同的表空间
目标数据在进入导入时,用户尽量相同(这样保证用户的权限级别相同)
目标数据库,每次在进行数据导入之前,应做好数据备份,以防止丢失
弄清是导入导出到相同版本还是不同版本
目标数据导入前,弄清楚是数据覆盖还是仅插入数据或替换部分数据表
确定目标数据库磁盘空间是否足够容纳新数据,是否需要扩充表空间
导入导出时注意字符集是否相同,一般Oracle数据库的字符集只有一个,并且固定一般不改变。
确定操作者的账号权限
(2)导出数据格式有几种?每种的特点是什么?
Dmp格式:dmp是二进制文件,可跨平台,还能包含权限效率好
Sql格式:sql格式文件,可用文本编辑器查看,通用型比较好,效率不如第一种,适合小数据量导入导出。尤其注意的是表中不能有大字段,如果有会报错
Pde格式:pde格式的文件,pde为PL/SQL Developer自有的文件格式,只能用PL/SQL Developer 工具导入导出,不能用文本编辑器查看。
33.exp与imp命令讲解
(1)导出数据的命令格式是什么?
exp 用户名/密码 @ 连接地址:端口/服务名 file =路径/文件名 .dmp full=y|tables(tablename,tablename…)|owner(username1,username2,username3)
(2)导入数据的命令格式是什么?
imp 用户名/密码 @ 连接地址:端口/服务名 file =路径/文件名 .dmp full=y|tables(tablename,tablename…)|owner(username1,username2,username3)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值