日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql中编写匿名块_Oracle数据库之Oracle_PL/SQL(1) 匿名块

發布時間:2023/12/9 数据库 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql中编写匿名块_Oracle数据库之Oracle_PL/SQL(1) 匿名块 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文主要向大家介紹了Oracle數據庫之Oracle_PL/SQL(1) 匿名塊,通過具體的內容向大家展現,希望對大家學習Oracle數據庫有所幫助。

1. PL/SQL 簡介

PL/SQL是一種比較復雜的程序設計語言, 用于從各種環境中訪問Oracle數據庫。

為什么使用PL/SQL?

Orade是一種關系型數據庫, 用來訪問關系型數據庫的語言是 “結構化査詢語言”SQL。

SQL是一種第四代語言,只描述做什么,不描述如何做。

一代語言:01

二代語言:匯編

三代語言:過程(條件判斷、循環)

四代語言:sql ?DELETE FROM emp where major='MANAGER';

第四代語言相對簡單,提供了較少的命令,它將用戶與底層的基本數據結構和算法隔離開來。

但缺少第三代語言對過程(條件判斷、循環)的處理。

PL/SQL(Procedural Language/SQL)過程性SQL語言,通過增加了過程性控制結構有效的

擴充了SQL的功能。

2. PL/SQL基礎

2.1 PL/SQL塊

PL/SQL中的基本単位是“塊” (block)。

所有的 PL/SQL程序都是由塊構成的,

這些塊可以順序出現,也可以相互進行嵌套。

分類:

匿名塊:沒有名字,只能被執行一次。

函數:

存儲過程:

包:

觸發器:

匿名塊語法:

declare

聲明部分;

begin

執行部分;

exception

異常處理部分;

end;

第一個例子:

begin

null;

--dbms_output.put_line('hello');

end;

2.2 詞法單位

詞法單位是一個字符序列,包括:

大寫和小寫的字母,A~Z和a~z

數字,0~9

非顯示的空字符,空格、回車、Tab鍵

數學符號,+ - * / > < =

間隔符號,() [] ? % # ! ;

這些符號可以在PLSQL中使用,

PLSQL中不區分大小寫(引號內的字符串除外)。

2.2.1 標識符

標識符是用來給PLSQL對象(變量、游標、類型、函數、存儲過程、包、觸發器等)命名的。

必須以字母開頭,包括字母、數字、_、#、$,其余字符則是非法的。

標識符最長30個字符。

變量命名: v_***

參數命名: p_***

函數命名: func_***

過程命名: proc_***

包命名: ? pkg_***

觸發器命名: tri_***

保留字:被oracle已使用的標識符稱為保留字,不能使用保留字作為標識符。

標引標識符:雙引號內的標識符稱為標引標識符,標引標識符是區分大小寫的。

2.2.2 分界符

算數運算符:+ - * /

邏輯運算符:= > < >= <= != <>

注釋符:-- ? /* ?*/

字符串連接符:||

賦值符: :=

2.2.3 文字

文字是一個不能成為標識符的字符、數字、布爾值。

例如:'ABC',23,true,false,null

2.2.4 注釋

注釋增強了程序的可讀性、使程序更容易被理解。

注釋在編譯時會被編譯器忽略。

單行注釋:--

多行注釋:/* ?*/

2.3 變量聲明

變量是一些內存單元,可以在變量中存儲數據。

變量在塊的聲明部分被定義。

每個變量都有一個特定的類型及長度。

2.3.1 聲明語法

變量名 ?類型(長度) [not null] [:=默認值];

舉例:

declare

v_number number:=45;

begin

dbms_output.put_line(v_number);

end;

字符串長度限制在范圍 (1...32767)

declare

v_char ? varchar2(20);

begin

v_char:='abcde';

dbms_output.put_line(v_char);

end;

declare

v_date ? date;

begin

v_date:=sysdate;

dbms_output.put_line(v_date);

end;

The VARCHAR datatype is currently synonymous with the VARCHAR2 datatype.

Oracle recommends that you use VARCHAR2 rather than VARCHAR.

In the future, VARCHAR might be defined as a separate datatype used

for variable-length character strings compared with different comparison semantics.

2.3.2 變量初始化

如果定義變量時沒有給初始化值,默認被賦值為null。

declare

v_char ? varchar2(20);

begin

dbms_output.put_line(v_char);

end;

如果聲明時指定了not null,那么變量就必須被初始化。

declare

v_char ? varchar2(20) not null;

begin

dbms_output.put_line(v_char);

end;

如果聲明時指定了constant,那么變量就必須被初始化,且不能被修改。

declare

v_char constant varchar2(20):='PLSQL';

begin

dbms_output.put_line(v_char);

end;

declare

v_char constant varchar2(20):='PLSQL';

begin

v_char:='abcde';

dbms_output.put_line(v_char);

end;

在聲明中可以用default來替換賦值符號:=

declare

v_char ? varchar2(20) default 'abcd';

begin

v_char:='abcde';

dbms_output.put_line(v_char);

end;

在聲明中,每一行只能聲明一個變量。

declare

v_char,v_char2 ? varchar2(20);

begin

v_char:='abcde';

dbms_output.put_line(v_char);

end;

declare

v_char ? varchar2(20);

v_char2 ?varchar2(20);

begin

v_char:='abcde';

dbms_output.put_line(v_char);

end;

2.4 PL/SQL類型

2.4.1 使用%TYPE

變量可以用來存儲表中的數據,

變量應該和表中的列具有相同的數據類型。

declare

v_ename ? varchar2(4);

begin

select ename into v_ename from emp where empno=7788;

dbms_output.put_line(v_ename);

end;

declare

v_ename ? emp.ename%type;

begin

select ename into v_ename from emp where empno=7788;

dbms_output.put_line(v_ename);

end;

2.4.2 使用%ROWTYPE

declare

v_emp ? emp%rowtype;

begin

select * into v_emp from emp where empno=7788;

dbms_output.put_line(v_emp.ename);

end;

2.4.3變量作用域和可見性

變量的作用域是可以訪問該變量的程序部分。

對于PLSQL變量,作用域就是從變量聲明開始直到該塊的結束。

變量超出作用域后,系統自動回收變量的內存空間。

2.5表達式和運算符

2.5.1賦值

變量:=表達式;

出現在:=左邊的稱為左值,出現在:=右邊的稱為右值。

左值必須是指向實際的存儲單元,即右值被寫入的內存位置。

所有的左值都是變量。

declare

v_number number;

begin

v_number:=5*2;

dbms_output.put_line(v_number);

end;

每行語句只能對一個變量賦值。

declare

v_number number;

v_number2 number;

begin

v_number:=v_number2:=5*2;

dbms_output.put_line(v_number);

end;

2.5.2 表達式

PLSQL表達式是右值。

表達式單獨作為一個語句使用是無效的。

表達式只能是語句的一部分。

declare

v_number number;

begin

5*2;

dbms_output.put_line(v_number);

end;

本文由職坐標整理并發布,希望對同學們學習Oracle有所幫助,更多內容請關注職坐標數據庫Oracle數據庫頻道!

總結

以上是生活随笔為你收集整理的mysql中编写匿名块_Oracle数据库之Oracle_PL/SQL(1) 匿名块的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。