MySQL中常見的名詞解釋
阿新 • • 發佈:2019-02-18
1.mysql 體系
名稱 | 含義 |
---|---|
主子系統 | 查詢引擎+儲存/緩衝/事務/恢復管理器 |
輔助部件 | 過程管理器:支援mysql獨有語法 |
函式庫 | 支援在sql語句中插入mysql獨有函式 |
2.常用術語
1.儲存引擎
名稱 | 含義 |
---|---|
MyISAM | 無事務,速度快 |
INNODB | 有事務,功能全,常用 |
Memory | 在記憶體中處理資料,快 |
MERGE | 多個MyISAM聯合 |
2.sql語句分類
名稱 | 含義 |
---|---|
SQL | 結構化查詢語言 |
DDL | 資料定義語言 |
DQL | 資料查詢語言 |
DML | 資料操作語言 |
DCL | 資料控制語言 |
TPL | 事務處理語言 |
3.網路協議
名稱 | 含義 |
---|---|
TCP | 傳輸控制協議 |
UDP | 使用者資料包協議 |
4.表
名稱 | 含義 | 英文名稱 |
---|---|---|
行 | 記錄 | record |
列 | 域 | field |
5.約束
關鍵字 | 中文名稱 | 用法 |
---|---|---|
primary key | 主鍵 | 唯一,非空,不可重複 |
unique | 唯一鍵 | 可控,不可重複 |
not null | 非空 | 非空 |
foreign key | 外來鍵 | 3NF,連線外表主 foreign key (本表字段) references 外表名(外表欄位) |
default | 預設 | 預設填入統一欄位 default ‘0’ |
check | 檢查 | 通過and,or,not約束欄位 check(欄位名>0) |
6.資料型別
資料型別名 | 大小 | 備註 | 是否常用 |
---|---|---|---|
smallint | 2位元組 | ||
int | 4位元組 | 常用 | |
bigint | 8位元組 | ||
float | 4位元組 | 常用 | |
double | 8位元組 | ||
decimal(m,n) | m總位數,n小數點後位數 | ||
numeric | 數值型 | ||
char | 0-255個位元組 | 定長字元 空間佔用大,查詢速度快 | |
varchar | 0-255個位元組 | 變長字元 空間佔用小,查詢速度慢 | 常用 |
text | 0-65535個位元組 | 長文字 | |
blob | 二進位制資料 | ||
date | yyyy-MM-dd 日期 | 常用 | |
datetime | yyyy-MM-dd hh:mm:ss 日期時間 | ||
timestamp | yyyyMMddhhmmss 時間戳(消除重複) | ||
enum | 複合型,列舉 | 常用 | |
set | 複合型 |
7.比較運算子
- 單行
= > < >= <= <>
- 多行
語法 | 含義 |
---|---|
欄位 in(子查詢) | 與任意返回值相同 |
欄位 <或>或= any(子查詢) | 比最小返回值大或比最大返回值小或同in |
欄位 <或>或= all(子查詢) | 比最小返回值小或比最大返回值大或完全相同 |
8.邏輯運算子
- 優先順序
not > and > or
9.特殊運算子
語法 | 含義 |
---|---|
between 數值/日期 and 數值/日期 | 在範圍內則為真 |
in (數值/日期/’字串’,…) | 其中之一則為真 |
like ‘%s%’ or '_s_' |
%表零或多字元,_表一個字元,匹配上字串則為真 |
is [not] null | 不為空則為真 |
[not] exists (子查詢) | 子查詢返回無記錄則返回假,否則都為真 |
10.特別關鍵字
關鍵字 | 含義 | 備註 |
---|---|---|
distinct | 去除重複記錄 | |
concat | 連線字串,要求字元編碼集相同 | concat(a,’和’,b) |
escape | 配合@進行轉義%_ | 'a@_%' escape '@' 以a_開頭的字串 |
\ | 轉義字元 | '\'' 表示’字元 |
union [all] | 無all表示自動去除重複記錄 | |
auto_increment | 自動增長,從1開始,用在主鍵作為索引,重啟mysql服務後清空 | |
engine=INNODB | 設定mysql引擎為innodb |
11.統計函式
函式名 | 用法 |
---|---|
min([distinct] 列名) | 支援數值,日期,字串,字元按A-Z小-大排序,日期按舊-新 |
max([distinct] 列名) | 同上 |
sum([distinct] 列名) | 字串看作0,日期換算成距離1971-1-1經過的毫秒數 |
avg([distinct] 列名) | 同上 |
count(列名/常量) | 統計單列的非null行數,使用常量可統計該表所有記錄行數 |
round(列名,d) | 對單列進行四捨五入,保留小數點後d位,d可以為負數 |
12.SELECT子句
- 查詢執行順序
from->join on->where->group by->having->select->order by->limit
查詢關鍵字 | 用法 |
---|---|
from | 資料來自哪個表 |
join on | 多表按條件連線 |
where | 連線後的表保留哪些記錄 |
group by | 按分組列進行分組 |
having | 分組後的表保留哪些記錄 |
select | 選擇哪些記錄 |
order by | 對選擇的記錄按排序條件排序 |
limit x,d | 從x+1行開始向下顯示d行記錄,放在select子句最後使用 |
13.事務
關鍵字 | 含義 | 備註 |
---|---|---|
OLTP | 聯機事務處理 | 關係型資料庫 |
OLAP | 聯機分析處理 | 資料倉庫系統 |
ACID | 原子性,一致性,隔離性,永續性 | 事務四特性 |
commit | 提交 | |
rollback | 回滾 | |
autocommit | 自動提交,1為真,0為假 set autocommit=0; | 關閉自動提交 |
start transaction | 開始寫事務 | |
create procedure 函式名() | 建立函式 | |
begin…end | 函式起始…函式終止 |