------走进Oracle PL/SQL------
1.sysdba即数据库管理员,权限包括打开数据库服务器、关闭数据库服务器、备份数据库、恢复数据库、日志归档、会话限制、管理功能、创建数据库,sys用户必须用sysdba身份才能登录,system用户可以用普通身份登录
sysoper即数据库操作员,权限包括打开数据库服务器、关闭数据库服务器、备份数据库、恢复数据库、日志归档、会话限制
normal即普通用户,权限只有查询某些数据表的数据,默认的身份是normal用户
服务器连接字符串包括连接服务器协议,服务器的地址,服务器的端口等设置
2.连接字符串也成为本地网络服务名,其包含客户端与服务器连接的相关参数。连接字符串是客户端的配置,Oracle客户端安装后,可以使用客户端自带的网络配置向导(Net Configuration Assistant)进行配置
[实现过程]:
启动Net Configuration Assistant,执行【本地Net服务名配置】命令;
如果服务器在本地,在Net Configuration Assistant配置向导中一直单击“下一步”按钮即可,所有配置都选默认;
配置完成后进行连接测试,测试时默认采用的用户名和密码是system/manager进行测试,如果用户system的密码不是manager,则更改登录后,输入正确的用户名和密码再进行测试
3.在配置连接字符串的过程中,服务名一般为全局数据库的名称,即安装Oracle时设定的数据库实例名,连接协议采用默认的CTP协议即可,默认端口为1521;此外,数据库主机名可以是计算机名称,也可以是一个IP地址,主机如果是本机,可以使用本机计算机的名称、localhost、“127.0.0.1”或者本机的IP地址。配置完成后,可以打开安装路径下的tnsnames.ora文件查看:
orac =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orac)
)
)
4.PL/SQL Developer基本上可以实现Oracle开发中的任何操作;运行在客户端时必须先安装Oracle客户端,并且通过网络配置向导配置网络服务名后才能正常与服务器连接
5.Oracle在Windows操作系统中安装完成后,会安装很多服务,这些服务有些会自动启动,有些需要手动启动;所谓启动和关闭Oracle,就是将这些服务启动和关闭,使得Oracle能够提供服务或者拒绝提供服务
Oracle的主要服务有如下几个:
OracleService+服务名:该服务是数据库启动的基础,只有该服务启动了,Oracle数据库才能正常启动
OracleOraDb10g_home1TNSListener:该服务是服务器端为客户端提供的监听服务,只有该服务在服务器上正常启动,客户端才能连接到服务器;该监听服务接受客户端发出的请求,然后将该请求传递给数据库服务器;一但建立了连接,客户端和数据库服务器就能直接通信了
OracleOraDb10g_home1iSQL*Plus:该服务提供了用浏览器对数据中数据操作的方式;该服务启动后,就可以使用六浏览器进行远程登陆并进行数据库操作
OracleDBConsole+服务名:它是Oracle10g中的一个新服务
6.PL/SQL是一种块结构的语言,它将一组语句放在一个块中,一次性发送给服务器,PL/SQL引擎分析收到PL/SQL语句块中的内容,把其中的过程控制语句由PL/SQL引擎自身去执行,把PL/SQL块中的SQL语句交给服务器的SQL语句执行器执行;
一个PL/SQL程序包含了一个或者多个逻辑块
每个逻辑块分为三个部分,语法是:
[DECLARE
--declaration statements]
BEGIN
--executable statements
[EXCEPTION
--exception statements]
END;
7.在PL/SQL中,字符串用单引号,如果字符串中出现单引号可以使用双引号来表示,即单引号同时也具有转义的作用
对变量赋值使用赋值运算符":="来实现
8.事实上,PL/SQL中还可以使用select..into语句从数据库查询数据对变量进行赋值,但是查询的结果只能是一行记录,不能是零行或者多行
select sname into name from STUDENT where sno = '10001';
9.PL/SQL支持的运算符:
:= 赋值运算符
|| 字符串连接操作符
-- 单行注释
/*,*/ 多行注释,多行注释不能嵌套
<<,>> 标签分隔符,只是为了标识程序特殊位置
.. 范围操作符,例如:1..5 标识从1到5
+,-,*,/ 基本算术运算符
** 求幂操作,例如:3**2 = 9
>,<,>=,<=,= 基本关系运算符,= 表示相等关系
<>,!= 不等关系
AND,OR,NOT 逻辑运算符
10.PL/SQL中的宿主变量也称为全局变量
var name varchar2(20);
begin
select sname into :name from STUDENT where sno = '10001';
end;
声明宿主变量可以使用关键字VAR
PL/SQL块中访问宿主变量时要在变量前加符号":"
11.获取当前日期时间
DECLARE
today varchar2(20);
begin
today := TO_CHAR(SYSDATE,'DAY');
end;
函数sysdate用于获取系统当前日期,to_char()用于将当前日期进行格式化输出
select to_char(to_date('2019-10-22 00:10:10','yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh:mi:ss am') from dual;
12.PL/SQL提供了两个属性数据类型;当声明一个变量的值时数据库中的一行或者是数据库中某列时,可以直接使用属性类型来声明;
其中,属性数据类型%ROWTYPE表示引用数据库中的一行(一条记录),因此也将其成为记录类型
set serveroutput on
declare
mystu STUDENT%ROWTYPE;
begin
select * into mystu from STUDENT where sno = '10001';
dbms_output.put_line(mystu.sname);
dbms_output.put_line(mystu.sage);
end;
声明了mystu对象,其数据类型为STUDENT%ROWTYPE,即表示为数据表STUDENT的一行
访问和调用记录类型对象的属性需要使用符号“.”
另一个属性数据类型为%TYPE类型,该类型引用数据库的列类型作为某变量的数据类型
declare
age STUDENT.sage%TYPE;
newage number;
begin
select sage into age from STUDENT where sno = '10001';
newage := age + 1;
dbms_output.put_line(newage);
end;
声明变量age为数据类型为数据表STUDENT中sage列的变量
%TYPE可以引用表中的某列作为类型变量的数据类型,也可以引用某变量的类型作为新变量的数据类型
本文深入解析Oracle数据库的权限角色如sysdba和sysoper,介绍PL/SQLDeveloper的使用,以及如何配置Oracle客户端的网络服务名。详细讲解PL/SQL语言结构,包括变量声明、赋值、数据类型、运算符和日期处理,同时探讨了属性数据类型的使用。
1325

被折叠的 条评论
为什么被折叠?



