大数据最全Oracle-PL SQL编程_oracle 分块sql,2024年大数据开发网络编程总结篇

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!



> 
> 定义一个记录类型myrecord,用于存储student表中的学生姓名和班级名称
> 
> 
> 



declare
type myrecord is record
my_name varchar2<20>,
my_class varchar2<20>;
Myrecord myrecord;
begin
select name,class into myrecord from student where id = 1;
dbms_output.put_line<‘所查询的学生姓名是:’ || Myrecord.my_name ||',他的班级是:‘|| Myrecord.my_class >;
end;


### 3、%type类型



> 
> 在oracle中我们经常用到字段的数据类型,当我们定义一个数据类型想和表中已有的字段类型一致的时候我们可以使用%type类型,例如我们声明一个与student表中name字段类型一致的var\_name
> 
> 
> 



var_name student.name%type


### 4、%rowtype类型



> 
> 通过名字可以看出rowtype是表示数据表中某一行的所有数据类型,所以用他定义以后可以记录一行数据。例如声明一个用于存储student表中每行记录的变量var\_row
> 
> 
> 



var_row student %rowtype



> 
> 声明一个用于存储student表中id=1的一行记录var\_row,并显示基本信息
> 
> 
> 



declare
var_row student%rowtype;
begin
select * into var_row from student where id =1;
dbms_output.put_like<‘所查询的学生姓名是:’ || var_row.name>
end;


### 5、记录表类型



> 
> 上面我们说的那些类型只能存储一个数据,或者一行数据,不能存储多行数据,现在我们需要存储多行数据。语法如下
> 
> 
> 



type 记录表类型名称 is table of 类型 index by binary_integer



> 
> 定义一个记录表类型用于存储student表中的数据,并显示
> 
> 
> 



declare
type mytabletype is table of student%rowtype index by binary_integer;
Mytable mytabletype;
begin
select * into mytable<1> from student where id = 1;
select * into mytable<2> from student where id = 2;
dbms_output.put_line<‘学生姓名是:’|| mytable<1>.name>;
dbms_output.put_line<‘学生姓名是:’|| mytable<2>.name>;
end;


## 三、变量


### 1、变量的定义



> 
> 我们必须先在声明部分定义变量,与其他编程语言不通,PL/SQL语言中要求变量名在前,数据类型在后面,定义变量的语法如下。
> 
> 
> 



变量名 数据类型 [默认值 |: = 初始值]



> 
> 例如下面的代码
> 
> 
> 



var_name varchar2(20):=‘张三’


### 2、变量的赋值



> 
> 1:直接赋值
> 
> 
> 



name:=‘张三’;
age:=age+10;



> 
> 2:交互赋值
> 
> 
> 



name:=&temp;


运行此代码会提示输入temp的值,然后把输入的值赋给name变量



> 
> 3:使用select查询语句中的into子句
> 
> 
> 



select name into name_temp from student where id = 1;


### 3、变量的作用域



> 
> 变量的作用域,在一般的PL/SQL快中,变量的作用域从声明开始,一直到块的结束。如果存在块嵌套,则外部声明的为全局变量,可以在外部使用也可以在内部使用。
> 
> 
> 


## 四、常量的定义


### 1、常量



> 
> 常量的值在程序运行过程中保持不变,常量的声明方式与变量类似,但要包括关键字constant,常量定义的同时要赋予初值,如下所示。
> 
> 
> 



pi constant number:=3.1415;


## 五、条件语句



> 
> if  
>  case
> 
> 
> 


### 1、if语句



> 
> 有三种形式:if…then语句、if…then…else语句和if…then…elsif语句。
> 
> 
> 


#### 1、if…then语句



> 
> 基本语法格式如下
> 
> 
> 



if 条件表达式 then
语句序列;
end if;



> 
> 当条件表达式结果是true时,程序运行then下面的语句序列,如果为false时,则跳过then下面的内容而去运行end if后面的语句。
> 
> 
> 


#### 2、if…then…else语句



> 
> 基本语法格式如下
> 
> 
> 



if 条件表达式 then
语句序列1;
else
语句序列2;
end if;



> 
> 当条件表达式结果是true时,程序运行语句序列1,如果为false时,运行语句序列2。
> 
> 
> 


#### 3、if…then…elseif语句



> 
> 基本语法格式如下
> 
> 
> 



if 条件表达式 1 then
语句序列1;
elseif 条件表达式2
语句序列2;

else
条件表达式n
end if;



> 
> 当条件表达式结果是true时,程序运行语句序列1,如果为false时,运行语句序列2。
> 
> 
> 


### 2、case语句



> 
> 语法如下
> 
> 
> 



case 选择器表达式
when 条件 1 then 语句序列 1;
when 条件 2 then 语句序列 2;

when 条件 n then 语句序列 n;
else 语句序列 n+1;
end case;


## 六、循环语句



> 
> loop  
>  while  
>  for
> 
> 
> 


### 1、loop循环



> 
> 这种循环将循环条件包含在循环体内,loop循环会先执行一次循环体,然后判断是否满足设定的条件来决定循环是否继续执行。语法格式如下
> 
> 
> 



loop
语句序列;
exit when 条件表达式
end loop



> 
> 首先执行语句序列,然后根据条件表达式的值来判断下一步的操作,如果条件表达式的值为true,则退出循环体,如果条件表达式的值为false,则继续执行循环体。
> 
> 
> 


### 2、while循环



> 
> while循环是先判断条件,如果条件成立就执行循环体,如果不成立,就退出循环,语法格式如下。
> 
> 
> 



while 条件表达式 loop
语句序列;
end loop;



> 
> 运行的时候,首先判断条件表达式,如果结果是true,则运行循环体内的语句序列,如果为false,则退出循环。
> 
> 
> 


### 3、for循环



> 
> 前面两种循环都要根据条件是否成立来决定循环次数,for循环可以自己定义循环次数。语法格式如下
> 
> 
> 



for 循环变量 in [reverse] 开始数值…结束数值 loop
语句序列;
end loop;



> 
> 当循环变量大于开始数值,小于结束数值的时候,执行语句序列,否则退出循环,默认情况下循环变量时循环递增的,如果使用了reverse参数,则循环递减。
> 
> 
> 


![img](https://img-blog.csdnimg.cn/img_convert/8f3b8f2520c91706114bcc8890bed192.png)
![img](https://img-blog.csdnimg.cn/img_convert/cac003f998efcde720f2e586e6b4c0f6.png)

**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**[需要这份系统化资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618545628)**


**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

in [reverse] 开始数值...结束数值 loop
语句序列;
end loop;

当循环变量大于开始数值,小于结束数值的时候,执行语句序列,否则退出循环,默认情况下循环变量时循环递增的,如果使用了reverse参数,则循环递减。

[外链图片转存中…(img-WN0pl7M4-1715036118960)]
[外链图片转存中…(img-4IGDaddK-1715036118960)]

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值