PL SQL 知識 (個人筆記)(一)

2021-10-13 07:39:44 字數 3935 閱讀 6458

3.列印資訊

4.賦值

5.注釋:

6.使用表中的型別:

7.自定義型別:

8.鍵盤輸入資訊:

declare

--宣告部分,比如變數定義,常量定義及賦值;

begin

--需要執行的**,比如輸出資料,資料的增刪改查, dml, ddl都可以

end;

內容可變,在程式執行過程中,可以隨時賦值,即變數的內容是可以改變的,所以叫變數;變數一般以v_開頭: v_empname varchar2(50);

一旦定義賦值之後,值不能再改變;常量一般以c_開頭,定義時需要加constant關鍵字: c_empno constant number(4);

dbms_output.put_line(

);

括號中可以是列名,即把這一列資料的第一行列印;

括號中還可以是具體的資料,比如字串(需要單引號),比如數字,比如時間等等.

**語法:

變數名 :=值;

常量名 :=值;

範例:

v_empname varchar2(

50) :=

'abc'

;c_empno constant number(

4) :=

1234

;

**前加–,此時**會變紅色,表名此行**被注釋掉,不會執行

第一行**前加/最後一行**後加/,中間就是被注釋掉的部分,程式執行是不會執行;

declare

v_v1 number(

5) :=10;

c_c1 constant varchar2(

20) :=

'abc'

;begin

dbms_output.put_line(

'v_v1: '

||v_v1)

; dbms_output.put_line(

'c_c1: '

||c_c1)

; dbms_output.put_line(

'今天是2月12日');

dbms_output.put_line(trunc(sysdate));

v_v1:=20;

dbms_output.put_line(

'v_v1:'

||v_v1)

; c_c1 :=

'test'

; dbms_output.put_line(

'c_c1:'

||c_c1)

;end

;

(1).%type:沿用表中某一列的型別和長度:v_empno emp.empno%type;

(2).%rowtype:沿用一張表的資料型別,即變數跟表一樣,表中有多少列,變數中就有多少列:v_emp emp%rowtype;

(3).**塊中查詢時,需要定義乙個變數承接查詢出的資料,然後列印變數,方可將查詢結果列印出來. 輸出時,每次只能輸出一行,所以查詢時要加限制;

create

table test_0212

( name1 varchar2(50)

, age1 number(3)

);insert

into test_0212 values

('a',1

);insert

into test_0212 values

('b',2

);insert

into test_0212 values

('c',3

);insert

into test_0212 values

('d',4

);insert

into test_0212 values

('e',5

);commit

;select

*from test_0212;

declare

–宣告部分,定義變數

v_empno emp.empno%type;

v_emp emp%rowtype;

begin

--**執行部分

/*insert into test_0212 values('f',6);

commit;*/

/*delete from test_0212 where name1='a';

commit;*/

/*update test_0212 set age1=10 where name1='b';

commit;*/

select empno into v_empno from emp where rownum<2;

dbms_output.put_line(v_empno)

;select

*into v_emp from emp where rownum<2;

dbms_output.put_line(

'empno:'

||v_emp.empno||

' ename:'

||v_emp.ename||

' sal:'

||v_emp.sal)

;end

;

語法:

type 型別名 is record

( 列名1 型別(長度)

, 列名2 型別(長度)

, 列名3 型別(長度)

);

範例:

declare

type t_type is record

( name1 varchar2(50)

, job1 varchar2(50)

);v_d t_type;

begin

select ename, job into v_d from emp where rownum<2;

dbms_output.put_line(

'ename:'

||v_d.name1||

','||

'job:'

||v_d.job1)

;end

;

注意:

(1):型別定義時,型別名以t_開頭;

(2):定義變數語法: 變數名 型別名;–此處意為 變數擁有型別相同的列和屬性

(3):變數列印時,列明須保持跟型別內的列名一致: 變數名.列名

鍵盤輸入:

&提示資訊: &表示將要從鍵盤輸入,提示資訊為表明輸入的資訊內容;

方法1:

用乙個變數承接鍵盤輸入:

declare

v_name emp.ename%

type

;v_empno number(

20) :=

&編號;

begin

select ename into v_name from emp where empno=v_empno;

dbms_output.put_line(v_name)

;end

;

方法2:

直接用列名承接鍵盤輸入:

declare

v_name emp.ename%

type

;begin

select ename

into v_name

from emp

where empno =

&empno;

dbms_output.put_line(v_name)

;end

;

PL SQL程式設計基礎知識(一)

pl sql變數的宣告和賦值 declare v ename varchar2 30 定義變數 begin v ename 請輸入名字 接受鍵盤輸入 dbms output.put line v ename end put line 列印換行 put 列印不換行 接受數字輸入,第一行輸出若使用不換行...

plsql及Oracle基礎知識(一)

主要涉及知識 建立及銷毀表空間 建立及銷毀使用者 給使用者賦權 匯入匯出庫 建立表 給表新增主鍵及外來鍵約束 給表及字段新增注釋 建立函式 建立過程 建立序列 建立觸發器 建立程式包等,現將知識整理如下 1.建立表空間 首先登陸管理員賬號,或者有dba許可權的使用者。建立表空間 create tab...

plsql知識梳理 序列

1 建立序列 2 查詢序列 select seq wg.nextval from dual from後也可以是任何乙個實體表。1.dual 確實是一張表.是一張只有乙個字段,一行記錄的表.oracle資料庫內建的一張表。2.習慣上,我們稱之為 偽表 因為他不儲存主題資料.3.他的存在,是為了操作上的...