---
# System prepended metadata

title: 0328 MySQL
tags: [MySQL]

---

###### tags: `MySQL`

# 0328 MySQL
## 名詞

資料庫管理系統:
DBMS=DateBase Management System

資料庫管理者:
DBA=Database administrator

![](https://i.imgur.com/LDOo5Wh.png)


## 關聯式資料庫(RDBMS)
關聯式資料庫管理系統
．資料庫的物件:
    1.表格
    2.索引
    3.使用者
．資料庫的運算
．資料庫的限制條件
．支援結構化查詢語言：
　(Structured Query Language,SQL)
 
 *與其他資料庫差別在與關連式資料庫皆由表格(table)方式存取,關聯式資料庫由多個表格組成
 
 一般的資料結構:
 Bit>>Byte>>Field>>Record>>File>>Database
 關聯式的資料結構:
 Bit>>Byte>>column>>Row>>Table>>Datebase
 
 Column=直欄 
 Fiel=欄位
 Row=橫列  
 Record=紀錄
 Primary Key(PK)=主鍵 :
   1.必填,不能為空值
   2.唯一性
 Foreign Key (FK) =外來鍵 :
   1.欄位所輸入的值須出現參照之表格的值
   2.建立不同資料表間的關係
   3.只能參考一個主鍵或為一鍵
   4.欄位可為空值
   
## SQL
### SQL特性
   1.屬於自然語言,非程序語言
   2.不需要瞭解資料存放方式,只需列表出需要的資料
   3.不同底層的資料庫亦可使用相同SQL語法
### SQL分類
   1.查詢語法(DQL):
        select=查詢資料庫表格資料
   2.定義語法(DDL):
        a.creat=新建資料物件
        b.rename=變更資料物件名稱
        c.truncate=清除資料物件
   3.操作語法(DML):
        a.insert:新增資料庫表格資料
        b.update:增加資料庫表格資料
        c.delete:刪除資料庫表格資料
   4.控制語法(DCL):
        a.grant:授予權限
        b.revoke:移除權限
        
        
![](https://i.imgur.com/0G4POU2.png)


*MySQL上 Databases=Schemas 為同義字
在其他系統上則否

![](https://i.imgur.com/sOJRssH.png)

MySQL上註解為:"--"
MySQL接續或結束後面需要加";"
MySQL指令不分大小寫
關鍵字(keywords) 不可分割成多行

在WORKBENCH上 點選schemas 
可看預覽表格:
粗體為:FK
粗體+底線:PK

![](https://i.imgur.com/aw7hUxA.png)

一般使用VARCHAR來當作字元資料的型態,除非有固定字元的需求才使用CHAR

DATETIME 表示法為YYYY/MM/DD,mm:ss
        ex:2022/03/28,15:00..
## SELECT語法
SELECT...(欄位)  FROM...(資料表名稱)

![](https://i.imgur.com/GSViga9.png)

## WHERE 語法
置於 from 子句後
條件子句:
邏輯值:TRUE,FALSE,NULL
比較子句:
運算元可以是欄位,運算式,函數,常數
![](https://i.imgur.com/lfAC6oY.png)

## between 語法
between and
查詢一個連續區間值
ex:expr BETWEEN x1 AND x2


## ORDER BY 語法
置於SELECT敘述的最後一行,
排序方式:
   ASC:升冪 由小到大
   DESC:降冪 由大到小
   若有空值時,升冪在最前面,降冪在最下面
   
   
## IN 語法
ex:where expr in (,)
括號內為or閘
(value1,value2,....)
      
![](https://i.imgur.com/o4LTYD2.png)


## LIKE 語法
expr LIKE'pattern' ESCAPE 'character'
pattern:
%:替代任意字元
_ :替代任意字元
ESCAPE'character'
定義跳脫字元:ESCAPE'&'
&% = 跳脫"%"
&_ = 跳脫"_"

