1. 程式人生 > >資料庫索引-檢視-觸發器-儲存過程

資料庫索引-檢視-觸發器-儲存過程

我們應該從這四點中學到什麼。(個人總結)

關於索引

在資料庫裡面建立索引是為了加快資料的查詢速度,但是索引在資料庫中會佔用一小部分儲存空間來儲存索引資訊,因此,利用索引提高查詢效率是以佔用空間和增加資料更改的時間為代價的。
索引分為兩大類:聚集索引和非聚集索引。兩者的區別:1.資料不按非聚集索引關鍵字的順序排序和儲存。2.非聚集索引的葉節點不是存放資料的資料頁。

對於索引,要知道,建立非聚集索引:

CREATE INDEX Sname_ind ON Student ( Sname )

建立唯一聚集索引:

CREATE UNIQUE CLUSTERED INDEX Sname_ind ON Student ( Sname )

建立聚集索引:

CREATE CLUSTERED INDEX Ename_ind ON Employee( FirstName, LastName )

刪除索引:

DROP INDEX <表明>.<索引名>

檢視

檢視就像一個視窗,透過它就可以看到資料庫中用使用者自己感興趣的資料。
檢視有兩個好處,第一是視圖裡面的資料始終與基本表裡面的資料保持一致,第二是節省了儲存空間,當資料量非常大時,重複資料的儲存是非常耗費時間的。

我們要學到什麼。
學會建立檢視

CREATE VIEW <檢視名>
AS


SELECT語句

舉例:
建立查詢資訊管理系學生的學號,姓名,性別和年齡的檢視X。

CREATE VIEW IS_Student
AS
SELECT Sno, Sname, Ssex, Sage
FROM Student WHERE Sdept = ‘資訊管理系’

在檢視下定義檢視。
利用上面的檢視X,建立查詢資訊管理系年齡小於20的學生的學號、姓名和年齡的檢視。

CREATE VIEW IS_Student_Sage
AS
SELECT Sno, Sname, Sage
FROM IS_Student WHERE Sage < 20

定義一個查詢每個學生的學號及平均成績的檢視Y。

CREATE VIEW S_G
AS
SELECT Sno, AVG(Grade) AverageGrade FROM SC
GROUP BY Sno**

通過檢視查詢資料

上面已經說到,檢視像一個視窗,其實那就像是多個表精煉之後的一張表。通過檢視查詢資料,語法用SELECT 檢視 即可。

例子:利用上面的檢視X,查詢資訊管理系男生的資訊。

SELECT * FROM 檢視X WHERE Ssex = ‘男’

再來一個多表聯合查詢吧。

查詢資訊管理系學生的學號、姓名、所選課程的課程名。

思路:檢視X裡面沒有課程資訊,因此要和SC表和Course表相聯合
SELECT x.Sno, Sname,Cname
FROM 檢視X x JOIN SC ON x.Sno = SC.Sno
JOIN Course c ON c.Cno = SC.Cno

修改和刪除檢視

  • 修改示例:ALTER關鍵字

修改上面檢視Y使其統計每個學生的考試平均成績和選修課程的總門數

ALTER VIEW S_G (Sno, AverageGrade, Count_Cno)
AS
SELECT Sno, AVG(Grade), Count(*) FROM SC
GROUP BY Sno

  • 刪除示例:DROP關鍵字

刪除IS_Student檢視。

DROP VIEW IS_Student

檢視的作用

1.簡化了資料查詢語句。
2.使使用者從多角度看待同一資料。
3.提高了資料的安全性。
4.提供了一定程度上程式的邏輯獨立性。

觸發器

觸發器(TRIGGER)
意義:是一段由對資料的更改操作引發的自動執行的程式碼。這些更改操作包括UPDATEINSERTDELETE

語法:

CREATE TRIGGER 觸發器名
ON 表名檢視名
FORAFTERINSTEAD OF
AS
SQL語句

根據上述語法第三行關鍵字的不同可以將觸發器可分為後觸發性觸發器(FOR或AFTER)和前觸發性觸發器(INSTEAD OF)。

後觸發性觸發器示例:限制每個學生總的選課門數不能超過10門。

