函式及分組統計和資料庫備份,恢復

weixin_34148340發表於2017-10-22

函式分組統計

合計函式-COUNT

  • 基本句型:
    SELECT COUNT(*)|COUNT(列名) FROM tablename [WHERE where_definition];(COUNT和後面的括號之間沒有空格,COUNT(col)不會計入NULL)
  • 統計一個班共有多少學生?
    SELECT COUNT(*) FROM students;
  • 統計數學成績大於90的學生有多少個?
    SELECT COUNT(*) FROM students WHERE math > 90;
  • 統計總分大於250的人數有多少?
    SELECT COUNT(*) FROM students WHERE (chinese + english + math) > 90;

合計函式-SUM

  • 注意:sum僅對數值起作用,否則會報錯;對多列求和,“,”號不能少。(sum(A+B+C),A,B,C為三列,如果某行記錄中A列值為NULL,則不統計這行。)
  • 基本句型:
    SELECT SUM(列名){,SUM(列名)...} FROM tablename [WHERE where_definition]
  • 統計一個班級數學總成績
    SELECT SUM(math) FROM students;
  • 統計一個班級語文、英語、數學各科的總成績
    SELECT SUM(chinese),SUM(english),SUM(math) FROM students;
  • 統計一個班級語文、英語、數學的成績總和
    SELECT SUM(chinese + english + math) FROM students;
  • 統計一個班級語文成績平均分
    SELECT SUM(chinese)/COUNT(*) FROM students;

合計函式-AVG

  • AVG函式返回滿足WHERE條件的一列的平均值
  • 基本句型:
    SELECT AVG(col) FROM table;
  • 求一個班級數學平均分
    SELECT AVG(math) FROM students;(AVG不會計入NULL)
  • 求一個班級總分平均分
    SELECT AVG(chinese + english + math) FROM students;

合計函式-MAX/MIN

  • 基本句型:(MAX/MIN函式返回滿足WHERE條件的一列的最大/最小值)
    SELECT MAX(col)/MIN(col) FROM table [WHERE where_definition];
  • 求班級最高分和最低分(數值範圍在統計中特別有用)
    SELECT MAX(chinese + english + math) FROM students;
    SELECT MIN(chinese + english + math) FROM students;

分組語句-GROUP BY [HAVING]

  • 使用GROUP BY子句對列進行分組
    基本句型:
    SELECT col1,col2... FROM table GROUP BY column;

注意:可以使用“`”(英文輸入狀態下ESC按鍵下的那個按鍵)把關鍵字包含起來,當作普通字串對待。比如:order可以作為表名存在,而不會被認為ORDER關鍵字。(但是不推薦)

  • 對訂單中商品歸類後,顯示每一類商品的總價
    SELECT product,SUM(price) FROM t_order GROUP BY product;
  • 使用having子句過濾(GROUP BY後不能使用WHERE )
    查詢購買了幾類商品,並且每類總價大於100的商品
    SELECT product,SUM(price) FROM t_order GROUP BY product HAVING SUM(price) > 100;

一些函式

8551802-820c5318e346a0ab.png
時間日期相關函式

8551802-df2178f0fa916c32.png
數學相關函式

8551802-0a5d4df454497326.png
字串相關函式

資料庫備份,恢復

備份

  • 在MySQL的bin檔案裡有一個mysqldump.exe程式。(在dos命令模式下執行命令)
    mysqldump -h localhost -u root -p mydb1>d:\\mydb1.sql(兩個“\”是因為“\m”是轉義字元)

恢復

  • 先建立資料庫名,並選擇資料庫
    方式一:SOURCE d:\\mydb1.sql;(在mysql下執行該命令)
    方式二:mysql -u root -p mydb1<d:\\mydb1.sql(在dos命令列下執行該命令)

相關文章