More  

小編的世界 優質文選 資料

Mysql使用簡介


2021年10月29日 - 資料小編 麻麻麻辣燙 
   

麻麻麻辣燙

SQL,即Structured Query Language 結構化查詢語言。

MYSQL:開源免費的數據庫,小型的數據庫.已經被Oracle收購了.MySQL6.x版本也開始收費。

數據定義語言:簡稱DDL(Data Definition Language),用來定義數據庫對象:數據庫,表,列等。關鍵字:create,alter,drop等

數據操作語言:簡稱DML(Data Manipulation Language),用來對數據庫中表的記錄進行更新。關鍵字:insert,delete,update等

數據控制語言:簡稱DCL(Data Control Language),用來定義數據庫的訪問權限和安全級別,及創建用戶

數據查詢語言:簡稱DQL(Data Query Language),用來查詢數據庫中表的記錄。關鍵字:select,from,where等

數值類型

日期和時間類型

字符串類型

通配符: 用來匹配一部分的特殊字符

_ : 匹配任意一個字符% : 任意0~n個字符

聚合函數

COUNT():統計指定列不為NULL的記錄行數;

MAX():計算指定列的最大值,如果指定列是字符串類型,那麼使用字符串排序運算;

MIN():計算指定列的最小值,如果指定列是字符串類型,那麼使用字符串排序運算;

SUM():計算指定列的數值和,如果指定列類型不是數值類型,那麼計算結果為0;

AVG():計算指定列的平均值,如果指定列的類型不是數值類型,那麼計算結果為0;

注意:凡是和聚合函數同時出現的列名,一定要寫在group by 之後分組時候是無法體現單個數據的group by 一般會和聚合函數配合使用,單獨使用的時候意義不大

having和where的區別

having是在分組後對數據進行過濾,而where是在分組前對數據進行過濾

having後面可以使用聚合函數(統計函數),where後面不可以使用聚合函數

LIMIT用來限定查詢結果的起始行,以及總行數。

常用的兩種引擎:

(1) InnoDBa,支持ACID,簡單地說就是支持事務完整性、一致性;b,支持行鎖,以及類似ORACLE的一致性讀,多用戶並發;c,獨有的聚集索引主鍵設計方式,可大幅提升並發讀寫性能;d,支持外鍵;e,支持崩潰數據自動修複;InnoDB設計目標是處理大容量數據庫系統,它的CPU利用率是其它基於磁盤的關系數據庫引擎所不能比的。它是一個可靠的事務處理引擎,不支持全文本搜索(2) MyISAMa,不支持 每次查詢具有原子性b,只支持表鎖c,強調的是性能,其執行速度比InnoDB類型更快,但是不提供事務支持d,如果執行大量的SELECT,MyISAM是更好的選擇

視圖

視圖是一個虛擬表(非真實存在),其本質是根據SQL語句獲取動態的數據集,並為其命名,用戶使用時只需使用名稱即可獲取結果集,並可以將其當作表來使用。

觸發器

對某個表進行增/刪/改操作的前後如果希望觸發某個特定的行為時,可以使用觸發器,觸發器用於定制用戶對表的行進行增/刪/改前後的行為。

存儲過程

存儲過程是一個SQL語句集合,當主動去調用存儲過程時,其中內部的SQL語句會按照邏輯執行。

存儲過程和函數存在以下幾個區別:

1)一般來說,存儲過程實現的功能要複雜一點,而函數實現的功能針對性比較強。存儲過程,功能強大,可以執行包括修改表等一系列數據庫操作;用戶定義函數不能用於執行一組修改全局數據庫狀態的操作。

2)對於存儲過程來說可以返回參數,如記錄集,而函數只能返回值或者表對象。函數只能返回一個變量;而存儲過程可以返回多個。存儲過程的參數可以有IN,OUT,INOUT三種類型,而函數只能有IN類~~存儲過程聲明時不需要返回類型,而函數聲明時需要描述返回類型,且函數體中必須包含一個有效的RETURN語句。

3)存儲過程,可以使用非確定函數,不允許在用戶定義函數主體中內置非確定函數。

4)存儲過程一般是作為一個獨立的部分來執行( CALL 語句執行),而函數可以作為查詢語句的一個部分來調用(SELECT調用)。
SQL語句中不可用存儲過程,而可以使用函數。

  大家在看