思路:當條件達到10門以上之後,執行回滾操作。
CREATE Trigger tri_Total_AFT
ON SC AFTER INSERT
AS
IF (SELECT COUNT(*)FROM SC WHERE Sno IN (SELECT Sno FROM INSTERTED))>10
ROLLBACk

前觸發性觸發器示例:限制每個學生總的選課門數不能超過10門。

思路:當條件達到10門以上之後,執行重做操作(程式碼最後一句便是重做操作)。
CREATE Trigger tri_Total_INS
ON SC INSTED OF INSERT
AS
IF (SELECT COUNT(*)FROM SC WHERE Sno IN (SELECT Sno FROM INSTERTED))>10
INSERT INTO SC SELECT * FROM INSERTED

刪除觸發器
不用想肯定用DROP關鍵字。

DROP TRIGGER 觸發器名

儲存過程

持續更新。。。

相關推薦

資料庫索引-檢視-觸發器-儲存過程

我們應該從這四點中學到什麼。(個人總結) 關於索引 在資料庫裡面建立索引是為了加快資料的查詢速度,但是索引在資料庫中會佔用一小部分儲存空間來儲存索引資訊,因此,利用索引提高查詢效率是以佔用空間和增加資料更改的時間為代價的。 索引分為兩

SQLserver的事務,索引,檢視,函式,儲存過程

一.事務      在sqlserver中當出現多條語句時,當其中有一條不合理,不會停止下來,      因此,我們會用事務去解決這個問題,當有一個錯誤時,不允許往下繼續進行,     只有當全部正確時,才給予通過。     事務開啟:begin transaction

資料庫的【觸發器】【索引】【儲存過程】【檢視

1 觸發器 觸發器是一中特殊的儲存過程,主要是通過事件來觸發而被執行的。它可以強化約束,來維護資料的完整性和一致性,可以跟蹤資料庫內的操作從而不允許未經許可的更新和變化。可以聯級運算。如,某表上的觸發器上包含對另一個表的資料操作,而該操作又會導致該表觸發器被觸發。 2 儲

【轉】MySQL資料庫 外來鍵、檢視儲存過程觸發器的優缺點

https://www.yiibai.com/mysql/introduction-sql-views.html 檢視 使用資料庫檢視的優點 資料庫檢視允許簡化複雜查詢:資料庫檢視由與許多基礎表相關聯的SQL語句定義。 您可以使用資料庫檢視來隱藏終端使用者和外部應用

檢視儲存過程觸發器

檢視的特點 檢視只是一種邏輯物件,是一種虛擬表,它並不是物理物件,因為檢視不佔物理儲存空間,在檢視中被查詢的表稱為檢視的基表,大多數的select語句都可以用在建立檢視中 優點:集中使用者使用的資料,掩碼資料的複雜性,簡化許可權管理以及為向其他應用程式輸出而重新組織資料等等 語法

Mysql的檢視儲存過程、函式、索引全解析

檢視是查詢命令結果構成的一個虛擬表(非真實存在),其本質是【根據SQL語句獲取動態的資料集,併為其命名】,使用者使用時只需使用【名稱】即可獲取結果集合,並可以當作表來查詢使用。 1建立檢視 --格式:CREATE VIEW 檢視名稱 AS  SQL語句 CREATE VIEW v1 AS S

MySQL(四)檢視儲存過程觸發器

一:檢視 什麼是檢視? 檢視(View)是一種虛擬存在的表,對於使用檢視的使用者來說基本上是透明的。檢視並 不在資料庫中實際存在,行和列資料來自定義檢視的查詢中使用的表,並且是在使用檢視時 動態生成的 檢視的優點? 簡單:使用檢視的使用者完全不需要關心後面對應的表的

