MySQL語法練習1
我的資料表:
資料表檔案: students.sql
https://drive.google.com/file/d/1YD8kQxgGiVd-X1Il5YTxvM4kjS618dvt/view?usp=sharing
開始
- 使用終端機練習
登入
mysql -u root -p
查看資料庫
show databases;
使用(切換)資料庫
use class;
class是資料庫名稱
查詢資料表
show tables;
查詢資料表內容
select * from students;
select
SELECT 欄位名稱 FROM 資料表名稱;
select * from students;
星號是全部的意思
如果只要某幾個欄位可以直接指定並以逗號隔開
ex:
select cName, cBirthday from students;
使用別名
SELECT 欄位名稱 AS 欄位別名 FROM 資料名稱
select cName as '姓名', cHeight as '身高' from students;
如果要加入多個欄位
記得要加逗號
去除重複資料 DISTINCT
select distinct cSex from students;
設定篩選條件 WHERE
在查詢資料時,並不是每一次都要顯示所有的內容。
SELECT 欄位名稱 FROM 資料表名稱 WHERER 條件敘述包
ex:選出男生
select * from students where cSex='M';
設定篩選範圍 BETWEEN … AND
SELECT 欄位名稱 FROM 資料表名稱 WHERE 條件敘述句;
ex:選出cID大於4且小於6的同學:
select * from students where cID between 4 and 6;
ex: 尋找生日在1987年~1988年之間的學生資料
select * from students where cBirthday between '1987-01-01' and '1988-12-31';
如果沒有特別說明,通常年都是指一整年。
SELECT 欄位名稱
FROM 資料表名稱
WHERE 欄位名稱 IN (欄位值1,欄位值2...)
ex:找出cID號碼為1.3.5.7.9的學生資料
select * from students where cID in (1,3,5,7,9);
設定字串比對的篩選值搭配萬用字元 - LIKE
萬用字元:
- _ :代表任何單一字元、單一文字。
- % :代表多個字元所組成的字串。
ex:找出電話號碼為0918開頭的學生資料
select * from students where cPhone like '0918%';
ex:找出學生的名字中有”林”的學生資料
select * from students where cName like '%林%';
查詢結果的排序 - ORDER BY
SELECT 欄位名稱
FROM 資料表名稱
ORDER BY 指定排序的欄位 排序方式
排序方式有二種:
- ASC:遞增排序,由小排到大,也是預設排序方法。
- DESC:遞減排序,由大排到小。
ex:以學生生日遞減排序
select * from students order by cBirthday desc;
ex: 先以性別做遞增排序,再依生日遞減排序
select * from students order by cSex asc, cBirthday desc;
設定查詢顯示的筆數 - LIMIT
LIMIT 是在查詢後的結果再進行擷取資料的動作
如果與 ORDER BY 進行排序搭配可以輕易取得最前的 10 筆資料或是最後的 10 筆資料的結果。
所以,LIMIT 在使用時必須放置在 ORDER BY 之後。
SELECT 欄位名稱
FROM 資料表名稱
LIMIT 開始顯示的筆數,顯示多少筆資料;
ex:依性別遞增排序,再依生日遞減排序的前 5 筆資料
select * from students order by cSex asc, cBirthday desc limit 5;