MySQL自學筆記(2)

Inserting, Deleting, and Update 輸入刪除更新資料

Inserting 輸入資料

指令:

Insert Into 表格名稱 (欄位名稱1, 欄位名稱2 ,… ) Values(值1, 值2,…)

範例:

use employee;

Deleting 刪除資料

指令:

Delete From 表格名稱 Where 條件

Update 更新資料

指令:

Update 表格名稱 Set 欄位名稱1=值1,
欄位名稱2=值2, … Where 條件

Querying 查詢資料

完整語法:

SELECT columns
FROM tables
[WHERE conditions]
[GROUP BY group
[HAVING group_conditions]]
[ORDER BY sort_columns]
[LIMIT limits];

簡易語法:

Select * From 表格名稱

Select 欄位1, 欄位2, … From 表格名稱 [Where 條件] Order By 欄位2 [ASC|DESC]

ASC:遞升排序
DESC:遞減排序

限制筆數查詢

語法:

limit 起點,終點
起點是0可省略, 起點不是0不可省略

條件查詢

Select 欄位1, 欄位2, … From 表格名稱

相異查詢

Select Distinct 欄位1, 欄位2, … From 表格名稱

功能:挑選表格的所有紀錄,顯示指定的欄位,但重複的結果只顯示㇐筆,DISTINCT 為不重複

計算資料數量

函數count

範例:

select count(job) from employee;
select count(distinct job) from employee;

指定表格查詢

在SELECT 敘述中表示欄位時,可以使用 table.column 來指定欄位。

範例:

select employee.name from employee;

指定資料庫及表格查詢

在SELECT 敘述中表示欄位時,可以 database.table.column 來表示欄位。

舉例

select employee.employee.name from employee;

指定別名查詢

使用 as 來指定別名
欄位、表格皆可取別名
as 可省略,另㇐種別名(中間不加逗號)

範例:

select name as employeeName from employee;
select e.name from employee as e;

進階查詢

使用 join 語法來連結多個表格

連結兩個表格

兩個表格必需含有同樣的值(㇐表格外鍵欄位參考另㇐表格欄位主鍵),該筆資料才會被選出。

select employee.name, department.name
from employee, department
where employee.departmentID = department.departmentID;

若兩個資料表沒有相同的資料連結,則資料會採乘機方式呈現

select employee.name, department.name from employee, department;

使用join連結多個資料表

基本表格連結

兩個表格必需含有同樣的值,該筆資料才會被選出

select employee.name, department.name from employee, department
where employee.departmentID = department.departmentID;

另㇐種語法

SELECT 欄位1,欄位2, …
FROM Table1 JOIN Table2 ON Table1.Col1 = Table2.Col2
where 條件

select employee.name, department.name
from employee join department
where employee.departmentID = department.departmentID;

表格左連結 left join

Left join:只有㇐表格欄位出現該值,另㇐表格欄位並未出現

select employee.name
from employee left join assignment
on employee.employeeID = assignment.employeeID
where clientID is null;

表格右連結 right join

join, left join, right join

使用別名來連結表格