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;