1. 程式人生 > >mysql數據庫專業術語說明

mysql數據庫專業術語說明

sele sql語句 個數 核心 唯一標識 reg 一對多 檢查 特定

本文記錄學習mysql過程中遇到的各種專有名詞,匯總以便於日後快速查詢和回憶。

1. 數據庫簡介:

數據庫(database):  

數據庫是數據的匯集,它以一定的組織形式存於存儲介質上。
補充說明: 
數據庫軟件稱為數據庫管理系統(DBMS), DBMS實現數據庫系統的各種功能,是數據庫系統的核心。
關系型數據庫:
各個數據之間存在關聯是關系型數據庫得名的主要原因。
當前主流的關系型數據庫有Oracle、DB2、Microsoft SQL Server、Microsoft Access、MySQL等。

非關系型數據:
非關系型的,分布式的,且一般不保證遵循ACID原則的數據存儲系統。
有NoSql、Cloudant等。

2.關系型數據庫常見術語:

行(row): 
表是一種結構化的文件,可用於存儲特定類型的數據,表中的每一行,也稱為一條記錄。

列(column):
表中的一個字段,所有表都是由一個或多個列組成的。表中的每一列,稱為屬性,字段。 

索引:
將表中的一個或多個字段中的數據復制一份另存,並且按特定次序排序存儲。

視圖:
視圖是虛擬的表。與包含數據的表不一樣,視圖只包含使用時動態檢索數據的查詢。
約束(constraint)條件: 
表中的數據要遵守的限制。

主鍵:
一個或多個字段的組合,填入的數據必須能在本表中唯一標識本行。

惟一鍵: 
一個或多個字段的組合,填入的數據必須能在本表中唯一標識本行;允許為NULL,一個表可以存在多個 

外鍵:
一個表中的某字段可填入的數據取決於另一個表的主鍵或唯一鍵已有的數據。

檢查:  
字段值在一定範圍內。

UNSIGNED :
無符號,值從0開始,無負數。

ZEROFILL:
零填充,當數據的顯示長度不夠的時候,使用前補0的效果填充至指定長度,字段會自動添加UNSIGNED。

NOT NULL:
非空約束,表示該字段的值不能為空。

DEFAULT:
表示如果插入數據時沒有給該字段賦值,那麽就使用默認值。

AUTO_INCREMENT:
自增長,只能用於數值列,而且配合索引使用,默認起始值從1開始,只能增長。

FOREIGN KEY:
外鍵約束,目的是為了保證數據的完成性和唯一性,以及實現一對一或一對多關系。
範式:
設計關系數據庫時,遵從不同的規範要求,設計出合理的關系型數據庫,這些不同的規範要求被稱為不同的範式,各種範式呈遞次規範,越高的範式數據庫冗余越小。

1NF: 無重復的列,同一列中不能有多個值。
說明:第一範式( 1NF)是對關系模式的基本要求,不滿足第一範式( 1NF)的數據庫就不是關系數據庫。  

2NF:屬性完全依賴於主鍵,第二範式必須先滿足第一範式,要求表中的每個行必須可以被唯一地區分。  

3NF:屬性不依賴於其它非主屬性,滿足第三範式必須先滿足第二範式。
存儲引擎:
數據庫底層軟件組織,數據庫管理系統(DBMS)使用數據引擎進行創建、查詢、更新和刪除數據。不同的存儲引擎提供不同的存儲機制、索引技巧、鎖定水平等功能,使用不同的存儲引擎,還可以獲得特定的功能。

InnoDB存儲引擎:
InnoDB是事務型數據庫的首選引擎,支持事務安全表(ACID),其它存儲引擎都是非事務安全表,支持行鎖定和外鍵,MySQL5.5以後默認使用InnoDB存儲引擎。

MyISAM存儲引擎:
MyISAM基於ISAM存儲引擎,並對其進行擴展。它是在Web、數據倉儲和其他應用環境下最常使用的存儲引擎之一。它擁有較高的插入、查詢速度,但不支持事務,不支持外鍵。

3.關系型數據庫的常見組件:

數據庫: database  
表: table  
行: row  
列: column  
索引: index  
視圖: view  
用戶: user  
權限: privilege  
存儲過程: procedure  
存儲函數: function  
觸發器: trigger  
事件調度器: event scheduler,任務計劃
SQL語句分類:
DDL: Data Defination Language 數據定義語言
CREATE, DROP, ALTER

DML: Data Manipulation Language 數據操縱語言
INSERT, DELETE, UPDATE

DCL:Data Control Language 數據控制語言
GRANT, REVOKE, COMMIT, ROLLBACK

DQL:Data Query Language 數據查詢語言
SELECT
數值類型:
MySQL支持多種類型,大致可以分為三類:數值、日期/時間和字符串(字符)類型。

數值類型:
    整數類型:BIT、BOOL、TINY INT、SMALL INT、MEDIUM INT、 INT、 BIG INT

    浮點數類型:FLOAT、DOUBLE、DECIMAL

字符串類型:
CHAR、VARCHAR、TINY TEXT、TEXT、MEDIUM TEXT、LONGTEXT等。

日期類型:
Date、DateTime、TimeStamp、Time、Year

4.數據庫的函數、存儲過程

函數:
系統函數和自定義函數。

自定義函數 (user-defined function UDF):
創建UDF
CREATE [AGGREGATE] FUNCTION function_name(parameter_name
type,[parameter_name type,...])
 RETURNS {STRING|INTEGER|REAL}
runtime_body
存儲過程:
存儲過程就是一條或多條SQL語句的集合,可視為批處理文件,但是其作用不僅用於批處理。
存儲程序分為:1、存儲過程   2、函數。
存儲過程與自定義函數的區別:
存儲過程實現的過程要復雜一些,而函數的針對性較強。
存儲過程可以有多個返回值,而自定義函數只有一個返回值。
存儲過程一般可獨立執行,而函數往往是作為其他SQL語句的一部分來使用。
觸發器:
觸發器的執行不是由程序調用,而是由事件來觸發、激活從而實現執行。

創建觸發器
CREATE
 [DEFINER = { user | CURRENT_USER }]
 TRIGGER trigger_name
 trigger_time trigger_event
 ON tbl_name FOR EACH ROW
 trigger_body

5.總結:

? ? ? ?以上內容總結了我學習mysql過程中的常見術語,或有遺漏,後續更改。

mysql數據庫專業術語說明