Sql Server 資料庫表結構,儲存過程檢視比較指令碼

  頂級乾貨   用來比較兩個資料庫之間 表結構,儲存過程及檢視差異的儲存過程,直接複製對應的儲存過程,無需改動,直接在資料庫中執行(傳遞要比較的資料庫引數)即可 1.兩個資料庫之間儲存過程及檢視差異比較的儲存過程 --測試指令碼 --exec [p_com

表、檢視儲存過程、函式、觸發器、事件

儲存過程(Stored Procedure)是一組為了完成特定功能的SQL語句集,經編譯後儲存在資料庫中。使用者通過指定儲存過程的名字並給出引數(如果該儲存過程帶有引數)來執行它。儲存過程是資料庫中的一個重要物件,任何一個設計良好的資料庫應用程式都應該用到儲存過程。函式l過程不必返回值l函式必須返回值l過程可

資料庫之進階(檢視,事務,儲存過程)

1.檢視 什麼是檢視: 通過查詢得到的虛擬表,然後儲存下來,下次用的時候直接用即可 為什麼要用檢視: 減少sql程式碼和重複查詢 怎麼用檢視: 語法:create view 檢視名 as 虛擬表(通過查詢獲得的虛擬表) create view b2a as select b.book_jd,group_c

Mysql觸發器檢視儲存過程詳解(例項)

/*觸發器trigger*/觸發器的概念:監視某種情況並出發某種操作例如:一個電子商城商品表goods簡稱g:主鍵   商品名    庫存    1      電腦      282      手錶      120訂單表o:訂單主鍵    訂單外來鍵    購買數量1   

MySql基礎教程二(檢視儲存過程,遊標,觸發器,事務,許可權,資料型別)

檢視 檢視是虛擬的表。與包含資料的表不一樣,檢視只包含使用時動態檢索資料的查詢。比如下面的語句: select cust_name, cust_contact from customers, orders, orderitems where customers.cust_id=orders.cust_i

檢視儲存過程和函式以及觸發器

一、檢視1.檢視的定義檢視是一種虛擬存在的表,它本身在資料庫中並不存在,而是在我們出於某種目的想要去使用檢視的時候,使用我們資料庫中已經存在的表的行和列資料來自定義的一種動態生成的,便於檢索的安全的資料獨立的一種虛擬表。2.優點①簡單。檢視是一種已經經過過濾篩選之後的符合條件

索引檢視儲存過程檢視

為Tstuden表的studentID建立主鍵就同時建立了聚集索引2、建立組合索引 為成績表建立組合索引,因為一個學生不能為一門學科錄入兩次成績,所以將成績表中的studentID和subjectID建立組合索引4、建立非聚集索引—可以有重複值 為Tstud

SQL Server資料庫開發(6.儲存過程

一、儲存過程(procedure) 1.定義:用來執行管理業務或應用複雜的業務規則 儲存過程可以帶引數,也可以返回結果。 2.儲存過程可以包含資料操縱語句、變數、邏輯控制語句 3.儲存過程的優點: 3.1允許模組化程式設計 一次建立多次使用,並可獨立於原始碼而單獨

mysql資料庫--mysql函式及儲存過程

函式 函式:將一段程式碼封裝到一個結構中,在需要執行程式碼塊的時候,呼叫結構執行即可(程式碼複用) 函式分為兩類:系統函式和自定義函式 系統函式: 系統定義好的函式,直接呼叫即可。任何函式都有返回值,因此函式的呼叫是通過select呼叫。 mysql中字串基本操作單位(最常見的

sql server 刪除所有 檢視儲存過程

--刪除檢視: declare mycur cursor local for select [name] from dbo.sysobjects where xtype='V' --宣告遊標 declare @name varchar(100) OPEN mycur --開啟

資料庫——SQL Server的儲存過程

上一篇部落格總結了許多資料庫常用的SQL語句,今天我們就來看一下SQL的儲存過程。 簡單來說,儲存過程就是一條或者多條sql語句的集合,可視為批處理檔案,但是其作用不僅限於批處理。 本篇主要介紹變數的使用,儲存過程和儲存函式的建立,呼叫,檢視,修改以及刪除操作。上一篇部落格對這一部分內容也有

MySQL檢視儲存過程詳解

一 mysql檢視 1 檢視的目的: 讓同一個資料庫被訪問時,對於不同的登入帳號,顯示不同的資料資訊 2 檢視的優點: 1)資料獨立: 一旦檢視結構確定,可以遮蔽表結構對使用者的影響 2)安全: 使用者只能看到檢視中的資料 3)簡單: 使用者不需要關心檢視中的資料如何查詢獲得,檢視中的資

09 mysql 事務,索引,檢視,觸發器

  目錄   01事務transaction 02 索引 03 檢視  04 觸發器trigger 01事務transaction 事務主要用於處理操作量大,複雜度高的資料,事務可以保證多個操作原子性,對於資料庫來