資料庫知識雜項

2021-08-27 06:57:48 字數 1805 閱讀 8393

oracle如何建立自增主鍵

1.建立表並設定主鍵.

2.建立序列.

3.建立觸發器.

例如:假設已建立好資料表 表名為tbl_name,主鍵列為tbl_id,其他列有tbl_name ,tbl_age,tbl_***....

然後開始建立oracle序列:

create sequence seq_name -- 盡量使用統一字首命名,方便管理  

increment by 1 -- 自增步長 這裡設定為1

start with 1 -- 計數起點 這裡設定為1

nomaxvalue -- 不設定最大值 可選項 maxvalue|minvalue

nocycle -- 一直累加,不迴圈

cache 10; -- 如果追求效率 可設定快取 如果在oracle宕機或者斷電等非正常中斷服務的情況 可能會造成序列不連繼續的情況出現,如果不使用快取,則這裡寫nochache

然後建立觸發器:

create or replcae trigger tri_name  --觸發器名稱

before insert on tbl_name -- 在向tbl_name表插入資料之前觸發

for each row-- 表示該觸發器為乙個行級觸發器

begin -- 觸發器開始

-- 以下**表示觸發器的行為

select seq_name.nextval into :new.tbl_id from tbl_name -- seq_name.nextval返回的是序列的下乙個值, 將該值設為新值插入到tbl_name表中的主鍵列tbl_id中去.

end -- 觸發器結束

以上完成的是oracle主鍵自增的設定.

mysql儲存過程的建立及使用

1.建立儲存過程:

create procedure proc_name ( out s int) -- 建立儲存過程 proc_name為儲存過程名 引數列表中 out表示引數是返回值 輸入值使用in s是引數名稱 int表示引數型別

begin -- 儲存過程開始

select * from tbl_name where tbl_id = s ; -- 該儲存過程表示在tbl_name表中查詢乙個tbl_id的值為s的結果

end; -- 儲存過程結束

2.呼叫儲存過程

set @p=0; -- 設定使用者變數並初始化

call proc_name(@p) ; -- 呼叫儲存過程 使用call命令 並將設定好的變數放到引數列表中 注意:即使該儲存過程沒有變數 也要寫上(),這和程式中的方法宣告一致

3.檢視儲存過程

show procedure status
4.刪除儲存過程

drop procedure pro_name -- 後接儲存過程名
oracle 子查詢因子化

特點:1.消除複雜的sql語句,使查詢更易於理解。

2.oracle可能將因子化的子查詢作為臨時表來處理,一遍提高效率。

sql寫法:

with query_name as (

// query_sql -- 寫查詢語句

select column from query_name -- 直接呼叫該子查詢的名稱

資料庫知識

1 資料庫的建立 建立格式 create table table name 字段 其中,字段包含三部分內容 名稱 域 逗號 域即資料型別,資料庫包含5中資料型別 integer real text blob null 2 改變表 altertable 命令可以改變表的結構,sqlite版的alter...

資料庫知識

關於資料庫的知識點 表的子查詢,聯合查詢,連線查詢 子查詢 查詢中巢狀查詢。把子查詢的結果作為父查詢的查詢物件 如 select from select cname,cid from tblclass union select dname,did from department as t1 orde...

資料庫知識

dml data manipulation language 資料庫操作語言 update,insert,delete 資料庫在執行dml時,是先把資料放到記憶體的回滾段 rollback 如果執行提交 commit 時,才把回滾段裡的資料儲存到資料庫中,如果還沒執行提交 commit 使用者可以將...