2017年8月12日 星期六

MySQL:語法


範例

資料庫名稱:test
資料表:1.books  2. employee

books結構











employee結構










books資料













employee資料













指令:

基本指令

select:SELECT指令查詢資料表時,可以指明查詢結果所需的欄位清單
select 欄位名稱 from 資料表名稱 where 條件;

distinct:在SELECT指令後可以使用DISTINCT指令分辨重複的欄位值,一旦欄位擁有重複值,就只會顯示其中一筆記錄。
SELECT DISTINCT 價錢 FROM books;

insert:在資料表插入一筆新記錄
insert into 資料表名稱 values ('值','值');

update:更新資料表的記錄,這些記錄是已經 存在的記錄
update 資料表名稱 set 欄位名稱 = '值' where 條件;

delete:刪除資料表的記錄
delete from 資料表名稱 where 條件;

as:指定中文或英文的欄位別名
SELECT 書籍名稱,價錢,價錢*0.9 AS 打折後 FROM books;

limit:可以限制傳回的資料筆數
SELECT * FROM books LIMIT 0,3;(回傳第0筆到第三筆資料)

WHERE子句 

  • 比較運算子:WHERE子句的條件可以是一個運算式,運算元是欄位 值,可以是文字、數值或日期/時間,在運算式可以使用的比較運算子, 如下表所示:

  • 邏輯運算子:WHERE子句的條件運算式可以使用邏輯運算子執行多樣化比較,或連接多 條件建立複雜的邏輯運算式,如下表所示:


is null 、 is not null:查詢資料表中指定欄位值是否為空值NULL
SELECT 書籍名稱 FROM books WHERE 書籍名稱 is NOT NULL;










and、or、not
SELECT * FROM books WHERE 價錢>=550 AND 價錢<=650;








between:在一個範圍之內
SELECT * FROM books WHERE 價錢 BETWEEN 550 AND 650;








like:%代表任何長度的任何字串;_代表一個字元長度的任何字元
SELECT * FROM books WHERE 書籍名稱 LIKE '_ava%';








In:屬於清單其中之一
SELECT * FROM books WHERE 負責員工編號 IN (1,2);









order by:指定依照欄位由小到大或由大到小進行排序。
SELECT * FROM books ORDER BY 價錢 DESC;














  • 算術運算子:WHERE子句的運算式條件可以使用算術運算子,算術運算子可以使用 SELECT指令的欄位清單,用來計算2個欄位的和, 使用各欄位組成一個算術運算式或是加上一個固 定值。



SELECT 書籍名稱,價錢,價錢*0.9 AS 打折後 FROM books;








聚合函數

  • COUNT()函數 
  • AVG()函數 
  • MAX()函數 
  • MIN()函數 
  • SUM()函數













count:計算筆數
SELECT COUNT(書籍名稱) AS 數量 FROM books;






合併查詢與子查詢

子查詢
SELECT * FROM books WHERE 負責員工編號 = (SELECT 員工編號 FROM employee WHERE 姓名 = '謝小小');









Join On:使用在多個資料表的查詢
SELECT 負責員工編號,書籍名稱,姓名 FROM employee JOIN books ON 負責員工編號 = 員工編號;










Group By :群組是以指定欄位進行分類,將欄位值中重複的值結合起
SELECT 負責員工編號,COUNT(價錢) AS 員工負責幾項 FROM books GROUP BY 負責員工編號;








Join on + Group by
SELECT 負責員工編號,COUNT(價錢),姓名 FROM books JOIN employee ON 負責員工編號 = 員工編號 GROUP BY 負責員工編號;

沒有留言:

張貼留言