數據庫知識點小結

DDL:數據庫模式定義語言,關鍵字:create、drop、alter;
DML:數據庫操作語言,關鍵字:select、insert、delete、update;
DCL:數據庫控制語言,關鍵字:grant、remove;
DQL:數據庫查詢語言,關鍵字:select;

多表查詢沒有指定連接條件,則以笛卡爾積的形式返回結果。

select into from和insert into select都是用來複製表,兩者的主要區別爲:select into from要求目標表不存在,因爲在插入時會自動創建。insert into select要求目標表存在。

JDBC是由一系列連接、SQL語句和結果集構成,其主要作用概括起來有:1.建立與數據庫的連接;2.向數據庫發起查詢請求;3.處理數據庫返回結果。

MySQL數據庫中,變量分爲系統變量(以“@@”開頭)和用戶自定義變量。系統變量分爲全局變量(global)和會話系統變量。

union和 union all的區別是,union會自動壓縮多個結果中的重複結果,而union all則將所有的結果全部顯示出來,不管是不是重複。

mySQL導出數據命令具體格式:
mysqldump -u用戶名 -p數據庫名 >導出的文件名

mysqladmin:一個管理工具,用來查看一些mysql服務器的狀態信息、設置管理密碼等;
grant on:設置用戶權限的命令;

A INNER JOIN B :返回A和B中符合on條件式的記錄;A LEFT JOIN B:返回A中所有記錄和B中符合on條件式的記錄;
A RIGHT JOIN B :返回B中所有記錄和A中符合on條件式的記錄。

2.約束主要有一下幾種:

NOT NULL : 用於控制字段的內容一定不能爲空(NULL)。

UNIQUE : 控件字段內容不能重複,一個表允許有多個 Unique 約束。

PRIMARY KEY: 也是用於控件字段內容不能重複,但它在一個表只允許出現一個。

FOREIGN KEY: FOREIGN KEY 約束用於預防破壞表之間連接的動作,FOREIGN KEY 約束也能防止非法數據插入外鍵列,因爲它必須是它指向的那個表中的值之一。

CHECK: 用於控制字段的值範圍。

DEFAULT: 用於設置新記錄的默認值。

觸發器是一種特殊類型的存儲過程,觸發器組要通過事件進行觸發被自動調用執行的。而存儲過程可以通過存儲過程的名稱被調用。

觸發器對錶進行插入、更新、刪除的時候會自動執行的特殊存儲過程。觸發器一般用在check約束更加複雜的約束上面。觸發器和普通的存儲過程的區別是:觸 發器是當對某一個表進行操作。諸如:update、insert、delete這些操作的時候,系統會自動調用執行該表上對應的觸發器。SQL Server 2005中觸發器可以分爲兩類:DML觸發器和DDL觸發器,其中DDL觸發器它們會影響多種數據定義語言語句而激發,這些語句有create、 alter、drop語句。

3.SQL觸發器

    DML觸發器分爲:

    1、 after觸發器(之後觸發)

        a、 insert觸發器

        b、 update觸發器

        c、 delete觸發器

   其中after觸發器要求只有執行某一操作insert、update、delete之後觸發器才被觸發,且只能定義在表上。而instead of觸發器表示並不執行其定義的操作(insert、update、delete)而僅是執行觸發器本身。既可以在表上定義instead of觸發器,也可以在視圖上定義。

3.索引定義
  數據庫索引好比是一本書前面的目錄,能加快數據庫的查詢速度。索引是對數據庫表中一個或多個列(例如,employee 表的姓氏 (lname) 列)的值進行排序的結構。如果想按特定職員的姓來查找他或她,則與在表中搜索所有的行相比,索引有助於更快地獲取信息。

2、建立索引的優缺點:
優點:
1.大大加快數據的檢索速度;
2.創建唯一性索引,保證數據庫表中每一行數據的唯一性;
3.加速表和表之間的連接;
4.在使用分組和排序子句進行數據檢索時,可以顯著減少查詢中分組和排序的時間。
缺點:

  1.索引需要佔用數據表以外的物理存儲空間
  2.創建索引和維護索引要花費一定的時間
3.當對錶進行更新操作時,索引需要被重建,這樣降低了數據的維護速度。
索引類型:在數據庫設計器中創建索引:
唯一索引:唯一索引不允許兩行具有相同的索引值
主鍵索引:爲表定義一個主鍵將自動創建主鍵索引,主鍵索引是唯一索引的特殊類型。主鍵索引要求主鍵中的每個值是唯一的,並且不能爲空
聚集索引(Clustered):表中各行的物理順序與鍵值的邏輯(索引)順序相同,每個表只能有一個
非聚集索引(Non-clustered):非聚集索引指定表的邏輯順序。數據存儲在一個位置,索引存儲在另一個位置,索引中包含指向數據存儲位置的指針。可以有多個,小於249個。
索引的實現方式:
1.B+樹。2.散列索引。3.位圖索引。


發佈了24 篇原創文章 · 獲贊 8 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章