###### tags: `MySQL`
# 0328 MySQL
## 名詞
資料庫管理系統:
DBMS=DateBase Management System
資料庫管理者:
DBA=Database administrator

## 關聯式資料庫(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:移除權限

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

MySQL上註解為:"--"
MySQL接續或結束後面需要加";"
MySQL指令不分大小寫
關鍵字(keywords) 不可分割成多行
在WORKBENCH上 點選schemas
可看預覽表格:
粗體為:FK
粗體+底線:PK

一般使用VARCHAR來當作字元資料的型態,除非有固定字元的需求才使用CHAR
DATETIME 表示法為YYYY/MM/DD,mm:ss
ex:2022/03/28,15:00..
## SELECT語法
SELECT...(欄位) FROM...(資料表名稱)

## WHERE 語法
置於 from 子句後
條件子句:
邏輯值:TRUE,FALSE,NULL
比較子句:
運算元可以是欄位,運算式,函數,常數

## between 語法
between and
查詢一個連續區間值
ex:expr BETWEEN x1 AND x2
## ORDER BY 語法
置於SELECT敘述的最後一行,
排序方式:
ASC:升冪 由小到大
DESC:降冪 由大到小
若有空值時,升冪在最前面,降冪在最下面
## IN 語法
ex:where expr in (,)
括號內為or閘
(value1,value2,....)

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