Oracel期末复习知识点——背完这33题想挂都难
Posted 十九万里
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracel期末复习知识点——背完这33题想挂都难相关的知识,希望对你有一定的参考价值。
一些基本的概念:
SQL是一门操作数据库的语言,SQLPlus提供了向服务器端操作SQL语言的工具,而Oracle负责接收客户端发来的命令,在数据库上执行SQL语句,然后发送发聩结果给SQLPlus
数据模型的内容包括:
数据结构
数据操作
数据约束
常见的数据模型有:层次模型,网状模型,关系模型
数据库:存放数据的仓库。包括数字、文本、图像、音频、视频等。数据以一定的格式存放在计算机中,之间存在一定的关联。数据库是事务处理、信息管理等应用系统的基础。
数据库管理系统(DBMS):按照一定的数据模型组织数据、管理数据库,为数据库应用系统提供操作数据库的接口,为数据库管理员(DBA)提供管理和操作数据库的界面。
数据库系统:数据、数据库、数据库管理系统、应用程序、软硬件平台及相关人员一起构成了数据库系统
SQL*Plus是Oracle公司开发的管理和交互查询工具,是标准SQL的一个扩展集
关系数据库三级模式:
外模式,内模式,模式
1、关系型模型的优点有哪些。
1、结构简单
2、可以直接处理多对多的关系
3、面向记录集合的
4、有坚实的理论基础
5.在结构化的数据模型中具有较高的数据独立性
2、Oracle数据库三个完整性的五个约束条件是什么。
三个完整性 :
实体完整性
参照完整性
用户定义完整性
五个约束条件:
非空、唯一、主码、外码、检查。
(1) not null(非空)约束
(2) unique(惟一)约束
(3) primary key(主键)约束
(4) foreign key(外键)约束
(5) check(校验)约束
3、PL/SQL中变量有什么属性?变量的命名规则是什么。
变量的属性:
变量有名称和数据类型两个属性
名称用于标识该变量
数据类型确定了该变量存放值的格式及允许的运算
%用来表示属性提示符
%TYPE:提供了变量和数据库列的数据类型
变量的命名规则:
1、变量必须以字母开头
2、第二个字符开始,可以是一个或者多个字母,数字或者特殊字符$.# 和_
3、变量长度不超过30个字符
4、变量名中不可有空格
4、Oracle数据库表空间有哪些特点。
首先先写出Oracle数据库的特点:
1、共享SQL和多线程服务器体系结构
2、提供了基于角色分工的安全保密管理
3、支持大量的多媒体数据
4.提供了第三代高级语言的接口软件PRO*系列,能使用c c++等语言操控
5、提供了新得到分布式数据库能力,方便远程读写数据
表空间特点:
1、数据库由多个表空间组成
2、一个表空间有多个数据文件
3、一个数据文件只能与一个表空间相连
4、表空间的容量四所连接的数据文件大小的总和
5、对表空间的操作可以在线操作,也可以离线操作(分布式)
6、表空间可以被创建和删除
5、什么是数据库的物理结构,它的设计分几步,分别是什么?。
数据库分为逻辑结构和物理结构,有了逻辑结构之后开始设计物理结构
这里要先讲关系型数据库的6个设计阶段
1、需求分析
2、概念结构设计
3、逻辑结构设计
4、物理结构设计
5、数据库实施:数据库管理员在DBMS上操作
6、数据运行与维护
了解了上面的步骤,就容易理解下面的问题了:
上什么是数据库的物理结构:
数据库的物理结构是实际的数据存储单元格,由驻留在服务器磁盘上的操作系统文件组成,每个Oracle数据库实例主要有数据文件,日志文件,控制文件组成
当然还有其他的如密码文件,参数文件,归档日志文件等
详情看这篇文章:
oracle数据库的物理结构及逻辑结构
物理结构的设计模式:
确定数据存储的结构
设计数据存储的路径
确定数据的存放位置
确定系统配置
6、请简要叙述SQL语言的书写规则及Orecal建议的大小写规则。
SQL书写规则:
1、语句一般由主句和从句组成,主句表示主要功能,从句表示条件和限定
2、在关键字,变量名,字段名,表名等之间用一个以上的空格或者逗号分隔
3、一条语句可以写在一行或者多行上
每一段语句以分号结束
语句不区分大小写
SQL语句具有不区分大小写的特性所以Qracle建议用户遵循一下大小写规则:
SQL保留字使用大写字母:如BEGIN EDCLARE LOOP ELSIF等
内置函数使用大写字母,如SUBSTR ,COUNT TO_CHAR 等
预定义类型使用大写字母:如NUMBER,VARCHAR2 ,BOOLEAN DATE 等
SQL关键字使用大写字母,如SELECT INTO UPDATE WHERE等
数据库对象使用小写字母。如数据库表明,列名,视图名
总结来说:系统内置的使用大写,用户自定义的使用小写
7、Oracle数据库完整性的五个约束条件是什么。
和第二题一样
五个约束条件:
非空、唯一、主码、外码、检查。
(1) not null(非空)约束
(2) unique(惟一)约束
(3) primary key(主键)约束
(4) foreign key(外键)约束
(5) check(校验)约束
8.什么是存储过程,它的优点有哪些。
在Oracle过程中,我们可以自定义子程序,这种程序块被称为存储过程,存放在数据字典中,可以在不同的用户和应用程序之间共享,并可实现对程序的优化和重组,
优点:
存储过程在服务端,执行速度快
存储过程在第一次被执行后就常驻在高速缓存中,后续可以直接调用,从而提高了系统性能
丰富权限管理手段,提高数据库的安全性
可自动完成所需要先执行的任务,方便用户的使用
9、请利用LOOP循环语句编写程序,求解10的阶乘。
SQl>set serveroutput on;
SQL>DECLARE
N number:=1;count1 number:=2;
BEGIN
LOOP
n:=n*count1;count1:=count1+1;
IF count1>10 THEN
EXIT;
END IF;
END LOOP;
DBMS_OUTPUT.PUT_LINE(’10的阶乘为:’ || to_char(n));
END;
10、创建一个函数,用于统计学生表(XSB)中不同性别的人数。
SQL>CREATE OR REPLACE FUNCTION count_num(in_sex IN char)
RETURN number
AS
out_num number;
BEGIN
IF in_sex=‘男’ THEN
SELECT COUNT(*) INTO out_num
FROM XSB
WHERE xb=‘男’;
ELSE
SELECT COUNT(*) INTO out_num
FROM XSB
WHERE xb=‘女’;
END IF ;
RETURN(out_num);
END;
11、SQL的基本运算符,常用运算符功能,单行运算符,多行运算符,in like含义,逻辑运算符。
SQL基本数据类型:
1、字符型: varchar2(可变长度),char(定长字符串),long(变长字符串)
2、数字型: Number(p,s),Int(eger)十进制整型, float(二进制)
3、日期型: date (精确到秒)Timestamp(精确到秒后六位)
SQL运算符:
12、常见的内置函数:count,min max sum lower upper LAPD RAPD 字符转换。
count:
Count([distinct]<值表达式>)
统计选择行的数目,并忽略参数值中的空值。若使用distinct选项,则只统计不同的非空数值。参数值可以是字段名,也可以是表达式
min:
Min(value)
选定的value中选取数值/字符的最小值,忽略空值
max:
Max(value)
从选定的value中选取数值/字符的最大值,忽略空值
sum:
sum(value)
返回value的和。value可以是字段名,也可以是表达式
LOWER:
lower(s1):
把给定字符串s1中的字符变成小写
UPPER:
UPPER(s1):
把s1中的字符串变成大写
LPAD:
LPAD(s1,n,s2):
在s1左侧使用s2填充到指定长度n,没有s2则用空格填充
RPAD:
RPAD(s1,n,s2):
在s1右侧使用s2填充到指定长度n,没有s2则用空格填充
13、常见几种异常所代表的含义.
14、创建触发器时,决定触发器应用于某一列的关键字
OF:指定在某列上应用触发器。如果为多列,中间用逗号分隔。
15、授权权限的命令,回收权限的命令。
使用GRANT语句进行系统权限的授予,语法格式如下:
GRANT<系统权限名> TO {PUBLIC|<角色名>|<用户名>[,…n]}
[WITH ADMIN OPTION]
其中,PUBLIC是Oracle中的公共用户组,如果将权限授予PUBLIC,则意味着数据库中的所有用户都将拥有该权限。如果使用了WITH ADMIN OPTION 选项,则被授权的用户还可以将这些系统权限传递给其它用户或角色。
数据库管理员或者具有向其他用户授权的用户可以使用REVOKE语句将已经授予的系统权限收回,语法格式为:
REVOKE<系统权限名> FROM {PUBLIC|<角色名>|<用户名> [,…n]};
注意:用户的系统权限被收回后,该用户的传递权限也会同时被收回。不过,已经经过传递并获得权限的用户不受影响。
例8.4:收回用户AUTHER创建任意表格和视图的权限:
REVOKE CREATE ANY TABLE,CREATE ANY VIEW
FROM AUTHOR
16、创建表空间的命令。
creat
在Oracle中,创建数据对象通过CREATE来完成。创建及定义表格利用CREATE TABLE来完成,其语法格式为:
CREATE TABLE table_name
{(column_name data_type [DEFAULT expression] [constraint]
[,column_name data_type [DEFAULT expression] [constraint]]
[,…]
[,table_constraint] [TABLESPACE tablespace_name])|AS subquery};
17、物理备份种类和所需的数据库工作状态。
种类:
脱机备份(冷备份)
联机备份(热备份)
工作状态:
脱机物理备份是在数据库关闭的状态下进行的数据库文件的物理备份,在正常关闭后,备份物理文件备份完成后再重启数据库,
**联机物理备份:**又叫做热备份和Archivelog备份,在数据库开启的情况下进行备份。Oracle以循环的方式联机重做日志文件,直到写完成最后一个,把这份重写的日志进行备份,
18、逻辑备份的工作模式。
逻辑备份:
逻辑备份是指记录一个数据库记录集,并利用Oracle提供的导出工具(Export),以Oracle的内部格式写入二进制文件中,这些记录的读出与其物理位置无关,既不需要数据库运行在归档模式下,也不需要外部存储。备份过程比较简单
备份以物理备份为主,逻辑备份为辅
19、常见的数据模型。
层次模型,网状模型,关系模型
层次模型:
树状层次结构,每个节点表示一个记录类型
记录之间为一对多的联系
树形结构的顶部为根节点,切只有一个根节点。
网状模型:
网状层次模型,每个节点表示一个记录类型,层次模型的扩展
记录之间为一对多联系
一个节点可以有一个或多个父节点
关系数据模型:
是目前应用最多的,最重要的一种数据模型,
有三个要素:实体,属性,关系
一般以二维表格的行和列组成。
20、数据查询语言可分为三类,是哪三类。
SQL语言分类:
1、数据定义语言(DDL)
2、数据操控语言(DML)
3、数据查询语言(DQL)
4、事务控制语言(TCL)
5、数据控制语言(DCL)
数据查询语言的三种分类没找到!!!
21、创建用户,创建概要文件,创建空间的语法格式
CREATE USER 创建用户
我们还可以使用CREATE USER命令来创建一个新的数据库用户账户,但是创建者必须具有CREATE USER 权限,其语法格式为:
CREATE USER <用户名>
[IDENTIFIED BY{<密码>|EXTERNALLY|GLOBALLY AS ‘<外部名称>’}]
[DEFAULT TABLESPACE <默认表空间名>]
[TEMPORARY TABLESPACE<临时表空间名>]
[QUOTA<数字值>K|<数字值>M|UNLIMTED ON <表空间名>]
[PROFILE<概要文件名>]
[PASSWORD EXPIRE]
[ACCOUNT{LOCK|NULOCK}]
使用**CREATE PROFILE 命令创建概要文件,**操作者必须拥有CREATE PROFILE的系统权限,其语法格式为:
CREATE PROFILE <概要文件名> LIMIT
<限制参数>|<口令参数>
其中,<限制参数>和<口令参数>分别使用一系列的表达式对一个用户指定资源限制和口令限制,他们的语法格式详见教材P209-211
22、关系数据库两个实体集之间的对应关系。
关系:在信息世界反映实体之间或内部的关系。实体内部的关系是指组成实体的各属性之间的关系,实体之间的关系指不同实体集之间的关系。实体之间的关系包括:一对一、一对多、多对多
23、PL/SQL程序块的组成部分。
PL/SQL编辑器
SQL窗口
命令窗口
对象浏览器
24、PL/SQL的合法字符有哪些。
建立连接以及断开连接:
建立连接命令CONNECT(CONN)
断开连接命令DISCONNECT(DISC)
文档操作命令:
SAVE:把当前SQL缓冲区作为sql脚本保存到磁盘上。
GET:把SQL脚本文件的内容装载到SQL*Plus缓存区中,只装载不执行
START和@:START和@命令用于执行一个SQL脚本文件
SPOOL:拷贝屏幕上的内容
RUN和/:反复多次执行同一个命令
二者的区别在于:当使用RUN命令时,会先显示SQL语句或PL/SQL块,然后再执行命令;而使用“/”命令时,不显示SQL语句或PL/SQL块,直接执行命令。
DEFINE命令和EDIT命令:
在SQLPlus中直接编辑命令有时不太方便,这时可以用DEFINE命令来指定一个自定义的编辑器,然后使用EDIT命令打开这个指定的编辑器,用来进行命令编辑。
替换变量(&):替换变量可以交互式地执行命令,它会提示用户输入不同的执行条件,这使得在SQLPlus中执行脚本可以有不同的条件
PROMPT和PAUSE命令
PROMPT命令用于输出提示信息到屏幕上,而PAUSE命令则用于输出提示信息到屏幕的同时暂停脚本执行,当按下回车键时继续执行
ARRAYSIZE 该变量用于指定一次提取记录行数的大小
LINESIZE 该变量用于设置行宽度,
PAGESIZE 该变量用于设置每页所显示的行数,默认值为20.
SERVEROUTPUT 该环境变量用于控制服务器(屏幕)输出,默认值为OFF,表示禁止服务器输出
TERMOUT
该变量用于控制SQL脚本的输出,默认值为ON。默认情况下,如果SQL有输出结果,则在屏幕上显示,如果设置为OFF,则不会在屏幕上显示输出SQL脚本的运行结果
TIME
该环境变量用于设置在SQL提示符前是否显示系统时间,默认值为OFF,表示禁止显示系统时间,如设置为ON,则会在SQL提示符前显示系统时间
TIMING 该环境变量用于设置是否要显示SQL语句执行时间,默认值为OFF
PASSWORD(修改口令命令)
任何用户均可使用PASSWORD命令修改自身口令,但如要修改其它用户口令,则必须以DBA身份(SYS或SYSTEM)登陆
25、自定义函数的参数模式有哪些。
参数的模式有3种:(如果没有注明, 参数默认的类型为 in.)
in: 为只读模式, 在函数中, 参数的值只能被引用, 不能被改变;
out: 为只写模式, 只能被赋值, 不能被引用;
in out: 可读可写.
26、Oracle数据库常见的数据库类型有哪些。
1、字符型: varchar2(可变长度),char(定长字符串),long(变长字符串)
2、数字型: Number(p,s),Int(eger)十进制整型, float(二进制)
3、日期型: date (精确到秒)Timestamp(精确到秒后六位)
4、LOB类型:
① CLOB:存储大量字符数据。
② NCLOB:用来存储可变长度的Unicode字符数据。
③ BLOB:存储较大的可变长度的二进制对象,如图形、视频剪辑和声音文件。
④ BFILE:存储指向二进制格式文件的定位器。
5、 RAW和LONG RAW类型
用来存储二进制数据。
① RAW:类似于CHAR,声明方式RAW(L),L为长度,以字节为单位,作为数据库列最大2000,作为变量最大32767字节。
② LONG RAW:类似于LONG,作为数据库列最大存储2G字节的数据,作为变量最大32760字节。
6、行类型
① ROWID:ROWID数据类型被称为“伪列类型”,用于Oracle内部保存表中每条记录的物理地址。
Oracle通过ROWID可最快地定位某行具体数据的位置。在使用ROWID字段时必须显式指定名称。
② UROWID:行标识符,用于表示索引化表中行的逻辑地址。
27、提交和回滚命令。
提交和回滚是属于事务控制里面的概念
显示地提交和回滚语句COMMIT和ROLLBACK能更好的保证数据的一致性,其语法格式为:
提交:COMMIT;
回滚:ROLLBACK;
28、显示游标和隐藏式游标SQL%ISOPEN属性的返回值。
显示游标是指在使用之前必须有着明确的游标声明和定义,这样的游标会关联数据查询语句,通常会返回一行或多行
%ROWCOUNT的值返回0
SQL%ISOPEN:该属性可以是treu或者false隐式游标没有显示游标的可操作性
SQL%ISOPEN:该属性永远返回FALSE
29、什么是物理备份,什么是逻辑备份。
首先先了解备份和恢复的区别:
备份:
把数据信息保存起来
恢复:
当出现意外事件时或有某种需要时,将已经备份的数据信息还原带数据库系统中
物理备份:
物理备份是拷贝数据库文件,不考虑其逻辑内容,
Oracle支持两种物理备份:脱机备份(冷备份)和联机备份(热备份)
逻辑备份:
逻辑备份是指记录一个数据库记录集,并利用Oracle提供的导出工具(Export),一Oracle的内部格式写入二进制文件中,这些记录的读出与其物理位置无关
30、创建触发器时多个DDL事件之间用什么连接。
多个事件间用OR连接。
31、表中可用于唯一标识的列称为什么码。
主键
32、常用的SQL命令,插入,选择,删除,更新。
插入:
INSERT语句
语法:
INSERT INTO [schema.] table[(columnl[,column2];;😉] VALUES(expr1 [,expr2]…);
其中,schema.表示数据库方案(用户名);table表示要插入的表名,column1、column2、…表示表的列名;expr1,expr2,…表示要插入的具体值。
INSERT…VALUSE(插入一条)
INSERT INTO…SELECT(批量插入)
更新:
UPDATE语句
UPDATE语句可以指定要修改的表列和修改后的新值,使用WHERE从句可以限定被修改的行。其语法格式为:
UPDATE table_name SET {col1=expr1[,col2=expr2]|(col1[,col2])=(select query)} [WHERE condition];
删除:
DELETE语句
语法格式为:DELETE [FROM] table_name [WHERE condition]
例4.56:从tt_spml表中删除一条记录
SQL>DELETE FROM tt_spml WHERE spcd=‘哈尔滨’;
注意:
在使用DELETE语句时,最好使用WHERE子句,否则会将表中所有数据全部删除;
若发现删错了,可以使用事物控制语句ROLLBACK撤销删除处理;
DELETE语句的FROM关键字可以省略。
TRUNCATE语句
TRUNCATE语句和DELETE语句一样,都能删除表中记录,但他们有很大的区别。TRUNCATE语句的特点如下:
(1) TRUNCATE不能使用WHERE从句,只能删除表中所有数据;
(2) TRUNCATE是截断数据,不可用ROLLBACK来撤销删除,所以使用时要特别小心;
(3) TRUNCATE后面不是FROM而是TABLE关键字,且TABLE不可省略;
语法格式为: TRUNCATE TABLE table_name;
例4.57:利用TRUNCATE语句删除tt_spml表中所有记录
SQL> TRUNCATE TABLE tt_spml;
33、创建表格,视图,索引的语法格式。
创建表
在Oracle中,创建数据对象通过CREATE来完成。创建及定义表格利用CREATE TABLE来完成,其语法格式为:
CREATE TABLE table_name
{(column_name data_type [DEFAULT expression] [constraint]
[,column_name data_type [DEFAULT expression] [constraint]]
[,…]
[,table_constraint] [TABLESPACE tablespace_name])|AS subquery};
语法含义:
table_name:所创建的表的名称
column_name:列名称。列名称在同一个表中具有唯一性
data_type :列的数据类型
DEFAULT expression:列的默认值
Constraint:列级添加的约束条件
table_constraint:表级添加的约束条件
TABLESPACE tablespace_name:指定创建表所属的表空间
AS subquery:子查询。由子查询返回的行插入新建的表中。
视图
视图是原始数据库数据的变换,是用户查看表中数据的另外一种方式,它是从一个表或者多个表(或视图)导出的虚表
我们可以利用PL/SQL Developer 的可视化图形界面创建视图,也可以利用SQL语句的CREATE VIEW 来创建视图。
其语法格式为:CREATE [OR REPLACE][FORCE] [NOFORCE] VIEW [<用户方案名>.]<视图名>[(<列名>[,<列名>]…)]
AS 子查询 [WITH CHECK OPTION[CONSTRAINT<约束名>]]
[WITH READ ONLY];
说明:
OR REPLACE:表示在创建视图时,如果已经存在同名视图,则重新创建,即覆盖原有视图。
如果没有此关键字,则需要将原有同名视图删除后,方可建立新视图。
FORCE:表示强制创建一个视图,无论视图的基表是否存在或者创建者是否有权限;NOFORCE则相反,表示不强制创建。
用户方案名:指定将创建的视图所属用户方案,默认为当前登录的账号
列名:自定义视图中包含的列。如果使用与原表相同的名字,则无需给出列名
AS:后接SELECT语句,以表明新创建的视图所参照的表或视图
WITH CHECK OPTION:指出在视图上所进行的修改都要符合SELECT语句所指定的限制条件,这样可以确保数据修改后,仍可通过视图查询到修改的数据。
CONSTRAINT:约束名称
WITH READ ONLY:规定视图中不能执行删除、插入、更新操作,只能检索数据
SELECT查询语句:视图的内容就是SELECT查询语句指定的内容。视图可以非常复杂,在下列情况下,必须指定列的名称:
由算数表达式、系统内置函数或者常量得到的列
多表连接时存在几个同名列作为视图的字段,需指定不同的列名
希望视图的列明与基表中的列名不同的时候
索引
在SQL语句中,建立索引使用CREATE INDEX语句,一般格式为:
CREATE [UNIQUE] [CLUSTER] INDEX <索引名>
ON <表名>(<列名>[<次序>][,<列名>[<次序>]]…);
UNIQUE:此选项表示此索引的每一个索引值不能重复,对应唯一的数据记录;
CLUSTER:此选项表示要建立的索引是聚簇索引;
<表名>为所要创建索引的表的名称,索引可以建立在对应表的一列或多列上;
<次序>为索引值的排列顺序,ASC表示升序,DESC表示降序,默认值为ASC
注意:聚簇索引是表中记录的物理地址顺序按索引项重新排序存储的组织形式
以上是关于Oracel期末复习知识点——背完这33题想挂都难的主要内容,如果未能解决你的问题,请参考以下文章