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 使用者可以將...