資料庫基本概念

2021-09-08 04:46:11 字數 3364 閱讀 3853

引言:由於前段時間在實習。好長一段時間沒更新部落格了。

儲存過程是使用者定義的完畢特定功能的一系列sql語句的集合,經編譯後儲存在資料庫中,使用者通過指定儲存過程的名字並給定引數(假設該儲存過程帶有引數)來呼叫執行它。 涉及特定表或其它物件的任務,使用者能夠呼叫儲存過程。而函式一般是資料庫已定義的方法。它接收引數並返回某種型別的值而且不涉及特定使用者表。

基本的語法例如以下:

delimiter //

drop procedure if exists usp_demo;

create procedure usp_demo(in param1 int,...)

begin

-- 完畢某種功能的 sql 語句集

end //

delimiter ;

儲存過程的引數有三種型別:

1. in: 輸入引數. 在呼叫儲存過程時指定, 預設未指定型別時則是此型別。

2. out: 輸出引數. 在儲存過程裡能夠被改變, 而且可返回。

3. inout: 輸入輸出引數. in 和 out 結合。

內部連線:僅僅有兩個表相匹配的行才幹出如今結果集中。相當於在當中乙個結果表中刪除與其它連線表不匹配的全部行,全部內部連線可能會造成資訊丟失;

外部連線:外部連線不僅包括符合連線條件的行。而且還包括左表(左外部連線)、右表(右外部連線)或兩個連線表(全外部連線)中全部資料行;

事務屬性:事務是作為乙個邏輯單元執行的一系列操作,乙個邏輯工作單元必須有四個屬性:原子性、一致性、隔離性、永續性。

主鍵是能確定資料表中一條記錄的唯一標識,外來鍵是表示兩個關係之間的聯絡,用於與還有一張表的關聯。是能確定還有一張表記錄的字段;

設計關聯式資料庫時。遵從不同的規範要求,設計出合理的關係型資料庫。這些不同的規範要求被稱為不同的正規化,各種正規化呈遞次規範,越高的正規化資料庫冗餘越小。

眼下關聯式資料庫有六種正規化:第一正規化(1nf)、第二正規化(2nf)、第三正規化(3nf)、巴斯-科德正規化(bcnf)、第四正規化(4nf)和第五正規化(5nf。又稱完美正規化)。滿足最低要求的正規化是第一正規化(1nf)。在第一正規化的基礎上進一步滿足很多其它規範要求的稱為第二正規化(2nf)。其餘正規化以次類推。

正規化的包括關係:乙個資料庫設計假設符合第二正規化,一定也符合第一正規化。假設符合第三正規化,一定也符合第二正規化 …

索引是一種提高資料庫查詢速度的機制,它是在資料庫的表或檢視上依照某個keyword段的值,公升序或降序排序建立的物件。使用者查詢索引欄位時。不須要掃瞄整個表就能夠高速找到所需的資料。

sql索引型別:實際上是一組指向表中資料的指標。索引的排列順序就是這組指標的順序。

建立索引時,系統分配乙個索引頁。在表中插入一行資料,同一時候也向該索引頁插入一行索引記錄,因此,建立索引和維護索引須要時間與空間,並非越多索引越好。

游標是一種從多條記錄的結果集中每次提取一條記錄的機制。然後逐條進行資料處理。游標總是與sql查詢語句相關聯,由於游標由結果集(零條、一條或多條記錄)和結果集中所指向特定的游標位置組成,使用游標時,使用游標的順序: 定義游標、開啟游標、讀取資料、關閉游標、刪除游標。

//定義游標

declare 游標同意應用程式對查詢語句select

返回的結果集中每一行進行同樣或不同的操作,而不是一次對整個結果集進行同乙個操作,另外提供對基於游標位置的表中的行進行刪除和更新的能力。

儲存引擎就是指表的型別。資料庫的儲存引擎決定了表在計算機中的儲存方式。mysql儲存引擎包括處理事務安全表的引擎和處理非事務安全表的引擎。以下注意記錄了myisam與innodb儲存引擎:

innodb:用於事務處理應用程式,提供了事務、行級鎖機制和外來鍵約束的功能。適用於:

觸發器是與表有關的命名資料庫物件。當表上出現特定事件時。將啟用該觸發器。主要用於監視表的update、delete、insert操作。

觸發器的基本要點:

事件:insert、update、delete

在觸發程式中能夠使用new和old來訪問更改前後的資料,old是僅僅讀屬性。

觸發器基本的語法:

delimiter $

create trigger 《觸發器名稱》

《觸發時間》(after/before)

《觸發事件》(insert/update/delete)

on 《表名》

for each row //表示行級觸發器。mysql眼下僅支援行級觸發器

begin

//sql語句

end;

delimiter ;//將結尾符改回。

比如:該觸發器的功能:當表order執行insert之後。更新表product對應的產品數量productnum

delimiter $    /*mysql語句的結尾換成以`$`結束*/

create trigger tri_after_insert

after insert on order

for each row

begin

update product set productnum=productnum-3 where productid = new.productid ;

end;

delimiter ; /*mysql語句的結尾換回分號*/

檢視是基於 sql 語句的結果集的視覺化的表或其它檢視中匯出的表,其結構和資料是建立在對錶的查詢基礎上的。和表一樣。檢視也是包括幾個被定義的資料列和多個資料行,但就本質而言這些資料列和資料行**於其所引用的表,檢視是乙個虛表。

檢視中的字段是來自乙個或多個資料庫中的基本表中的字段,可是必須注意。在資料庫中,存放的僅僅是檢視的定義,不存放檢視所包括的資料項,這些資料項仍然存放在原來的基本表結構中。

檢視的作用:

資料庫基本概念

資料庫的分類 一 網路資料庫 網路資料庫是指把資料技術引入到計算機網路系統中,借助與網路技術將儲存於資料庫中的大量資訊及時發布出去,而計算器網路借助於成熟的資料庫技術對網路中的各種資料進行有效管理,並實現使用者與網路中的資料進行有效管理 並實現使用者與網路中的資料庫進行實時動態資料互動 二 層次資料...

資料庫基本概念

資料庫的基本概念 資料庫管理系統 dbms 是一種操作和管理資料庫的大型軟體,用於建立 使用和維護資料庫。它對資料庫進行統一的管理和控制,以保證資料庫 的安全性和完整性。dbms提供資料定義語言ddl與資料操作語言dml。資料庫的三種模型 網狀資料庫 層次資料庫 關聯式資料庫。1.網狀模型 層次模型...

資料庫基本概念

1,什麼是資料?記錄在載體中用來描述事物的文字,繩結,石刻,數字,聲音,訊號,影象,宇宙背景輻射,檔案,遺跡。記錄的載體可以是紙,石壁,草繩,光碟,硬碟,原子,天體,大地,宇宙,人腦。描述的事物可以是物,事,定理,公式,資料。資料能夠從記錄載體中讀取。2,什麼是資料庫 database 資料庫是存放...